L'installazione dei moduli Perl richiesti da vari software open source è un'attività di routine per gli amministratori di sistema. Installazione manuale dei moduli Perl risolvendo tutte le dipendenze è un processo noioso e fastidioso.
Installazione di moduli Perl tramite CPAN è una soluzione migliore, poiché risolve automaticamente tutte le dipendenze. In questo articolo, esaminiamo come installare i moduli Perl su Linux utilizzando sia il metodo manuale che CPAN.
Quando un modulo Perl non è installato, l'applicazione visualizzerà il seguente messaggio di errore. In questo esempio manca il modulo XML::Parser Perl.
Can't locate XML/parser.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.10.0 .)
Installa i moduli Perl manualmente
Scarica il modulo Perl
Vai al sito web di CPAN Search e cerca il modulo che desideri scaricare. In questo esempio, cerchiamo, scarichiamo e installiamo il modulo XML::Parser Perl. Ho scaricato XML-Parser-2.36.tar.gz in /home/download
# cd /home/download # gzip -d XML-Parser-2.36.tar.gz # tar xvf XML-Parser-2.36.tar # cd XML-Parser-2.36
Costruisci il modulo perl
# perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for XML::Parser::Expat Writing Makefile for XML::Parser # make # make test
Installa il modulo perl
# make install
Questo è molto semplice per un modulo senza dipendenze. Tipicamente, i moduli Perl dipenderanno da molti altri moduli. Inseguire tutte queste dipendenze una per una può essere un compito molto doloroso e fastidioso. Raccomando il metodo di installazione CPAN come mostrato di seguito. Utilizzare il metodo manuale solo se il server non è connesso a Internet.
Installa i moduli Perl usando CPAN automaticamente
Verifica se CPAN è già installato
Per installare i moduli Perl usando CPAN, assicurati che il comando cpan funzioni. Dovresti avere il modulo perl CPAN installato prima di poter installare qualsiasi altro modulo Perl usando CPAN. In questo esempio, il modulo CPAN non è installato.
# cpan -bash: cpan: command not found # perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.10.0 .). BEGIN failed--compilation aborted.
Installa il modulo CPAN usando yum
# yum install perl-CPAN
Output del comando yum install perl-CPAN:
Loaded plugins: refresh-packagekit updates-newkey | 2.3 kB 00:00 primary.sqlite.bz2 | 2.4 MB 00:00 Setting up Install Process Parsing package install arguments Resolving Dependencies Transaction Summary ============================================================================= Install 5 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 1.0 M Is this ok [y/N]: y Downloading Packages: (1/5): perl-ExtUtils-ParseXS-2.18-31.fc9.i386.rpm | 30 kB 00:00 (2/5): perl-Test-Harness-2.64-31.fc9.i386.rpm | 70 kB 00:00 (3/5): perl-CPAN-1.9205-31.fc9.i386.rpm | 217 kB 00:00 (4/5): perl-ExtUtils-MakeMaker-6.36-31.fc9.i386.rpm | 284 kB 00:00 (5/5): perl-devel-5.10.0-31.fc9.i386.rpm | 408 kB 00:00 Installing : perl-ExtUtils-ParseXS [1/5] Installing : perl-devel [2/5] Installing : perl-Test-Harness [3/5] Installing : perl-ExtUtils-MakeMaker [4/5] Installing : perl-CPAN [5/5] Installed: perl-CPAN.i386 0:1.9205-31.fc9 Dependency Installed: perl-ExtUtils-MakeMaker.i386 0:6.36-31.fc9 perl-ExtUtils-ParseXS.i386 1:2.18-31.fc9 perl-Test-Harness.i386 0:2.64-31.fc9 perl-devel.i386 4:5.10.0-31.fc9 Complete!
Configura cpan la prima volta
La prima volta che esegui cpan, dovresti impostare alcuni parametri di configurazione come mostrato di seguito. Di seguito ho mostrato solo i parametri di configurazione importanti. Accetta tutti i valori predefiniti premendo invio.
Nota: Assicurati di eseguire "o conf commit ” nel prompt cpan dopo la configurazione per salvare le impostazioni.
# cpan Sorry, we have to rerun the configuration dialog for CPAN.pm due to some missing parameters... CPAN build and cache directory? [/root/.cpan] Download target directory? [/root/.cpan/sources] Directory where the build process takes place? [/root/.cpan/build] Always commit changes to config variables to disk? [no] Cache size for build directory (in MB)? [100] Let the index expire after how many days? [1] Perform cache scanning (atstart or never)? [atstart] Cache metadata (yes/no)? [yes] Policy on building prerequisites (follow, ask or ignore)? [ask] Parameters for the 'perl Makefile.PL' command? [] Parameters for the 'perl Build.PL' command? [] Your ftp_proxy? [] Your http_proxy? [] Your no_proxy? [] Is it OK to try to connect to the Internet? [yes] First, pick a nearby continent and country by typing in the number(s) (1) Africa (2) Asia (3) Central America (4) Europe (5) North America (6) Oceania (7) South America Select your continent (or several nearby continents) [] 5 (1) Bahamas (2) Canada (3) Mexico (4) United States Select your country (or several nearby countries) [] 4 (2) ftp://carroll.cac.psu.edu/pub/CPAN/ (3) ftp://cpan-du.viaverio.com/pub/CPAN/ (4) ftp://cpan-sj.viaverio.com/pub/CPAN/ (5) ftp://cpan.calvin.edu/pub/CPAN (6) ftp://cpan.cs.utah.edu/pub/CPAN/ e.g. '1 4 5' or '7 1-4 8' [] 2-16 cpan[1]> o conf commit commit: wrote '/usr/lib/perl5/5.10.0/CPAN/Config.pm' cpan[2]> quit No history written (no histfile specified). Lockfile removed.
Installa i moduli Perl usando CPAN
Puoi usare uno dei seguenti metodi per installare un modulo Perl usando cpan.
# /usr/bin/perl -MCPAN -e 'install Email::Reply' (or) # cpan cpan shell -- CPAN exploration and modules installation (v1.9205) ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?) cpan[1]> install "Email::Reply";
Output del comando perl install precedente:
CPAN: Storable loaded ok (v2.18) Going to read /root/.cpan/Metadata Database was generated on Mon, 15 Sep 2008 11:02:52 GMT Running install for module 'Email::Reply' Running make for R/RJ/RJBS/Email-Reply-1.202.tar.gz CPAN: LWP::UserAgent loaded ok (v2.036) CPAN: Time::HiRes loaded ok (v1.9711) Fetching with LWP: ftp://carroll.cac.psu.edu/pub/CPAN/authors/id/R/RJ/RJBS/Email-Reply-1.202.tar.gz CPAN: checksum security checks disabled because Digest::SHA not installed. Please consider installing the Digest::SHA module. CPAN: Compress::Zlib loaded ok (v2.008) Email-Reply-1.202/ Email-Reply-1.202/Changes CPAN: File::Temp loaded ok (v0.18) Warning: prerequisite Email::Abstract 2.01 not found. Warning: prerequisite Email::MIME::Creator 1.41 not found. Writing Makefile for Email::Reply ---- Unsatisfied dependencies detected during ---- ---- RJBS/Email-Reply-1.202.tar.gz ---- Email::Abstract [requires] Email::MIME::Creator [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] [Note: CPAN automatically detects that Email::Abstract and Email::MIME::Creator is required] Fetching with LWP: ftp://server/pub/CPAN/authors/id/R/RJ/RJBS/Email-Abstract-2.134.tar.gz make -- OK make install -- OK Fetching with LWP: ftp://server/pub/CPAN/authors/id/R/RJ/RJBS/Email-MIME-Creator-1.454.tar.gz make -- OK make install -- OK Warning: prerequisite Email::Simple::Creator 1.4 not found. Writing Makefile for Email::MIME::Creator Email::Simple::Creator [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] [Note: CPAN automatically detects that Simple::Creator is required] Fetching with LWP: ftp://carroll.cac.psu.edu/pub/CPAN/authors/id/R/RJ/RJBS/Simple-Creator.tar.gz make -- OK make install -- OK Fetching with LWP: CPAN.pm: Going to build R/RJ/RJBS/Email-Reply-1.202.tar.gz make -- OK make install -- OK
Nell'esempio sopra, Email::Reply dipende da molti altri moduli. CPAN risolve automaticamente le dipendenze e installa Email::Reply e tutti i moduli Perl dipendenti.
Se ti è piaciuto questo articolo, aggiungilo ai segnalibri su del.icio.us e Inciampalo .