Comment installer un module CPAN dans un répertoire local?

j'utilise une machine Linux hébergée donc je n'ai pas les permissions pour écrire dans le répertoire /usr/lib .

quand j'essaie d'installer un module CPAN en faisant comme d'habitude:

perl Makefile.PL
make test
make install

ce module est extrait dans un dossier blib/lib/ . J'ai gardé use blib/lib/ModuleName mais le compilateur dit que le module ne peut pas être trouver. J'ai essayé de le copier .fichier pm dans le répertoire local et conservé require ModuleName mais ça me donne quand même une erreur.

Comment puis-je installer un module dans un autre répertoire et de l'utiliser?

56
demandé sur brian d foy 2009-02-12 12:41:54

5 réponses

j'ai eu un problème similaire, où je ne pouvais même pas installer local:: lib

j'ai créé un installateur qui a installé le module quelque part par rapport à la .pl files

l'installation se passe comme:

perl Makefile.PL PREFIX=./modulos
make
make install

Puis, dans le .pl fichier qui nécessite le module, qui est dans ./

use lib qw(./modulos/share/perl/5.8.8/); # You may need to change this path
use module::name;

le reste des fichiers (makefile.pl, module.pm, etc) ne nécessitent aucun changement.

vous pouvez appelez le .pl fichier avec juste

perl file.pl
33
répondu XenF 2009-02-12 10:57:48

autres réponses déjà sur Stackoverflow:

De perlfaq8:


comment conserver mon propre répertoire de modules/bibliothèques?

lorsque vous construisez des modules, dites à Perl où installer les modules.

Pour Makefile.Distributions basées sur PL, utilisez L'option INSTALL_BASE pour générer des Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

vous pouvez le mettre dans votre CPAN.configuration pm de sorte que les modules s'installent automatiquement dans le répertoire de votre bibliothèque privée lorsque vous utilisez le CPAN.PM shell:

% cpan
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl
cpan> o conf commit

For Build.Distributions basées sur PL, utilisez l'option -- install_base:

perl Build.PL --install_base /mydir/perl

vous pouvez configurer CPAN.pm pour utiliser automatiquement cette option aussi:

% cpan
cpan> o conf mbuildpl_arg '--install_base /mydir/perl'
cpan> o conf commit
60
répondu brian d foy 2017-05-23 12:17:33

local::lib vous aidera. Il convaincra "make install" (Et "Build install") d'installer dans un répertoire où vous pouvez écrire, et il dira à perl comment accéder à ces modules.

en général, si vous voulez utiliser un module qui est dans un répertoire blib/, vous voulez dire perl -Mblib ...... est la façon dont vous invoqueriez normalement votre script.

19
répondu jrockway 2009-02-12 10:21:03

je recommande fortement Perlbrew . Il vous permet d'exécuter plusieurs versions de Perl, installer des paquets, Hacker Perl internes si vous le souhaitez, Toutes les permissions régulières de l'utilisateur.

3
répondu tiktak 2018-03-19 04:20:43

Pour Makefile.Distributions basées sur PL, utilisez L'option INSTALL_BASE pour générer des Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl
2
répondu parthi 2014-07-19 08:34:19