Ich kann die Antwort darauf nirgendwo finden: Widerspricht ein über APT installiertes Modul einem über CPAN installierten Modul?
Zusammen mit dieser Frage sind dies: Wo leben die installierten CPAN-Module? Sind sie global oder nur für den installierenden Benutzer zugänglich? Woher weißt du welche? Woher wissen Sie, was installiert ist und was Vorrang hat?
Sollte CPAN überhaupt verwendet werden, wenn Module über APT installiert werden?
cpan
installierte Module landen, wird von PERLs bestimmtConfig.pm
. Auf meinem Ubuntu 11.04 ist es/usr/local/share/perl/5.10.1
./usr/local/share
für reine Perl-Module und/usr/local/lib
für XS-Sachen.Ich benutze Perlbrew . Es installiert eine lokale Version von Perl und cpan. Alles, was es tut, wird in Ihrem Home-Verzeichnis erledigt. Die Installation und Verwendung ist unkompliziert und Sie können die neueste Version von Perl installieren.
quelle
Bei der direkten Installation von CPAN würde ich empfehlen, local :: lib in einem für Sie privaten Verzeichnis zu verwenden. Siehe die Boostrapping-Technik https://metacpan.org/module/local::lib
Auf diese Weise wird das installierte CPAN-Modul nur von Ihrem Benutzer verwendet und es wird eine sehr saubere Trennung von den mit APT installierten Modulen erzielt.
Es macht es auch einfach, die von CPAN installierten Module zu entfernen, wenn Sie auf ein Problem stoßen oder wenn Sie Ubuntu aktualisieren.
So benutze ich es unter Ubuntu.
quelle
Sie können beide verwenden, aber sie werden in Konflikt geraten. Sie sind an derselben Stelle geschrieben. Wenn Sie also etwas von apt installieren und dann eine spätere Version von cpan installieren, können Sie die Dinge ausweichen.
Ich mache nicht viel Perl, aber in Python habe ich sicherlich das Dilemma, von dem Sie sprechen: apt-vs-PyPI. Ich persönlich entscheide mich für apt, wann immer ich kann. Es bedeutet, dass ich Updates erhalten sollte, ohne daran denken zu müssen, jedes einzelne Python-Paket zu warten. Darüber hinaus sollten alle meine Systeme auf derselben Version dieser Pakete ausgeführt werden.
Es klappt nicht immer. Manchmal haben Sie nicht genug neue Dinge in den Repos oder etwas, das Sie brauchen, ist einfach nicht verpackt. Keiner der Wege ist perfekt, aber ich glaube, dass er perfekter ist. Sei dir nur bewusst, was du tust und du solltest in Ordnung sein.
Bearbeiten - Fast vergessen, es gibt eine bessere Möglichkeit, Dinge zu unterteilen, damit das System eine eigene Umgebung haben kann und alles, was Sie entwickeln, in einer eigenen Umgebung leben kann (die Sie vollständig mit CPAN verwalten), wie Pythons
virtualenv
.../programming/1423879/how-can-i-install-specialized-environments-for-different-perl-applications
quelle
Site
oder einemsite
Verzeichnis installiert wird - oder dass Sie es zumindest erzwingen können.cpan
landen installierte Module in / usr / local / share / perl (oder dem von PERL angegebenen SpeicherortConfig.pm
), während APT-Pakete gemäß Debian-Richtlinie in / usr / share / perl5 landen. Sie stehen also nicht in Konflikt, und es ist sicher, CPAN- und APT-Installationen zu kombinieren, wie die anderen Antworten sagen. (Python ist hier keine gute Analogie: PERL-Verpackung und Modulhandhabung sind sehr unterschiedlich und -IMHO- Python überlegen.)