2013-05-22 5 views
7

Sto provando a usare Perl la prima volta sul mio sistema che è Ubuntu 12.04,. Ho installato Perl v.5.14.2.
Alzai gli occhi how to install Perl modules, così ho iniziato come segue:Impossibile localizzare local/lib.pm in @INC su /usr/share/perl/5.14/CPAN/FirstTime.pm

$ perl -MCPAN -e shell 

La procedura guidata ha iniziato la configurazione dell'ambiente come si può vedere qui: http://pastebin.com/5hn8vkb5
Anche se, si è fermato a metà con il seguente messaggio di errore:

... 

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. 

Cosa posso fare per impostare correttamente l'ambiente Perl sulla mia installazione di Ubuntu?


Dopo l'interruzione della procedura guidata e riavviare di nuovo, non c'è alcun messaggio di errore più. Come posso avviare nuovamente la procedura guidata in modo da poter scegliere qui:

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

+1

'CPAN città :: lib' forse? Oppure controlla il repository apt-get. Non hai installato quel modulo, ma hai scelto di usarlo come mezzo per installare i moduli. Non vuoi 'sudo'? – TLP

+0

@TLP Quale sarebbe il nome della libreria che devo installare tramite 'sudo apt-get install ...'? – JJD

+1

Mi batte. Dovrai cercare. Ma ovviamente puoi fare "sudo cpan local :: lib'. O? – TLP

risposta

14

Ti manca local::lib, che è quello che hai detto alla shell CPAN.

è possibile installarlo in questo modo:

sudo apt-get install liblocal-lib-perl 

potrebbe essere in grado di ricominciare da rm -rf -ing vostra directory ~/.cpan. A PROPRIO RISCHIO

Tuttavia, si consiglia di provare cpanminus anziché il vecchio CPAN shell.

sudo apt-get install cpanminus 
+0

Purtroppo, né 'liblocal-lib-perl' o' cpanminus' è pacchetto in Ubuntu 12.04. –

+0

@CharlesDuffy - output da Ubuntu 12.04.3 LTS: '$ apt-cache search liblocal-lib-perl liblocal-lib-perl - modulo per utilizzare un percorso locale per moduli Perl' e' $ apt-cache search cpanminus cpanminus - script per ottenere, decomprimere, compilare e installare moduli da CPAN' – chrsblck

+0

... non tanto, al contrario, sull'immagine ufficiale del docker di "ubuntu: 12.04'. –

2

Lo spazio dei nomi locale era per i propri moduli personali e non sarebbe stato trovato in CPAN. Questo è qualcosa di relativamente nuovo. In molti siti, potresti aver bisogno di moduli CPAN non nella versione corrente di Perl, o hai bisogno di una versione più recente di un particolare modulo. Tuttavia, non si dispone dell'accesso in scrittura alla posizione standard in cui sono installati i moduli CPAN.

Ciò che sta facendo è installare questi moduli nella directory $HOME/perl5/lib/local in cui sarà possibile accedervi. Dovresti anche configurare una variabile di ambiente PERL5LIB (di solito negli script di avvio), quindi Perl controllerà questa directory quando localizzerà questi moduli.

Se si dispone dei privilegi sudo, utilizzarlo per installare i moduli CPAN anziché provare questo. Quanto segue installerà il modulo Foo::Bar nella directory modulo standard per voi (e fare qualsiasi configurazione, se necessario):

$ sudo cpan install Foo::Bar 

Se CPAN deve essere configurato, lo farà prima.

Ci sono istruzioni complete su come eseguire l'installazione di local :: lib per i moduli su MetaCPAN. Sono abbastanza chiari.

+0

Grazie per le spiegazioni dettagliate. Ho notato che i moduli sono installati localmente ma non sono stati accessibili nel PERC per PATH. Pertanto, ho provato '--sudo'. Grazie anche per il link. – JJD

0

Diversi vigore del nuovo sistema operativo (come RedHat 7) la forza per controllare la presenza di città :: lib nella versione perl, in realtà è una buona cosa che questo consente agli utenti di utilizzare CPAN e aggiungere, sperimentare e godere di nuovi moduli da utilizzare con il perl senza attendere l'installazione in tutto il sito (come un utente root). Per impostazione predefinita, local :: lib cerca la directory $ HOME/perl5 in cui si trovano i moduli locali o scaricati dell'utente. Se vedi questo problema, allora si deve fare dopo

  1. sudo su - whatever_user_owns_perl
  2. whatever_perl_install_path/CPAN installare locale :: lib