Welches cpan-Installationsprogramm ist das richtige? (CPAN.pm/CPANPLUS/cpanminus)


70

Es stehen mehrere Installationsprogramme für cpan-Module zur Verfügung. Ich kenne mindestens CPAN.pm (wird mit Perl geliefert), CPANPLUS und cpanminus.

Was ist der Unterschied zwischen den drei?

Welche Situationen erfordern die Verwendung übereinander?

Gibt es andere Modulinstallationsprogramme, über die ich Bescheid wissen sollte?

Antworten:


80

CPAN.pm ( cpan) ist der ursprüngliche Client. Es kommt mit Perl, also haben Sie es bereits. Es hat die meisten Funktionen. Es gibt viele Konfigurationsoptionen, um die Funktionsweise anzupassen, obwohl praktisch jeder die Standardinstallation akzeptiert. Es lässt sich leicht in local :: lib integrieren .


cpanminus ( cpanm) ist ein Versuch, einen Client ohne Konfiguration zu erstellen , der für die meisten Benutzer automatisch das Richtige tut. Es ist auch so konzipiert, dass es auf Systemen mit begrenzten Ressourcen (z . B. einem VPS ) gut funktioniert . Es kommt nicht mit Perl, aber es ist einfach zu installieren . Es lässt sich leicht in local :: lib integrieren .

Die größte Einschränkung ist die fehlende Konfiguration. Wenn Sie etwas Ungewöhnliches tun möchten, wird es möglicherweise nicht unterstützt .


CPANPLUS ( cpanp) ist ein Versuch, eine CPAN-API zu erstellen , die Perl-Programme anstelle einer App verwenden können, die Sie über die Befehlszeile verwenden. Die cpanpShell ist eher ein Proof-of-Concept, und ich kenne keine wirklichen Vorteile bei der Verwendung.


Zusammenfassend würde ich entweder cpanoder empfehlencpanm . Wenn Sie Probleme beim Konfigurieren haben cpan, versuchen Sie es cpanm. Wenn Ihre Situation ungewöhnlich ist, versuchen Sie es cpan.


3
Vielen Dank! Diese Zusammenfassung ist genau das, was ich brauchte.
Sean McMillan

3
Das neueste cpan (1) integriert sich auch in local :: lib :)
brian d foy

Ich kann nicht von modernem cpan (1) sprechen, aber zuvor war cpanp wesentlich besser darin, zirkuläre Abhängigkeiten aufzulösen.
Evan Carroll

Ja, Cpan oder Cpanm. spielt keine Rolle
DNS

2
Vielleicht könnte dies auch dahingehend geändert werden cpm.
Simbabque

12

Es ist unmöglich, diese Frage zu beantworten, weil sie zu subjektiv ist. :) :)

Aus meiner Sicht: cpanmist die einfachste Art, Perl-Module zu installieren. Sie können installieren cpanmmit:

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

und danach können Sie Module mit einfachen installieren:

cpanm Some::Module

Sie können cpanmCPAN auch auf einen Teil Ihres lokalen Computers spiegeln, sodass IMHO cpanmfür die häufigsten CPAN-Anforderungen am besten geeignet ist.


Das ist ein fabelhafter Einzeiler!
Joshua Hoblitt

1
Uuuuh ... Sudo hier zu verwenden ist normalerweise eine schlechte Idee.
Reinierpost

1
@reinierpost - sicher, wie immer: Paranoia ist der richtige Geisteszustand von Systemadministratoren . :) Aber meine zweite Hälfte glaubt an docs: search.cpan.org/dist/App-cpanminus/lib/App/…
jm666

1
Wie ist das Ausführen curl -L http://cpanmin.us | perl - --sudo App::cpanminuseinfacher als gar nichts auszuführen? cpanist bereits installiert, wenn Sie haben perl.
Ikegami

@ikegami sicher. Für mich cpanmfunktioniert das viel besser als cpan. Ich bin ein Perl-Idiot, ich brauche Dinge, die "einfach funktionieren". Das cpanist nicht für mich - braucht zu viel Lernen;) - aber wahrscheinlich für die Perl-Mönche ist es das "richtige" Werkzeug.
jm666

7

Gibt es andere Modulinstallationsprogramme, über die ich Bescheid wissen sollte?

Wenn Sie eine Linux-Distribution verwenden, die CPAN-Module verpackt, lohnt es sich, das Paketinstallationsprogramm zum Installieren von Modulen zu verwenden. Zum Beispiel haben Ubuntu / Debian eine große Anzahl von CPAN-Modulen, die Sie mit 'apt' installieren können, und Red Hat / Centos / Fedora haben eine Nummer, die Sie mit 'yum' installieren können.


2
Es ist erwähnenswert, dass Projekte häufig von diesem Ansatz abraten, da die Pakete häufig veraltet sind und Sie an eine einzige systemweite Version gebunden sind, die in einem einzigen systemweiten Satz aller installierten Module enthalten ist. In einfachen Fällen ist dies wahrscheinlich der richtige Weg, aber es lohnt sich, etwas über local :: lib / cpan (oder pip / virtualenv, rbenv / rvm) zu lernen.
Sam Brightman

@ SamBrightman Vielleicht möchten Sie die folgende Frage beantworten oder kommentieren: serverfault.com/questions/805850/…
bli

4

CPAN ist der Standard. cpanminus (cpanm) stellt weniger Fragen (meistens am besten). Ich kenne niemanden, der cpanplus verwendet.

Da diese Module herunterladen, kompilieren und installieren (Dateien an den richtigen Stellen platzieren), sollten sie alle dieselbe Aufgabe ausführen. Ein Teil des Unterschieds hängt mit Ihrer Berechtigungsstufe zusammen. Vielleicht möchten Sie einige Dinge lokal für Ihren Benutzer und einige Dinge global installieren, dann müssen Sie eine feinere Anpassung vornehmen. Entwickler müssen möglicherweise auch den Prozess zum Debuggen usw. steuern / unterbrechen.

Verwenden Sie für den täglichen Gebrauch cpanm. Wenn Sie nicht zu faul sind, um es zu installieren, ist CPAN in Ordnung.


1
Ich habe nicht abgelehnt, aber bitte lesen Sie auf Meta, warum das Kommentieren von Abstimmungen nicht obligatorisch war - sie berühren einige ziemlich gute Argumente ... keine Notwendigkeit, harte Worte zu verwenden.
Konerak

1
@Konerak, wenn meine Antwort den gleichen Inhalt hat (früher gepostet, nicht so eloquent) wie die akzeptierte und gut gewählte Antwort, ärgere ich mich, wenn meine nicht nur ignoriert, sondern eher herabgestimmt wird
Joel Berger

Ich verstehe, was du meinst, und ich liebe es auch, meine Abstimmungen erklären zu lassen (zumindest so kann ich etwas lernen ), aber unterschätze Beredsamkeit und Formatierung nicht;)
Konerak

0

cpanm benötigt viel weniger Speicher. Dies macht es zu einer besseren Wahl für Umgebungen, in denen der Arbeitsspeicher begrenzt ist, z. B. gemeinsam genutzte Hosting-Server, bei denen reguläres cpan vor Abschluss der Installationsaufgabe möglicherweise ausfällt, weil versucht wird, mehr als den verfügbaren Speicher zu verwenden.

Laut der Dokumentation von cpanm (1.7044) "benötigt es beim Ausführen nur 10 MB RAM"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.