![CPAN vs. APT: Versionskonflikte?](https://rvso.com/image/1035891/CPAN%20vs.%20APT%3A%20Versionskonflikte%3F.png)
Ich kann die Antwort darauf nirgends finden: Steht ein über APT installiertes Modul im Konflikt mit einem über CPAN installierten Modul?
Damit einhergehend stellt sich folgende Frage: Wo befinden sich die installierten CPAN-Module? Sind sie global zugänglich oder nur für den installierenden Benutzer? Woher wissen Sie, welche? Woher wissen Sie, was installiert ist und welches Vorrang hat?
Sollte CPAN überhaupt verwendet werden, wenn Module über APT installiert werden?
Antwort1
Unter Debian und Ubuntu /usr/bin/cpan
installiert CPAN (Dienstprogramm) Module /usr/local/lib/
standardmäßig in . Und Debian-Pakete behalten ihre Dateien in /usr/share/perl5/
und /usr/lib/perl5/
. Daher /usr/bin/cpan
überschreiben über apt installierte Dateien keine überschriebenen Dateien.
Es ist nichts falsch daran, System-Perl zu verwenden, und das Mischen von APT- und CPAN-Code funktioniert im Allgemeinen.
Sie können jede CPAN-Distribution, die nicht in Ihren Apt-Repositories verfügbar ist, auch manuell paketieren. Mit dem Tool dh-make-perl ist das ganz einfach:
dh-make-perl --cpan Some::Module && cd Some-Module* && sudo debi
Antwort2
ich benutzeperlbrew. Es installiert eine lokale Version von Perl und cpan. Alles, was es tut, wird in Ihrem Home-Verzeichnis ausgeführt. Es ist unkompliziert zu installieren und zu verwenden und Sie können die neueste Version von Perl installieren.
Antwort3
Bei der direkten Installation von CPAN empfehle ich die Verwendung von local::lib in einem für Sie privaten Verzeichnis. Siehe die Bootstrapping-Technikhttps://metacpan.org/module/local::lib
Auf diese Weise wird das über CPAN installierte Modul nur von Ihrem Benutzer verwendet und es besteht eine saubere Trennung von den über APT installierten Modulen.
Darüber hinaus können Sie die über CPAN installierten Module problemlos entfernen, wenn Sie auf ein Problem stoßen oder Ubuntu aktualisieren.
So verwende ich es unter Ubuntu.
Antwort4
Sie können beide verwenden, es kommt jedoch zu Konflikten. Sie werden an die gleiche Stelle geschrieben. Wenn Sie also etwas von apt installieren und dann eine neuere Version von cpan installieren, kann es passieren, dass Sie etwas vermasseln.
Ich mache nicht viel Perl, aber in Python habe ich definitiv das Dilemma, von dem Sie sprechen: apt-vs-PyPI. Ich persönlich entscheide mich, wann immer es geht, für apt. Das bedeutet, dass ich Updates erhalten sollte, ohne daran denken zu müssen, jedes einzelne Python-Paket zu warten. Darüber hinaus bedeutet es, dass alle meine Systeme mit derselben Version dieser Pakete laufen sollten.
Es klappt nicht immer. Manchmal sind die Dinge in den Repos nicht neu genug oder etwas, das Sie brauchen, ist einfach nicht verpackt. Keiner der beiden Wege ist perfekt, aber ich glaube, es ist wahrscheinlichmehrperfekt. Passen Sie einfach auf, was Sie tun, dann sollte alles gut gehen.
Bearbeiten– Fast vergessen: Es gibt eine bessere Möglichkeit, Dinge zu unterteilen, sodass das System seine eigene Umgebung haben kann und alles, was Sie entwickeln, in seiner eigenen Umgebung leben kann (die Sie vollständig mit CPAN verwalten), wie bei Python virtualenv
...