2009-10-09 6 views
4

mon admin m'a donné les droits pour SudoComment puis-je installer des modules locaux avec l'outil cpan?

cpan 

Je dois aussi installer un ou deux modules non CPAN (Atlassian Crowd - connecteur> svn) au PERL5LIB mondial. Je me souviens vaguement que cpan peut s'installer à partir de sources locales, sans tirer les modules de la bande.

des pointeurs? Est-ce que je peux le faire ou devrais-je juste lui installer ces modules manuellement en tant que root (un problème majeur pour moi)? Merci!

Répondre

8

Si vous souhaitez installer la distribution de Perl dans le répertoire courant, utilisez le point au lieu d'un nom de fichier:

cpan . 

Si vous utilisez une des dernières versions du programme cpan (pas celle qui actuellement fourni avec CPAN.pm), vous pouvez utiliser l'option -j pour spécifier un autre fichier de configuration dans lequel vous pouvez définir les directives --install_base ou INSTALL_BASE, ainsi que définir des valeurs pour des options telles que connect_to_internet_ok.

cpan -j /path/to/Config.pm Foo::Bar 

Si vous souhaitez modifier votre configuration actuelle pour votre fichier de configuration alternatif, utilisez -J pour obtenir le fichier texte:

cpan -J 

Idéalement, au lieu de vous donner des privilèges super-utilisateur, que sysadmin serait avez créé un groupe pour les administrateurs Perl, auriez spécifié un répertoire pour les installations de modules appartenant à ce groupe, et vous avez ajouté à ce groupe. Vous n'auriez pas besoin de pouvoirs spéciaux alors.

+0

bien .... $ cpan -J Option inconnue: J Rien à installer! $ cpan -j Option inconnue: j Rien à installer! merci quand même – webwesen

+0

C'est pourquoi j'ai dit que vous deviez obtenir la dernière version. Lequel utilisez-vous? –

+0

Totalement d'accord avec la solution de Brian à propos d'un groupe perl - qui évite l'échappatoire de la racine que j'ai mentionnée dans mon commentaire (maintenant avec un exemple). –

1

droits de Sudo à cpan -i devrait faire l'affaire:

bash-3.2$ cpan -i Foo::Bar 
CPAN: File::HomeDir loaded ok (v0.80) 
CPAN: Storable loaded ok (v2.18) 
... 

Je ne suis pas familier avec l'installation à partir des fichiers via le script CPAN. Dans le shell cpan vous pouvez look dans le répertoire du module et construire/installer manuellement à partir de là si vous le souhaitez, mais le fichier tar d'origine provient toujours du référentiel, et la ligne de commande cpan ne semble pas avoir cette fonction (si Je doute que l'administrateur aurait de grands droits sudo puisque depuis, vous auriez un shell racine).

Mise à jour: brian d foy suggère que je me trompe de donner sudo à la commande CPAN étant le même que donner un shell root - voici pourquoi je ne me trompe pas:

bash-3.2# whoami 
aufflick 
bash-3.2# sudo cpan 
cpan[1]> o conf shell bash 
cpan[2]> look Acme::Bleach 
..... downloads and extracts Acme::Bleach ... 
CPAN: File::Temp loaded ok (v0.18) 
Working directory is /Users/aufflick/.cpan/build/Acme-Bleach-1.12-v768Dv 
bash-3.2# whoami 
root 
bash-3.2# 
+0

J'aurais dû être plus clair. il m'a donné sudo pour cpan et sudo pour ./Build - cela me permet de l'installer dans le global PERL5LIB – webwesen

+0

Si vous spécifiez un nom de module, il va toujours essayer de l'obtenir à partir d'un miroir CPAN. –

+0

Sans aucun argument, le programme cpan vous dépose dans le shell CPAN.pm. Ce n'est pas encore un shell racine, cependant. Vous ne pouvez interagir qu'avec CPAN.pm. –

1

Vous n'avez pas fait besoin de votre administrateur pour vous donner le droit d'installer les modules CPAN. En fait local::lib est une meilleure solution pour un certain nombre de raisons.

+3

local :: lib n'est pas une meilleure solution si vous voulez installer les modules pour tous les utilisateurs. –

+0

Comment dois-je procéder Si je n'ai pas local :: lib en premier lieu? – Ram

Questions connexes