J'utilise une machine Linux hébergée donc je n'ai pas les autorisations pour écrire dans le /usr/lib
répertoire.
Lorsque 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 blib/lib/
dossier. J'ai gardé use blib/lib/ModuleName
mais le compilateur dit toujours que le module est introuvable. J'ai essayé de copier le fichier .pm dans le répertoire local et j'ai conservé require ModuleName
mais ça me donne quand même une erreur.
Comment puis-je installer un module dans un autre répertoire et l'utiliser?
J'ai eu un problème similaire, où je n'ai même pas pu installer local :: lib
J'ai créé un programme d'installation qui a installé le module quelque part par rapport aux fichiers .pl
L'installation se déroule comme:
Perl Makefile.PL PREFIX=./modulos
make
make install
Ensuite, dans le fichier .pl qui nécessite le module, qui est en ./
use lib qw(./modulos/share/Perl/5.8.8/); # You may need to change this path
use module::name;
Les autres fichiers (makefile.pl, module.pm, etc.) ne nécessitent aucune modification.
Vous pouvez appeler le fichier .pl avec juste
Perl file.pl
local :: lib vous aidera. Il convaincra "make install" (et "Build install") d'installer dans un répertoire dans lequel vous pouvez écrire, et il indiquera à Perl
comment accéder à ces modules.
En général, si vous souhaitez utiliser un module qui se trouve dans un répertoire blib /, vous voulez dire Perl -Mblib ...
où ...
est la façon dont vous invoquez normalement votre script.
Pour les distributions basées sur Makefile.PL, utilisez l'option INSTALL_BASE lors de la génération des Makefiles:
Perl Makefile.PL INSTALL_BASE=/mydir/Perl
Je recommande fortement Perlbrew . Il vous permet d'exécuter plusieurs versions de Perl, d'installer des packages, de pirater les internes de Perl si vous le souhaitez, toutes les autorisations utilisateur normales.