2010-08-18 9 views
1

Je souhaite utiliser un répertoire non racine spécifique au répertoire personnel pour les éléments que j'installe à partir de cpan. Comment puis-je le configurer?Constructions cpan locales

La configuration CPAN normale tente d'installer les packages dans /usr. Après avoir ajouté 'makepl_arg' => q[PREFIX=~/cpan_local], des paquets simples semblent se construire, mais je ne peux pas construire un paquet qui tire ses dépendances - la dépendance n'est pas trouvée.

Après avoir changé à 'makepl_arg' => q[PREFIX=~/cpan_local LIB=~/cpan_local], je reçois le message suivant: Warning: Prerequisite 'ExtUtils::CBuilder => 0.27' for 'D/DA/DAGOLDEN/Module-Build-0.3607.tar.gz' already installed but installation looks suspicious. Skipping another installation attempt, to prevent looping endlessly.

Comment puis-je configurer correctement ce? Je veux que tout ce qui est construit à faire automatiquement ~/cpan_local. (ou pour les personnes familières avec Python, je voudrais que cela fonctionne comme virtual-env et en cours d'exécution easy_install).

+0

Dupliquer de [Comment puis-je installer un module CPAN dans un répertoire local?] (Http://stackoverflow.com/questions/540640/how-can-i-install-a-cpan-module-into-a- local-directory) - l'astuce consiste à utiliser [local :: lib] (http://search.cpan.org/perldoc?local::lib) qui est très bien documenté. – Ether

Répondre

5

Encore mieux, installez d'abord App::cpanminus. Ensuite, utilisez-le simplement pour installer des modules en tant qu'utilisateur régulier. Si cet utilisateur ne peut pas écrire dans les répertoires /usr/local/lib/perl*, il aura recours à l'écriture dans son répertoire personnel, ou vous lui passerez l'option -l ou --local-lib pour l'installer directement dans votre répertoire personnel sans avoir à déterminer s'il peut les installer dans le système.

Enfin, l'installation de local::lib et la configuration automatique de votre environnement avec votre fichier .bashrc vous permettront d'omettre l'option --local-lib et de l'installer directement dans votre répertoire personnel.

2

Utilisez local::lib. Les instructions bootstrap devraient faire l'affaire pour vous.