Comment puis-je utiliser un nouveau module Perl sans les permissions d'installation?

voici ma situation: Je ne sais presque rien de Perl mais c'est la seule langue disponible sur une machine de portage. Je n'ai que les permissions d'écrire dans ma zone de travail locale et pas L'emplacement D'installation de Perl. Je dois utiliser le parallèle:: ForkManager module Perl de CPAN

comment utiliser ce parallèle::ForkManager sans faire d'installation centrale? Y a-t-il une variable d'environnement que je peux définir pour qu'elle soit localisée?

Merci

JD

27
demandé sur brian d foy 2008-10-30 23:46:30

10 réponses

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

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

pour les distributions basées sur C, utilisez L'option INSTALL_BASE lors de la génération de Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

vous pouvez le mettre dans votre CPAN.configuration pm de façon à ce 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

pour les distributions basées sur C, utilisez l'option -- install_base:

perl Build.PL --install_base /mydir/perl

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

% cpan
cpan> o conf mbuild_arg --install_base /mydir/perl
cpan> o conf commit

INSTALL_BASE indique à ces outils de mettre vos modules dans F. Voir L pour plus de détails sur la façon d'exécuter votre nouveau moudles installées.

il y a une mise en garde avec INSTALL_BASE, cependant, puisqu'il agit autrement que le préfixe et LIB les réglages des anciennes versions de ExtUtils:: MakeMaker prôné. INSTALL_BASE ne supporte pas installation de modules pour plusieurs versions de Perl ou différentes architectures sous le même répertoire. Vous devriez considérer si vous je veux vraiment que , et si vous le faites, utilisez l'ancien préfixe et LIB paramètre. Voir la documentation ExtUtils::Makemaker pour plus de détails.

35
répondu brian d foy 2008-11-20 22:52:44

Check out ce post de Mark Dominus

extrait:

  • Set PREFIX=X lors de la construction du Makefile
  • Set INSTALLDIRS=vendorprefix = x lors de la construction du Makefile
    • ou peut-être à la place de VENDORPREFIX vous devez mettre INSTALLVENDORLIB ou quelque chose
    • ou peut-être au lieu de les placer tout en construisant le Makefile vous devez les définir pendant l'exécution de la cible make install
  • ensemble LIB=X / lib lors de la construction du Makefile
  • Use PAR
  • Utilisation locale::lib

Mark donne également une autre solution dans son blog qui prend un peu plus d'espace à desribe mais se résume à exécuter make and make test mais pas make install et ensuite utiliser les trucs dans blib/.

6
répondu mikegrb 2008-10-30 21:01:44

télécharger le paquet CPAN vers un dossier:

wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Parallel-ForkManager-1.06.tar.gz
gunzip Parallel-ForkManager-1.06.tar.gz
tar -xvf Parallel-ForkManager-1.06.tar

avant cela créez un dossier à la maison pour stocker vos modules locaux, maintenant allez dans le dossier téléchargé et exécutez les cmmands suivants:

perl Makefile.PL PREFIX=/home/username/myModules
make
make test
make install

obtenir le chemin vers ForkManager à partir du dossier installé,/home / username/myModules et localisez le dossier parallèle et obtenez le chemin complet vers ceci.

maintenant dans votre fichier perl mettez-les au début

use lib '/home/username/myModules/bin.../Parallel';
use parallel::ForkManager;

, ça devrait le faire.

5
répondu ChathuraG 2014-02-21 15:20:07

il y a la variable D'environnement PERL5LIB, et -I sur la ligne de commande quand il s'agit d'utiliser le module. Il existe des mécanismes pour informer CPAN et CPANPLUS.

il y a de l'information à la question 5 du manuel du PAC (perldoc PAC, ou regardez le PAC lui-même).

4
répondu Jonathan Leffler 2008-11-12 02:40:22
use lib 'directory';
use Parallel::ForkManager;
3
répondu dexedrine 2008-11-12 02:39:00

vous pouvez utiliser le commutateur de ligne de commande -I (capital i) suivi du répertoire où vous placerez le module; ou essayez la directive" use lib " suivie du répertoire.

2
répondu Alex 2008-11-12 02:39:37
2
répondu Corion 2011-02-03 12:45:06
perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl
2
répondu Viraj 2012-08-27 14:52:41

utiliser cpanm -l $DIR_NAME option.

2
répondu Ron Abraham 2014-11-01 10:29:45

envisager d'utiliser cpanminus, a suggéré sur cet autre fil

0
répondu Juan A. Navarro 2017-05-23 12:03:03