75 votes

Quel installateur cpan est le bon ? (CPAN.pm/CPANPLUS/cpanminus)

Il y a plusieurs installateurs pour les modules cpan disponibles ; je connais au moins CPAN.pm (livré avec perl,) CPANPLUS, et cpanminus.

Quelle est la différence entre les trois ?

Dans quelles situations faut-il utiliser l'un plutôt que l'autre ?

Y a-t-il d'autres installateurs de modules que je devrais connaître ?

84voto

cjm Points 44090

CPAN.pm ( cpan ) est le client original. Il est fourni avec Perl, donc vous l'avez déjà. Il possède le plus de fonctionnalités. Il possède de nombreuses options de configuration pour personnaliser son fonctionnement, bien que pratiquement tout le monde accepte l'installation par défaut. Il s'intègre facilement à local::lib .


cpanminus ( cpanm ) est une tentative de créer un client sans configuration qui fait automatiquement ce qu'il faut pour la plupart des utilisateurs. Il est également conçu pour fonctionner correctement sur des systèmes aux ressources limitées (par exemple, un ordinateur de type VPS ). Il n'est pas fourni avec Perl, mais il est facile à installer . Il s'intègre facilement à local::lib .

Sa plus grande limite est son manque de configuration. Si vous voulez faire quelque chose d'inhabituel, il peut ne pas le supporter .


CPANPLUS ( cpanp ) est une tentative de faire une API CPAN que les programmes Perl peuvent utiliser, au lieu d'une application que vous utilisez depuis la ligne de commande. Le site cpanp Le shell est plus une preuve de concept, et je ne connais pas de réels avantages à l'utiliser.


En résumé, je recommande soit cpan o cpanm . Si vous avez des difficultés à configurer cpan essayez. cpanm . Si votre situation est inhabituelle, essayez cpan .

3 votes

Merci ! Ce résumé est exactement ce dont j'avais besoin.

3 votes

La dernière version de cpan(1) intègre également local::lib :)

0 votes

Je ne peux pas parler du cpan(1) moderne mais, auparavant, cpanp était bien meilleur pour résoudre les dépendances circulaires.

12voto

jm666 Points 17312

Il est impossible de répondre à cette question car elle est trop subjective :)

De mon point de vue : cpanm est la façon la plus simple d'installer des modules perl. Vous pouvez installer cpanm avec :

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

et après cela vous pouvez installer des modules avec simple :

cpanm Some::Module

Vous pouvez utiliser cpanm pour mettre en miroir (une partie de) CPAN sur votre machine locale aussi, donc IMHO cpanm est le meilleur pour les besoins les plus courants de CPAN.

0 votes

C'est un fabuleux one liner !

1 votes

Uuuuh ... utiliser sudo ici est généralement une mauvaise idée.

1 votes

@reinierpost - bien sûr, comme d'habitude : la paranoïa est le bon état d'esprit des administrateurs système . :) Mais ma seconde moitié croit aux docs : search.cpan.org/dist/App-cpanminus/lib/App/

8voto

Dave Cross Points 17363

Y a-t-il d'autres installateurs de modules que je devrais-je connaître ?

Si vous utilisez une distribution Linux qui empaquette les modules CPAN, alors il vaut la peine d'utiliser leur programme d'installation de paquets pour installer les modules. Par exemple, Ubuntu/Debian ont un grand nombre de modules CPAN que vous pouvez installer en utilisant 'apt' et Red Hat/Centos/Fedora en ont un certain nombre que vous pouvez installer en utilisant 'yum'.

2 votes

Il est intéressant de noter que les projets déconseillent souvent cette approche parce que les paquets sont souvent assez obsolètes et qu'elle vous lie à une version unique pour tout le système, contenue dans un ensemble unique pour tout le système de tous les modules installés. Pour les cas simples, c'est en effet probablement la voie à suivre, mais cela vaut la peine de se renseigner sur local::lib/cpan (ou pip/virtualenv, rbenv/rvm).

0 votes

@SamBrightman Vous pourriez répondre ou commenter la question suivante : serverfault.com/questions/805850/

4voto

Joel Berger Points 14203

CPAN est le standard. cpanminus (cpanm) pose moins de questions (le mieux la plupart du temps). Je ne connais personne qui utilise cpanplus.

Puisque ce que ces modules font, c'est télécharger, compiler et installer (placer les fichiers aux bons endroits), ils devraient tous effectuer la même tâche. Une partie de la différence est liée au niveau de permissions que vous avez. Si vous voulez installer certaines choses localement pour votre utilisateur et d'autres globalement, vous avez besoin d'un réglage plus fin. Les développeurs peuvent également avoir besoin de contrôler/interrompre le processus pour le déboguer, etc.

Pour un usage quotidien, utilisez cpanm, à moins que vous ne soyez trop paresseux pour l'installer, alors CPAN est parfait.

1 votes

Je n'ai pas downvoté, mais lisez sur meta pourquoi le commentaire sur downvote n'a pas été rendu obligatoire - ils touchent des arguments assez bons... pas besoin d'utiliser des mots durs.

1 votes

@Konerak, quand ma réponse a le même contenu (postée plus tôt, moins éloquente) que la réponse acceptée et bien votée, je suis irrité quand la mienne est non seulement ignorée mais plutôt rétrogradée.

0 votes

Je vois ce que tu veux dire et moi aussi j'aime bien qu'on m'explique mes downvotes (au moins de cette façon je peut apprendre quelque chose ), mais ne sous-estimez pas l'éloquence et le formatage ;)

0voto

Cpanm utilise beaucoup moins de mémoire. Cela en fait un meilleur choix pour les environnements où la mémoire vive est limitée, comme les serveurs d'hébergement mutualisé, où cpan ordinaire peut mourir avant d'avoir terminé l'installation, parce qu'il tente d'utiliser plus que la mémoire disponible.

Selon Documentation de cpanm (1.7044) "Lorsqu'il fonctionne, il ne nécessite que 10 Mo de RAM".

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