Ottengo questo errore:
Can't locate Foo.pm in @INC
Esiste un modo più semplice per installarlo che scaricare, decomprimere, creare, ecc.?
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, PPM (Perl Package Manager) ha molte delle stesse funzionalità di CPAN.pm.
Esempio:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
vedi 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 preferirli sempre in quanto beneficerai degli aggiornamenti automatici (di sicurezza) e della facilità di rimozione . Questo può essere piuttosto complicato con lo strumento cpan stesso.
Per Gentoo esiste uno strumento di Nizza chiamato g-cpan che costruisce/installa il modulo da CPAN e crea un pacchetto Gentoo (- ebuild ) per te.
Prova 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 base bootstrap è,
curl -L http://cpanmin.us | Perl - --Sudo App::cpanminus
Per maggiori informazioni vai alla pagina App :: cpanminus e guarda la sezione sull'installazione.
Noto alcune persone che suggeriscono una corsa in Sud America. In passato era necessario installarlo nella directory di sistema, ma le versioni moderne di Shell CPAN consentono di configurarlo per utilizzare Sudo solo per l'installazione. Questo è molto più sicuro, poiché significa che i test non vengono eseguiti come root.
Se si dispone di una vecchia shell CPAN, è sufficiente installare il nuovo cpan ("installa CPAN") e quando si ricarica la shell, dovrebbe essere richiesto di configurare queste nuove direttive.
Al giorno d'oggi, quando mi trovo su un sistema con un vecchio CPAN, la prima cosa che faccio è aggiornare Shell e configurarlo per farlo in modo da poter fare la maggior parte del mio lavoro di cpan come un normale utente.
Inoltre, suggerirei vivamente che gli utenti Windows indagino su fragola Perl . 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 "semplicemente funzionare" molto più spesso.
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 installa 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.
Sudo Perl -MCPAN -e 'install Foo'
Vedi anche Sì, anche tu puoi usare CPAN . Mostra come è possibile utilizzare CPAN senza avere accesso root o Sudo.
Otto ha fatto 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
Molti consigli per CPAN.pm
, il che è fantastico, ma se stai usando Perl 5.10
allora hai anche accesso a CPANPLUS.pm
che è come CPAN.pm
ma meglio.
E, naturalmente, è disponibile su CPAN
per le persone che utilizzano ancora versioni precedenti di Perl. Perché non provare:
$ cpan CPANPLUS
Molte volte capita che il comando di installazione di cpan fallisca con il messaggio come "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
in un prompt, ad esempio, di solito basta:
Sudo apt-get install libfoo-bar-Perl
Purtroppo non tutti i moduli seguono questa convenzione di denominazione.
Anche dovrebbe funzionare:
cpan -i module_name
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 le dipendenze automaticamente. Basta fare
$ cpanm HTML::Parser
Il modo più semplice per me è questo:
Perl_MM_USE_DEFAULT=1 Perl -MCPAN -e 'install DateTime::TimeZone'
a) rilevazione/risoluzione/installazione automatiche della dipendenza ricorsiva
b) è un onliner Shell, ottimo per gli script di installazione
2 modi che conosco:
SANDO PPM:
Con Windows (ActivePerl) ho usato ppm
dalla riga di comando digitare ppm. Al prompt ppm ...
ppm> install foo
o
ppm> search foo
per ottenere un elenco di moduli foo disponibili. Digitare aiuto per tutti i comandi
SANDO CPAN:
puoi anche usare CPAN in questo modo (* nix systems):
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 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)
Su Fedora puoi usare
# yum install foo
purché Fedora abbia un pacchetto esistente per il modulo.
Se vuoi mettere il nuovo modulo in una posizione personalizzata che la tua cpan Shell non è configurata per l'uso, 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 yum search foo
per cercare il relativo modulo Perl, quindi utilizzare yum install xxx
per installare.
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([email protected]){
system("cpanm $x");
eval "use $x";
}
}
Questo funziona bene per me, forse c'è qualcosa qui che puoi usare.
Su Windows con la distribuzione ActiveState di Perl, utilizzare il comando ppm .
La semplice esecuzione di cpan Foo::Bar
su Shell servirebbe allo scopo.