2016-07-08 5 views

Antwort

12

cpan Die CPAN-Shell wurde seit ca. 1997 mit Perl ausgeliefert. Wenn Sie es das erste Mal ausführen, werden einige Fragen gestellt und die Antworten in einer Konfigurationsdatei gespeichert. Dann können Sie ein Modul installieren, indem Sie:

cpan -i Module::Name 

Die Shell bietet andere Befehle für die Suche CPAN und Blick in Verteilungsdateien.

Ein Projekt eine neue, bessere und mehr featureful CPAN-Shell erstellen CPANPLUS (cpanp aus der Befehlszeile) aufgerufen wurde von Jos Boumans gestartet, aber es wurde nie ganz auf den Punkt abgeschlossen, wo die ursprüngliche Vision realisiert worden war.

Inzwischen MIYAGAWA entschieden, dass cpanp versuchen, zu viel zu tun und was die Welt wirklich brauchte, war ein einfacher Schal, die tat weniger und fragte weniger Fragen (im Idealfall gar keine). Er erstellte App::cpanminus, die den cpanm Befehl bereitstellt und genau das tut, was er vorhatte. Sie können es verwenden, um ein Modul zu installieren (und die Abhängigkeiten der alle Module) mit einem Befehl wie:

cpanm Module::Name 

Der wesentliche Unterschied zwischen den beiden ist, dass, wenn Sie Perl haben Sie bereits den cpan Befehl haben sollte. Während Sie cpanm nicht haben, bis/Sie es installieren.

+0

So welches benutzt werden, um Module zu installieren? Ist 'cpanm' besser, weil es neuer ist? – CJ7

+2

Verwenden Sie, was immer Sie bevorzugen - entweder ist in Ordnung. Ich würde 'cpan -i App :: cpanminus' verwenden, um cpanm zu installieren und dann' cpanm' zu verwenden.Ich denke, es ist besser, weil es einfacher ist (sicher nicht nur, weil es neuer ist). –

+1

@ CJ7, Weder installiert eigentlich nichts. Sie führen das Installationsprogramm aus, das in der zu installierenden Distribution enthalten ist. Daher werden die Unterschiede hauptsächlich kosmetischer Natur sein. Ich sehe den Punkt nicht aus dem Weg, 'cpanm' zu installieren, nur um zu vermeiden, Enter zu drücken, sobald'cpan' zum ersten Mal ausgeführt wird. – ikegami

7

Die meisten modernen Perl-Benutzer bevorzugen cpanm für ihre Einfachheit und vor allem, Kürze der Ausgabe.

Die Verwendung von cpan kann Hunderte von Zeilen Ausgabe ergeben, da es Ihnen alles zeigt, was es tut: Download, Prüfsumme, laufendes Installationsprogramm, Parsing, Laden, die Liste geht weiter. Gleiches gilt für jede Abhängigkeit.

cpanm auf der anderen Seite sagt Ihnen, was es in einer knapperen und allgemeinen Weise macht, das heißt: Holen, Konfigurieren, Bauen und Testen, Fertig.

Also der Hauptunterschied in der Verwendung ist, dass cpanm eine Menge (typischerweise) irrelevanter Informationen unterdrückt. Manchmal, wenn ein Modul ausfällt, möchten Sie vielleicht weitere Informationen. Es gibt eine -v|--verbose Flagge, die Ihnen im Wesentlichen alles zeigt cpan würde.

Außerdem scheinen einige Module, die Benutzereingaben erfordern, zu "hängen", wenn Sie versuchen, sie zu installieren. Das liegt daran, dass die Ausgabe, die Sie auffordert, etwas einzugeben, unterdrückt wird. Sie können die --interactive (oder --verbose) Flags verwenden, um das zu umgehen.

Für einen Vergleich der Ausgabe siehe Folien 35-39 here oder Objektträger 37-41 here. (Diese sind von der gleichen Darstellung. Ich verdopple gerade die Verbindungen, wenn man außer Linie geht.)

+4

* "Die meisten modernen Perl-Benutzer bevorzugen cpanm für seine Einfachheit und vor allem, Kürze der Ausgabe." * Das erfordert a Zitat und ist ein unnötiger Teil der Antwort. Sie sind eindeutig ein 'cpanm'-Fan, ohne das zu sagen, und man kann nicht darauf vertrauen, einen sachlichen Bericht zu geben. * "ein knapper und allgemeiner Weg" * sicherlich kann es nicht beides sein? – Borodin

+0

"Allgemein" wie definiert durch _ _übernehmen oder nur die Hauptmerkmale oder Elemente von etwas einschließen _. Indem nur die Hauptelemente der Modulinstallation angegeben werden, ist die Ausgabe von "cpanm" viel knapper als die von "cpan". – Joshua

Verwandte Themen