81 votes

Comment utiliser CPAN en tant qu'utilisateur non root?

Je souhaite installer des modules Perl sur un serveur partagé sur lequel je n'ai pas d'accès root. Comment puis-je faire ceci? Ils semblent également avoir une version plus ancienne de CPAN (il se plaint de cela en exécutant la commande), est-il possible de mettre à jour la commande CPAN utilisée depuis mon compte sans nécessiter un accès root?

140voto

Chas. Owens Points 40887

La méthode la plus simple que j'ai trouvé jusqu'à présent est-à-dire

wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile

Cela suppose que votre profil est nommé .profile, vous devrez peut-être modifier que pour être .bash_profile, .bashrc, etc. Après cela, vous pouvez installer des modules en disant

cpanm Module::Name

et tout simplement utiliser de la même façon que vous le feriez si l'ont été installés dans le répertoire racine.


Ce qui suit est une brève explication de ce que les commandes ci-dessus ne.

wget -O- récupère la dernière version de http://cpanmin.us et l'imprime à l' qui est ensuite canalisée vers cpanm. La première STDOUT dit perl - -l ~/perl5 App::cpanminus local::lib de s'attendre à ce que le programme à venir sur -, ce qui rend perl exécuter la version d' STDIN nous venez de télécharger. perl passe le reste de la arguments au cpanm. L' perl argument indique cpanm où installer les modules Perl, et les deux autres arguments sont de deux modules à installer. -l ~/perl5]1 est le paquet qui installe cpanm. [App::cpanmins est un module d'aide qui gère les variables d'environnement nécessaires à l'exécution de modules dans le répertoire local.

Après ces modules sont installés, nous courons

cpanm

pour définir les variables d'environnement nécessaires à l'utilisation des modules locaux et puis

local::lib

pour nous assurer que nous serons en mesure de les utiliser la prochaine fois que nous nous connectons.

12voto

DVK Points 63282

http://perl.jonallen.info/writing/articles/install-perl-modules-without-root

http://novosial.org/perl/life-with-cpan/non-root/

L'étape principale dans les deux ensembles d'instructions implique locale::lib module

Autant que je sache, CPAN logique est contenue dans le module Perl (CPAN.h) ce qui signifie que vous pouvez facilement l'installer dans votre répertoire local, comme vous le feriez avec tout autre module Perl.


Aussi, une fois que vous installer vos modules dans emplacement non standard, découvrez ces deux questions sur le chargement de bibliothèques à partir d'un emplacement non standard (certains de l'info est déjà disponible dans le lien ci-dessus):

Comment fonctionne un programme en Perl savoir où trouver le fichier contenant le module Perl-il utilise?

Comment est-Perl @INC construit? (aka Quelles sont les façons d'affecter où modules Perl sont recherchés?)

6voto

Juan A. Navarro Points 1768

Pour être complet, il s’agit du processus d’installation de cpanm sur OSX si vous souhaitez conserver votre perl5 sous ~/Library .

 curl -L http://cpanmin.us | perl - -l ~/Library/perl5 App::cpanminus local::lib
eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`
echo 'eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`' >> ~/.bash_profile
 

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