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?
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
autres réponses déjà sur Stackoverflow:
- comment installer des modules localement sans accès root...
- Comment puis-je utiliser un nouveau module Perl sans les permissions d'installation?
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
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 ...
où ...
est la façon dont vous invoqueriez normalement votre script.
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