web-dev-qa-db-fra.com

CPAN vs. APT: Conflits de versions?

Je ne trouve la réponse à cela nulle part: un module installé via APT entre-t-il en conflit avec un autre installé via CPAN?

En plus de cette question, vous trouverez: Où vivent les modules CPAN installés? Sont-ils accessibles globalement ou uniquement à l'utilisateur qui installe? Comment savez-vous lequel? Comment savez-vous ce qui est installé et lequel a la priorité?

Le CPAN devrait-il même être utilisé lorsque des modules sont installés via APT?

8
Mei

Sur Debian et Ubuntu, CPAN (utilitaire /usr/bin/cpan) installe les modules dans /usr/local/lib/ par défaut. Et les paquets debian conservent leurs fichiers dans /usr/share/Perl5/ et /usr/lib/Perl5/. Ainsi, les fichiers installés via /usr/bin/cpan ne remplaceront pas les fichiers installés via apt.

Il n'y a rien de mal à utiliser Perl système, et le mélange de code apt et cpan fonctionnera généralement.

Vous pouvez également choisir de conditionner manuellement toute distribution cpan non disponible dans vos référentiels apt. C'est facile avec l'aide de l'outil dh-make-Perl:

dh-make-Perl --cpan Some::Module && cd Some-Module* && Sudo debi
6
berekuk

J'utilise perlbrew . Il installe une version locale de Perl et cpan. Tout ce que cela fait est fait dans votre répertoire personnel. C'est simple à installer et à utiliser et vous pouvez installer la dernière version de Perl.

5
shawnhcorey

Lors de l'installation directement depuis CPAN, je vous recommande d'utiliser local :: lib dans un répertoire privé. Voir la technique de boostrapping https://metacpan.org/module/local::lib

De cette façon, le module installé CPAN ne sera utilisé que par votre utilisateur et sa séparation par rapport aux modules installés à l'aide d'APT sera très nette.

Cela vous permettra également de vous débarrasser facilement des modules installés par CPAN en cas de problème ou lors de la mise à niveau d'Ubuntu.

C'est comme ça que je l'utilise sur Ubuntu.

3
szabgab

Vous pouvez utiliser les deux mais ils seront en conflit. Ils sont écrits au même endroit, donc si vous installez quelque chose d'apt et installez une version plus récente de cpan, vous risquez de faire des erreurs.

Je ne fais pas beaucoup de Perl mais en Python j'ai certainement le dilemme dont vous parlez: apt-vs-PyPI. Personnellement, j'opte pour apt chaque fois que je peux. Cela signifie que je devrais obtenir des mises à jour sans avoir à me souvenir de maintenir chaque paquet individuel Python. Non seulement cela, mais cela signifie que tous mes systèmes doivent fonctionner sur la même version de ces packages.

Ça ne marche pas toujours. Parfois, vous ne disposez pas d'assez de nouveautés dans les pensions ou de quelque chose dont vous avez besoin qui n'est tout simplement pas emballé. Aucune voie n'est parfaite mais je crois susceptible d'être plus parfait. Sois juste conscient de ce que tu fais et ça devrait aller.


Modifier - Presque oublié, il existe un meilleur moyen de séparer les éléments afin que le système puisse avoir son propre environnement et que tout ce que vous développez puisse vivre dans son environnement. Propre environnement (que vous gérez complètement avec CPAN), comme virtualenv... de Python.

https://stackoverflow.com/questions/1423879/how-can-i-install-specialized-environments-for-different-Perl-applications

2
Oli