64 votes

Comment puis-je installer un module CPAN dans un répertoire local?

Je suis à l'aide d'un hébergé machine Linux donc je n'ai pas les autorisations pour écrire dans l' /usr/lib répertoire.

Lorsque j'essaie d'installer un module CPAN en procédant comme d'habitude:

perl Makefile.PL
make test
make install

Ce module est extrait d'un blib/lib/ le dossier. J'ai gardé use blib/lib/ModuleName mais il reste le compilateur dit module ne peut pas être trouvé. J'ai essayé de copier le .pm fichier dans le répertoire local et gardé require ModuleName , mais encore il me donne une erreur.

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

67voto

brian d foy Points 71781

D'autres réponses déjà sur Stackoverflow:

De perlfaq8:


Comment puis-je garder mon propre module/répertoire de la bibliothèque?

Lorsque vous créez des modules, dites-Perl où installer les modules.

Pour Makefile.PL distributions, utilisez le INSTALL_BASE option lors de la génération de Makefile:

perl Makefile.PL INSTALL_BASE=/mydir/perl

Vous pouvez le faire dans votre CPAN.pm configuration des modules d'installer automatiquement dans votre bibliothèque privée de répertoire lorsque vous utilisez le CPAN.pm shell:

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

Pour Construire.PL distributions, utilisez l'option --install_base option:

perl Build.PL --install_base /mydir/perl

Vous pouvez configurer le CPAN.pm d'utiliser automatiquement cette option:

% cpan
cpan> o conf mbuildpl_arg '--install_base /mydir/perl'
cpan> o conf commit

44voto

XenF Points 228

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

J'ai créé un programme d'installation qui a installé le module quelque part par rapport à l' .pl fichiers

L'installation continue comme:

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

Ensuite, 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 le module.pm, etc) nécessitent pas de modifications.

Vous pouvez appeler le .pl fichier avec juste

perl file.pl

19voto

jrockway Points 23734

locale::lib va vous aider. Il va convaincre "make install" (et de "Construire installer") pour l'installer dans un répertoire, vous pouvez écrire, et il vous dira perl comment accéder à ces modules.

En général, si vous souhaitez utiliser un module qui est dans un blib/ directory, vous voulez dire perl -Mblib ...... est de savoir comment vous le feriez normalement appeler votre script.

3voto

tiktak Points 513

Je recommande fortement Perlbrew. Il vous permet d'exécuter plusieurs versions de Perl, installer des paquets, hack Perl internes si vous voulez, de toutes les autorisations de l'utilisateur.

3voto

parthi Points 271

Pour Makefile.PL distributions, utilisez le INSTALL_BASE option lors de la génération de Makefile:

perl Makefile.PL INSTALL_BASE=/mydir/perl

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X