2013-05-22 5 views
7

Ich versuche Perl erstmals auf meinem System zu verwenden, das Ubuntu 12.04 ist. Ich habe Perl v.5.14.2 installiert.
ich how to install Perl modules aufblickte, also fing ich an, wie folgt:Local/lib.pm kann nicht in @INC unter /usr/share/perl/5.14/CPAN/FirstTime.pm gefunden werden

$ perl -MCPAN -e shell 

Der Assistent begann die Umgebung zu konfigurieren, wie hier zu sehen: http://pastebin.com/5hn8vkb5
Obwohl, hielt es in der Mitte mit der folgenden Fehlermeldung:

... 

Checksum for /home/john/.cpan/sources/authors/id/A/AP/APEIRON/local-lib-1.008009.tar.gz ok 
---- Unsatisfied dependencies detected during ---- 
----  APEIRON/local-lib-1.008009.tar.gz ---- 
    ExtUtils::MakeMaker [build_requires] 
Running make test 
    Make had some problems, won't test 
    Delayed until after prerequisites 
Running make install 
    Make had some problems, won't install 
    Delayed until after prerequisites 

Can't locate local/lib.pm in @INC (@INC contains: 
    /home/john/perl5/lib/perl5 
    /etc/perl 
    /usr/local/lib/perl/5.14.2 
    /usr/local/share/perl/5.14.2 
    /usr/lib/perl5 
    /usr/share/perl5 
    /usr/lib/perl/5.14 
    /usr/share/perl/5.14 
    /usr/local/lib/site_perl 
    /home/john/Desktop) 
at /usr/share/perl/5.14/CPAN/FirstTime.pm line 1300. 

Was kann ich tun, um die Perl-Umgebung korrekt auf meiner Ubuntu-Installation einzurichten?


Nachdem der Assistent unterbrochen und neu gestartet wurde, gibt es keine Fehlermeldung mehr. Wie kann ich die Assistenten zu starten wieder, damit ich hier wählen:

What approach do you want? (Choose 'local::lib', 'sudo' or 'manual') [local::lib]

+1

'cpan local :: lib' vielleicht? Oder überprüfe das apt-get-Repository. Sie haben dieses Modul nicht installiert, aber Sie haben es ausgewählt, um es als Mittel zum Installieren von Modulen zu verwenden. Du willst nicht "sudo"? – TLP

+0

@TLP Wie lautet der Name der Bibliothek, die ich über 'sudo apt-get install ... 'installieren muss? – JJD

+1

Beats mich. Du musst suchen. Aber du kannst natürlich 'sudo cpan local :: lib' machen. Oder? – TLP

Antwort

14

Sie vermissen local::lib, was Sie gesagt haben CPAN Shell zu tun.

Sie können es wie so installieren:

sudo apt-get install liblocal-lib-perl 

Sie könnten in der Lage sein, Ihre ~/.cpan Verzeichnis neu beginnen von rm -rf -Ing. AUF IHR EIGENES RISIKO

Allerdings würde ich empfehlen, cpanminus anstelle der alten CPAN shell zu versuchen.

sudo apt-get install cpanminus 
+0

Leider ist weder liblocal-lib-perl noch cpanminus in Ubuntu 12.04 enthalten. –

+0

@CharlesDuffy - Ausgabe von Ubuntu 12.04.3 LTS: '$ apt-cache Suche liblocal-lib-perl liblocal-lib-perl - Modul um einen lokalen Pfad für Perl-Module zu verwenden' und '$ apt-cache Suche cpanminus cpanminus - Skript, um Module von CPAN zu bekommen, zu entpacken, zu bauen und zu installieren – chrsblck

+0

... nicht so sehr auf dem offiziellen 'ubuntu: 12.04' Docker-Image. –

2

Die lokalen Namespace für Ihre eigene persönliche Module und würden nicht in CPAN zu finden. Das ist etwas relativ Neues. An vielen Standorten benötigen Sie möglicherweise CPAN-Module, die nicht in der aktuellen Perl-Version enthalten sind, oder Sie benötigen eine neuere Version eines bestimmten Moduls. Sie haben jedoch keinen Schreibzugriff auf den Standardspeicherort, an dem CPAN-Module installiert sind.

Was dies tut, ist die Installation dieser Module unter dem $HOME/perl5/lib/local Verzeichnis, wo Sie auf sie zugreifen können. Sie müssten auch eine Umgebungsvariable PERL5LIB einrichten (normalerweise in Ihren Startskripts), so dass Perl dieses Verzeichnis beim Auffinden dieser Module überprüft.

Wenn Sie über sudo Berechtigungen verfügen, sollten Sie CPAN-Module installieren, anstatt dies zu versuchen. Im Folgenden wird die Foo::Bar Modul in das Standard-Modulverzeichnis für Sie (und tut jede Konfiguration je nach Bedarf) installieren:

$ sudo cpan install Foo::Bar 

Wenn CPAN konfiguriert werden muss, wird es das zuerst tun.

Es gibt vollständige Anweisungen für die local :: lib Installation für Module auf MetaCPAN. Sie sind ziemlich klar.

+0

Danke für die ausführlichen Erläuterungen. Ich habe bemerkt, dass Module lokal installiert sind, aber im PATH für Perl nicht zugänglich waren. Deshalb habe ich 'sudo' versucht. Danke auch für den Link. – JJD

0

mehr neue OS-Kraft (wie Redhat 7) Kraft Anwesenheit von local :: lib in der Perl-Version zu überprüfen, es ist eigentlich eine gute Sache, das den Benutzer ermöglicht CPAN zu verwenden und fügen Sie, experimentiert und neue Module genießen kann mit dem Perl verwendet werden, ohne auf eine standortweite Installation zu warten (wie ein root-Benutzer). Standardmäßig sucht local :: lib nach dem Verzeichnis $ HOME/perl5, in dem sich die lokalen oder heruntergeladenen Module des Benutzers befinden. Wenn Sie dieses Problem sehen, dann müssen Sie

  1. sudo su folgende tun - whatever_user_owns_perl
  2. whatever_perl_install_path/cpan lokale Installation :: lib
Verwandte Themen