Ottengo questo errore:
Can't locate Foo.pm in @INC
Esiste un modo più semplice per installarlo che scaricare, decomprimere, creare, ecc.?
cpan
.
Ottengo questo errore:
Can't locate Foo.pm in @INC
Esiste un modo più semplice per installarlo che scaricare, decomprimere, creare, ecc.?
cpan
.
Risposte:
Su Unix :
di solito si avvia cpan nella shell:
# cpan
e digitare
install Chocolate::Belgian
o in forma abbreviata:
cpan Chocolate::Belgian
Su Windows :
Se si utilizza ActivePerl su Windows, il PPM (Perl Package Manager) ha molte delle stesse funzionalità di CPAN.pm.
Esempio:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
vedere Come installo i moduli Perl? nelle FAQ CPAN
Molte distribuzioni spediscono molti pacchetti perl come pacchetti.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Dovresti sempre preferirli poiché beneficerai degli aggiornamenti automatici (di sicurezza) e della facilità di rimozione . Questo può essere piuttosto complicato con lo strumento cpan stesso.
Per Gentoo c'è un simpatico strumento chiamato g-cpan che costruisce / installa il modulo da CPAN e crea un pacchetto Gentoo ( ebuild ) per te.
ppm
usa trattini -
perché specifichi la distribuzione che vuoi installare, che è molto più onesta. Ad esempio, se si utilizza cpan
per l'installazioneLWP
, LWP::Simple
o LWP::UserAgent
installerà la distribuzione libwww-perl
per te. La maggior parte delle distribuzioni contiene un singolo modulo con un nome equivalente, ma ci sono diverse eccezioni come questa
Prova l' app :: cpanminus :
# cpanm Chocolate::Belgian
È ottimo solo per installare le cose. Non fornisce nessuna delle funzionalità più complesse di CPAN o CPANPLUS, quindi è facile da usare, a patto che tu sappia quale modulo vuoi installare. Se non hai già cpanminus, digita:
# cpan App::cpanminus
per installarlo.
È anche possibile installarlo senza usare cpan. La procedura di bootstrap di base è,
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
Per maggiori informazioni vai alla pagina App :: cpanminus e guarda la sezione sull'installazione.
cpan
per installare App::cpanminus
è un po 'strano. Le normali istruzioni di installazione prevedono una procedura di bootstrap per scaricare una parte di esso da cpanmin.us e utilizzarla per installare il resto. Ciò evita la configurazione cpan
e la creazione di una .cpan
directory (di seguito) inutile .
cpanminus
dal terminale. Trovo cpanm
migliore che cpan
perché non mette i log degli errori sullo schermo, piuttosto li memorizza in file di log temporanei e fornisce il percorso in caso di errori.
Noto alcune persone che suggeriscono una corsa in cpan sotto sudo. In passato era necessario installarlo nella directory di sistema, ma le versioni moderne della shell CPAN consentono di configurarlo per usare solo sudo per l'installazione. Questo è molto più sicuro, poiché significa che i test non vengono eseguiti come root.
Se hai una vecchia shell CPAN, installa semplicemente il nuovo cpan ("installa CPAN") e quando ricarichi la shell, dovrebbe chiederti di configurare queste nuove direttive.
Al giorno d'oggi, quando sono su un sistema con un vecchio CPAN, la prima cosa che faccio è aggiornare la shell e configurarla per farlo in modo da poter fare la maggior parte del mio lavoro di cpan come un normale utente.
Inoltre, suggerirei vivamente agli utenti di Windows di esaminare il Perl alla fragola . Questa è una versione di Perl fornita con una shell CPAN preconfigurata e un compilatore. Include anche alcuni moduli Perl difficili da compilare con le loro dipendenze dalla libreria C esterna, in particolare XML :: Parser. Ciò significa che puoi fare la stessa cosa di ogni altro utente Perl quando si tratta di installare moduli, e le cose tendono a "funzionare" molto più spesso.
install CPAN
da dove? $sudo apt-get install cpan
?
App::cpanminus
, è una tale gioia usarlo. Philip Potter lo suggerisce nella sua risposta qui e potresti provare questo Chas. Owens risponde .
Se sei su Ubuntu e vuoi installare il modulo perl preconfezionato (ad esempio geo :: ipfree) prova questo:
$ apt-cache search perl geo :: ipfree libgeo-ipfree-perl - Un paese di ricerca dell'indirizzo IP modulo Perl $ sudo apt-get install libgeo-ipfree-perl
Un paio di persone hanno menzionato l'utilità cpan, ma è molto più che avviare una shell. Dagli semplicemente i moduli che vuoi installare e lascia che funzioni.
$prompt> cpan Foo::Bar
Se non gli dai argomenti, avvia la shell CPAN.pm. Funziona su Unix, Mac e dovrebbe andare bene su Windows (specialmente Strawberry Perl).
Ci sono molte altre cose che puoi fare anche con lo strumento cpan. Ecco un riepilogo delle funzionalità correnti (che potrebbero essere più recenti di quelle fornite con CPAN.pm e perl):
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Vedi anche Sì, anche tu puoi usare CPAN . Mostra come è possibile utilizzare CPAN senza avere accesso root o sudo.
Otto ha dato un buon suggerimento . Questo funziona anche per Debian, così come per qualsiasi altro derivato Debian. Il pezzo mancante è cosa fare quando la ricerca di apt-cache non trova qualcosa.
$ sudo apt-get install dh-make-perl build-essential apt-file
$ sudo apt-file update
Quindi ogni volta che hai un modulo casuale che desideri installare:
$ cd ~/some/path
$ dh-make-perl --build --cpan Some::Random::Module
$ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.deb
Questo ti darà un pacchetto deb che puoi installare per ottenere Some :: Random :: Module. Uno dei grandi vantaggi qui sono le pagine man e gli script di esempio in aggiunta al modulo stesso saranno collocati nella posizione scelta dalla tua distribuzione. Se la distro esce mai con un pacchetto ufficiale per una versione più recente di Some :: Random :: Module, verrà automaticamente installata quando apt-get upgrade.
Risposta già accettata e risposta accettata, ma comunque:
IMHO il modo più semplice per installare i moduli CPAN (su sistemi come unix e non avere idea delle meraviglie) è:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
Quanto sopra sta installando il "programma di installazione dei moduli CPAN a configurazione zero" chiamato cpanm
. (L'installazione può richiedere alcuni minuti - non interrompere il processo)
e dopo - semplicemente:
cpanm Foo
cpanm Module::One
cpanm Another::Module
Un sacco di consigli per CPAN.pm
, il che è fantastico, ma se lo stai usando Perl 5.10
hai anche accesso a ciò CPANPLUS.pm
che è come CPAN.pm
ma migliore.
E, naturalmente, è disponibile CPAN
per le persone che utilizzano ancora versioni precedenti di Perl. Perché non provare:
$ cpan CPANPLUS
Molte volte capita che il comando di installazione cpan fallisca con il messaggio "make test aveva restituito uno stato errato, non si installa senza forzare"
In tal caso, di seguito è riportato il modo di installare il modulo:
perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"
Su Ubuntu la maggior parte dei moduli perl sono già impacchettati, quindi l'installazione è molto più veloce della maggior parte degli altri sistemi che devono essere compilati.
Per installare Foo::Bar
ad un prompt dei comandi, ad esempio, di solito basta:
sudo apt-get install libfoo-bar-perl
Purtroppo non tutti i moduli seguono questa convenzione di denominazione.
Usa il comando cpan come cpan Modulename
$ cpan HTML::Parser
Per installare le dipendenze, seguire automaticamente le istruzioni seguenti
$ perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
exit
Preferisco App :: cpanminus , installa automaticamente le dipendenze. Basta fare
$ cpanm HTML::Parser
2 modi che conosco:
USANDO PPM:
Con Windows (ActivePerl) ho usato ppm
dalla riga di comando digitare ppm. Alla richiesta ppm ...
ppm> install foo
o
ppm> search foo
per ottenere un elenco di moduli foo disponibili. Digitare help per tutti i comandi
UTILIZZANDO CPAN:
puoi anche usare CPAN in questo modo ( * sistemi nix ):
perl -MCPAN -e 'shell'
ti dà un prompt
cpan>
al prompt ...
cpan> install foo (again to install the foo module)
digitare h per ottenere un elenco di comandi per cpan
Su Fedora puoi usare
# yum install foo
purché Fedora abbia un pacchetto esistente per il modulo.
Su Fedora Linux
o Enterprise Linux
, yum
tiene traccia anche delle dipendenze della libreria perl. Quindi, se il modulo perl è disponibile e alcuni pacchetti rpm esportano quella dipendenza, installerà il pacchetto giusto per te.
yum install 'perl(Chocolate::Belgian)'
(molto probabilmente il pacchetto perl-Chocolate-Belgian, o anche il pacchetto ChocolateFactory)
Se vuoi mettere il nuovo modulo in una posizione personalizzata che la tua shell cpan non è configurata per usare, allora forse sarà utile quanto segue.
#wget <URL to the module.tgz>
##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
A volte è possibile utilizzare il yum search foo
per cercare il relativo modulo perl, quindi utilizzare yum install xxx
per installare.
Soluzione sicura
Molte risposte menzionano l'uso cpan
dell'utilità (che utilizza CPAN.pm
) senza una parola sulla sicurezza. Per impostazione predefinita, la versione CPAN
2.27 e precedenti configura urllist
l'uso di un URL http (vale a dire, http://www.cpan.org/ ), che consente gli attacchi MITM, quindi non è sicuro. Questo è ciò che viene utilizzato per scaricare i CHECKSUMS
file, quindi è necessario modificarlo in un URL sicuro (ad es. Https://www.cpan.org/ ).
Quindi, dopo aver eseguito cpan e aver accettato la configurazione predefinita, è necessario modificare il MyConfig.pm
file generato (viene visualizzato il percorso completo) nel modo seguente. Sostituire
'urllist' => [q[http://www.cpan.org/]],
di
'urllist' => [q[https://www.cpan.org/]],
Nota: https non è sufficiente; hai anche bisogno di un sito web di cui ti puoi fidare. Quindi, fai attenzione se vuoi scegliere un mirror arbitrario.
Quindi puoi usarlo cpan
nel solito modo.
Il mio bug segnala su rt.cpan.org sull'URL non sicuro.
https://www.cpan.org/
).
Semplicemente l'esecuzione cpan Foo::Bar
su shell servirebbe allo scopo.
Sembra che tu abbia già ricevuto la tua risposta, ma ho pensato di entrare. Questo è quello che faccio in alcuni script su Ubuntu (o server debian)
#!/usr/bin/perl
use warnings;
use strict;
#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'} = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';
#Fill this with the perl modules required for your project
my @perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::ProcessTable);
chomp(my $curl = `which curl`);
if(!$curl){ system('apt-get install curl -y > /dev/null'); }
chomp(my $cpanm = system('/bin/bash', '-c', 'which cpanm &>/dev/null'));
#installs cpanm if missing
if($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus'); }
#loops through required modules and installs them if missing
foreach my $x (@perl){
eval "use $x";
if($@){
system("cpanm $x");
eval "use $x";
}
}
Questo funziona bene per me, forse c'è qualcosa qui che puoi usare.