2014-03-29 7 views
6

Ich schaue Perl als totaler Anfänger. Ich möchte einige CPAN-Module ausprobieren. Wenn ich einen Installationsbefehl auf meiner Osx-Konsole ausgeführt wird, fragt CPAN für eine Konfiguration mit der folgenden Aussage:CPAN ersten Startkonfiguration

Module installieren zu können, benötigen Sie ein lokales Perl-Bibliothek Verzeichnis konfigurieren oder Ihre Rechte ausweiten. CPAN kann Ihnen helfen, indem Sie bootstrapping das local :: lib-Modul oder indem Sie sich selbst konfigurieren, um "Sudo" zu verwenden (wenn verfügbar). Sie können dieses Problem auch manuell beheben, wenn Sie Ihre Einrichtung anpassen müssen.

Welchen Ansatz möchten Sie? (Wählen Sie bitte 'local :: lib', 'sudo' oder 'Handbuch')

Was ist der Unterschied zwischen local::lib und sudo Optionen? Wenn ich es gut verstehe, installiert es einige Module lokal auf meinem Computer. Aber ich sehe keinen Unterschied zwischen den beiden obigen Konfigurationen.

+1

Wenn ich mich richtig erinnere, erstellt 'local :: lib'' '/ perl5' 'und installiert Module dort. – NigoroJr

Antwort

8

Wenn Sie sudo verwenden, verwendet CPAN root, um die Bibliotheken an einem zentralen Ort zu installieren, an dem alle Benutzer auf dem Computer ohne spezielle Konfiguration auf die Dateien zugreifen können. Wenn Sie 'local :: lib' verwenden, erstellt es eine Bibliothek in Ihrem Home-Verzeichnis und installiert die Module so, dass nur Perl-Programme, die für die Suche nach Modulen in Ihrem Home-Verzeichnis konfiguriert wurden, die Module finden.

Perl verwendet die spezielle Variable @INC, um nach Modulpfaden zu suchen. So können Sie Module überall installieren, solange Sie @INC richtig eingestellt haben, bevor Sie sie verwenden. Dieser Artikel erläutert die Grundlagen.

http://www.symkat.com/find-a-perl-modules-path

Sie können mit @INC alle Arten von Spaß Dinge tun; einer meiner Lieblings-hackt es, um einen Funktionszeiger dorthin zu setzen und benutzerdefinierten Perl-Code zu verwenden, um Module nachzuschlagen.

3

Gute Frage. Wenn Sie local::lib verwenden, können Sie Module über CPAN Benutzerspezifisch in einem bestimmten Verzeichnis installieren. Angenommen, Sie wählen sudo als Ansatz, installieren Sie Module global.

Es ist wie Node.js über npm zu installieren. Wenn Sie ein Modul mit npm install -g <Modul> installieren, ist es global installiert und Sie können es überall verwenden. Aber ohne diese -g Flagge, ist es nur in Ihrem aktuellen Verzeichnis verfügbar.

Es ist ungefähr das gleiche hier, außer dass Sie die Standardmethode der Installation CPAN Module wählen.

+0

Danke für dein Beispiel! Ich bin mit node.js nicht vertraut, aber ich verstehe diese globale vs lokale Wahl. –

+0

Ah ok, einen Versuch wert: D –

Verwandte Themen