Question

Voici ma situation: je ne connais presque rien de Perl, mais c’est la seule langue disponible sur une machine de portage. Je ne dispose que des autorisations pour écrire dans ma zone de travail locale et non de l'emplacement d'installation de Perl. Je dois utiliser le Parallel :: ForkManager du module Perl de CPAN

Comment utiliser Parallel :: ForkManager sans effectuer d’installation centralisée? Existe-t-il une variable d'environnement que je puisse définir pour qu'elle soit localisée?

Merci

JD

Était-ce utile?

La solution

De perlfaq8: Comment conserver mon propre répertoire de modules / bibliothèques? :

Lorsque vous construisez des modules, indiquez à Perl où installer les modules.

Pour les distributions C, utilisez l'option INSTALL_BASE. lors de la génération de Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

Vous pouvez définir ceci dans votre configuration CPAN.pm afin que les modules s’installent automatiquement. dans le répertoire de votre bibliothèque privée lorsque vous utilisez le shell CPAN.pm:

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

Pour les distributions C, utilisez l'option --install_base:

perl Build.PL --install_base /mydir/perl

Vous pouvez configurer CPAN.pm pour utiliser automatiquement cette option également:

% 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 des détails sur la façon de gérer votre nouveau moudles installés.

Il y a une mise en garde avec INSTALL_BASE, cependant, puisqu'il agit différemment que les paramètres PREFIX et LIB que les anciennes versions de ExtUtils :: MakeMaker préconisé. 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 envisager si vous vraiment envie de ça, et si vous le faites, utilisez les anciens PREFIX et LIB réglages. Voir la documentation ExtUtils :: Makemaker pour plus de détails.

Autres conseils

Découvrez ce message de Mark Dominus

Extrait:

  
      
  • Définissez PREFIX = X lors de la construction du Makefile
  •   
  • Définissez INSTALLDIRS = vendor et VENDORPREFIX = X lors de la construction du Makefile      
        
    • Ou peut-être qu'au lieu de VENDORPREFIX, vous devez définir INSTALLVENDORLIB ou quelque chose de ce genre
    •   
    • Ou peut-être qu'au lieu de les définir lors de la construction du Makefile, vous devez les définir lors de l'exécution de la cible make install
    •   
  •   
  • Définissez LIB = X / lib lors de la construction du Makefile
  •   
  • Utiliser le PAR
  •   
  • Utilisez local :: lib
  •   

Mark donne également une autre solution dans son blog qui prend un peu plus d’espace à décrire mais se résume à exécuter make et make test mais pas make install puis l’utilisation de la substance dans blib /.

Téléchargez le package CPAN dans 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 chez vous pour stocker vos modules locaux, allez maintenant dans le dossier téléchargé et exécutez les commandes suivantes:

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

récupérez le chemin d'accès à ForkManager à partir du dossier installé, / home / nom d'utilisateur / myModules et localisez le dossier Parallel et obtenez le chemin complet.

Maintenant, dans votre fichier Perl, mettez-les au début

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

- Cela devrait le faire.

Il existe la variable d’environnement PERL5LIB et -I sur la ligne de commande en ce qui concerne l’utilisation du module. Il existe des mécanismes pour informer CPAN et CPANPLUS.

Des informations figurent à la question 5 du manuel CPAN (CPLD perldoc ou consultez le CPAN lui-même). .

use lib 'directory';
use Parallel::ForkManager;

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

perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl

utilisez l'option cpanm -l $ DIR_NAME .

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top