perlmodinstall - Installing CPAN Modules [Installazione di moduli CPAN, NdT]
Potete pensare a un modulo come l'unità fondamentale di codice
Perl riusabile; si veda perlmod per i dettagli.
Ogni volta che qualcuno crea un pezzo di codice Perl e pensa che
esso possa essere utile per il mondo, si registra come sviluppatore
Perl su http://www.perl.com/CPAN/modules/04pause.html in modo da
poter importare il proprio codice su CPAN. CPAN significa
Comprehensive Perl Archive Network [Rete Completa di Archivi Perl, NdT]
e vi si può accedere da http://www.perl.com/CPAN/.
Questa documentazione è per coloro che desiderano scaricare moduli
da CPAN e intallarli nel proprio computer.
Per prima cosa, siete sicuri che il modulo non sia già presente
sul vostro sistema? Provate perl -MPippo -e 1 . (Sostituite ``Pippo'' con
il nome del modulo; per esempio, perl -MCGI::Carp -e 1 .
Se non vedete un messaggio d'errore, il modulo c'è. (Se vedete un
messaggio d'errore, è ancora possibile che il modulo ci sia,
ma che questo non stia nel vostro path, che potete visualizzare con
perl -e "print qq(@INC)" ). Per il resto di questo documento, assumeremo
che non ci sia davvero l'installazione di un modulo, ma che abbiate trovato
questo modulo su CPAN.
Avete un file il cui nome termina per .tar.gz (o, talvolta, .zip).
Sapete che c'è un succulento modulo al suo interno.
Ora, sono quattro i passi che dovete compiere:
- DECOMPRIMERE il file
-
- ESTRARRE il file in una directory
-
- FARE UNA BUILD del modulo (talvolta non necessario)
-
- INSTALLARE il modulo.
-
In questo documento vengono spiegati i passi da compiere per ogni
sistema operativo. Questo documento non sostituisce i file
README e INSTALL che possono essere trovati insieme ai moduli!
Si noti inoltre che queste istruzioni sono dedicate all'installazione
di moduli nell'archivio dei moduli Perl nel vostro sistema. Ciò
nonostante potete installare i moduli in qualsiasi directory
desideriate. Per esempio, dove viene indicato perl Makefile.PL ,
potete sostituire perl Makefile.PL PREFIX=/lamia/perl_directory
per installare i moduli in /lamia/perl_directory . Di conseguenza
sarà possibile usare i moduli per i vostri programmi Perl con
use lib "/lamia/perl_directory/lib/site_perl"; o talvolta con
use "/lamia/perl_directory"; . Se avete un sistema che richiede
l'accesso come root o superutente per installare moduli nelle
directory che vedete quande eseguite perl -e "print qq(@INC)" ,
dovrete installarli in una directory locale (come la vostra home
directory) e utilizzare questo approccio.
-
Se siete su un sistema tipo Unix,
Potete usare il modulo CPAN di Andreas Koenig
( http://www.perl.com/CPAN/modules/by-module/CPAN )
per automatizzare i seguenti passi, dalla DECOMPRESSIONE
all'INSTALLAZIONE.
A. DECOMPRESSIONE
Decomprimete il file con gzip -d vostromodulo.tar.gz
È possibile ottenere gzip da ftp://prep.ai.mit.edu/pub/gnu/
Oppure potete combinare questo passo con il successivo per salvare
spazio su disco:
gzip -dc vostromodulo.tar.gz | tar -xof -
B. ESTRAZIONE
Estraete i file risultanti con tar -xof vostromodulo.tar
C. BUILD [indica la fase di preparazione del modulo (copia dei pezzi
Perl, compilazione dei pezzi C/XS, creazione delle manpage, ecc) in
funzione dei test e dell'installazione, NdT]
Nella directory appena creata digitate:
perl Makefile.PL
make test
oppure
perl Makefile.PL PREFIX=/lamia/perl_directory
per installarlo localmente. (Ricordate che se lo fate, dovrete mettere
use lib "/lamia/perl_directory"; all'incirca in cima al programma che
dovrà usare questo modulo).
D. INSTALLAZIONE
Sempre nella stessa directory, digitate:
make install
Assicuratevi di disporre dei permessi appropriati per installare il
modulo nella directory delle librerie del vostro Perl 5.
Spesso è necessario agire come root.
Queste sono le cose da fare su sistemi Unix con collegamento dinamico.
La maggior parte dei sistemi Unix hanno il collegamento dinamico --
se il vostro non l'ha, o se per altre ragioni avete un Perl collegato
staticamente e il modulo richiede di essere compilato, sarà
necessario compilare un nuovo binario Perl che include il modulo.
Ancora, probabilmente sarà necessario agire come root.
-
Se state usando ActivePerl (Win95/98/2K/NT/XP, Linux, Solaris)
Inizialmente, digitate ppm da una finestra testuale per verificare se
il modulo è presente nell'archivio di PPM della ActiveState.
In caso affermativo, potete installarlo con ppm e non dovrete avere a
che fare con gli altri passi elencati qui sotto.
Potreste anche essere in grado di utilizzare le istruzioni per CPAN
nella sezione ``Unix o Linux'' sopra, fate un tentativo. Altrimenti
dovrete seguire i passi seguenti.
A. DECOMPRESSIONE
Potete usare la versione shareware di Winzip ( http://www.winzip.com )
per decomprimere ed estrarre i moduli.
B. ESTRAZIONE
Se avete usato WinZip, questo è già stato fatto.
C. BUILD
Avrete bisogno del programma di utilità nmake disponibile su
http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe
o dmake, disponibile su CPAN.
http://search.cpan.org/dist/dmake/
Il modulo richiede di essere compilato (ovvero contiene file che
terminano con .xs, .c, .h, .y, .cc, .cxx, o .C)? In caso affermativo,
siete veramente nei pasticci, perché dovete compilare il modulo voi
stessi -- non un compito semplice su Windows. Avrete bisogno di un
compilatore come Visual C++. In alternativa, potete scaricare un
pacchetto PPM pre-compilato da ActiveState.
http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/
Andate nella directory appena creata e digitate:
perl Makefile.PL
nmake test
D. INSTALLAZIONE
Sempre nella stessa directory, digitate:
nmake install
-
Se utilizzate un Macintosh con il MacOS classico e MacPerl,
A. DECOMPRESSIONE
Inizialmente, assicuratevi di avere l'ultima distribuzione
cpan-mac ( http://www.cpan.org/authors/id/CNANDOR/ ), che
dispone di strumenti per compiere tutti i passi.
Leggete attentamente i consigli per l'uso di cpan-mac e installatelo.
Se per qualche ragione avete scelto di non utilizzare cpan-mac,
elenchiamo qui le alternative.
Dopo aver installato cpan-mac posizionate l'archivio del modulo nel
droplet di untarzipme il quale effettuerà la decompressione
e l'estrazione.
Oppure, potete sia utilizzare il programma shareware StuffIt Expander
( http://www.aladdinsys.com/expander/ )
in combinazione con DropStuff with Expander Enhancer
( http://www.aladdinsys.com/dropstuff/ )
che il programma freeware MacGzip (
http://persephone.cps.unizar.es/general/gente/spd/gzip/gzip.html ).
B. ESTRAZIONE
Se utilizzate untarzipme o StuffIt, l'estrazione dell'archivio
dovrebbe essere già stata effettuata. Oppure potete usare
il programma freeware suntar o Tar (
http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/cmp/ ).
C. BUILD
Controllate il contenuto della distribuzione. Leggete la
documentazione del modulo per vedere se contiene indicazioni
su possibili problemi con il suo utilizzo in MacPerl.
Controllate se ci sono file con estensione .xs o .c,
il che suggerisce che la distribuzione deve essere compilata
e non potete installarla così com'è.
(Si veda PORTABILITÀ.)
Se il modulo non funziona con MacPerl ma dovrebbe, oppure necessita
di essere compilato, controllate se il porting del modulo
[per ``porting'' si intende la traduzione di un pezzo di
software per trasferirlo da una piattaforma ad un'altra, NdT]
è già presente nel sito MacPerl Module Porters (
http://pudge.net/mmp/ ).
Per informazioni aggiuntive sull'utilizzo di XS con MacPerl,
si veda il corso introduttivo su XS di Arved Sandstrom (
http://macperl.com/depts/Tutorials/ ), e in seguito si prenda
in considerazione di rendere pubblico il codice oggetto su
CPAN e registrarlo sul sito di MMP.
D. INSTALLAZIONE
Se state usando cpan-mac, eliminate semplicemente la cartella sul droplet
installme [installami, NdT], e usate il modulo.
Oppure, se non state usando cpan-mac, fate un po' di lavoro manuale.
Assicuratevi che nei moduli i caratteri di ritorno a capo siano in formato Mac,
non Unix. Se non lo sono è possibile che la decompressione non sia stata
effettuata correttamente. Controllate i settaggi dei vostri programmi di
decompressione per essere sicuri che traducano i file correttamente.
Come ultima risorsa, potete utilizzare il comando Perl:
perl -i.bak -pe 's/(?:\015)?\012/\015/g' <nomi_dei_file>
nei file sorgente.
Di seguito spostate i file (probably just the .pm files, though there
may be some additional ones, too; check the module documentation) nella
loro destinazione finale: questa molto
probabilmente sarà $ENV{MACPERL}site_lib: (per esempio
HD:MacPerl folder:site_lib: ). Potete aggiungere nuovi percorsi
a quelli contenuti di default nella variabile @INC nel menu
delle preferenze nell'applicazione MacPerl ($ENV{MACPERL}site_lib:
è aggiunto automagicamente). Create tutte le strutture di
directory necessarie (per esempio per Qualche::Modulo , create
$ENV{MACPERL}site_lib:Qualche: e mettete Modulo.pm in
quella directory).
Poi eseguite il seguente script (o qualcosa del genere):
#!perl -w
use AutoSplit;
my $dir = "${MACPERL}site_perl";
autosplit("$dir:Qualche:Modulo.pm", "$dir:auto", 0, 1, 1);
-
Se utilizzate la distribuzione DJGPP per DOS,
A. DECOMPRESSIONE
djtarx ( ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/ )
effettua sia la decompressione che l'estrazione.
B. ESTRAZIONE
Si veda sopra.
C. BUILD
Nella directory appena create digitate:
perl Makefile.PL
make test
Avrete bisogno dei moduli menzionati in Readme.dos nella
distribuzione del Perl.
D. INSTALLAZIONE
Sempre nella stessa directory, digitate:
make install
Avrete bisogno dei moduli menzionati in F<Readme.dos> nella
distribuzione del Perl.
-
Se lavorate con OS/2,
Procuratevi il pacchetto di sviluppo di EMX e gzip/tar, o da Hobbes (
http://hobbes.nmsu.edu ) o da Leo ( http://www.leo.org ), e poi
seguite le istruzioni per Unix.
-
Se lavorate con VMS,
Quando scaricate il modulo da CPAN, salvate il vostro file
con estensione .tgz anziché con l'estensione .tar.gz .
Tutti gli altri punti ``.'' nei nomi dei file devono essere
rimpiazzati dal trattino basso. Ad esempio,
Vostro-Modulo-1.33.tar.gz deve essere salvato come
Vostro-Modulo-1_33.tgz .
A. DECOMPRESSIONE
Digitate
gzip -d Vostro-Modulo.tgz
o, per moduli compressi con zip, digitate
unzip Vostro-Modulo.zip
Eseguibili per gzip, zip, e VMStar:
http://www.openvms.digital.com/freeware/
http://www.crinoid.com/utils/
e il loro codice sorgente:
http://www.fsf.org/order/ftp.html
Si osservi che la vesione GNU di gzip/gunzip non coincide con il
pacchetto zip/unzip di Info-ZIP. Il primo è semplicemente uno
strumento di compressione; il secondo permette la
creazione di archivi di file multipli.
B. ESTRAZIONE
Se state usando VMStar:
VMStar xf Vostro-Modulo.tar
Oppure, se avete familiarità con la sintassi del comando VMS:
tar/extract/verbose Vostro_Modulo.tar
C. BUILD
Assicuratevi di disporre di MMS (Digital) o del programma
freeware MMK ( disponibile su MadGoat all'indirizzo
http://www.madgoat.com ).
Quindi digitate il seguente comando per creare il file
DESCRIP.MMS per il modulo:
perl Makefile.PL
Adesso siete pronti per eseguire il build:
mms test
Sostituite mmk con mms nel caso in cui stiate usando MMK.
D. INSTALLAZIONE
digitate
mms install
Sostituite mmk con mms nel caso in cui stiate usando MMK.
-
Se lavorate con MVS,
Introducete il file .tar.gz in un HFS come binario; non traducete
da ASCII a EBCDIC.
A. DECOMPRESSIONE
Decomprimete il file con gzip -d vostromodulo.tar.gz
Potete trovare gzip su
http://www.s390.ibm.com/products/oe/bpxqp1.html.
B. ESTRAZIONE
Estraete il risultato con
pax -o to=IBM-1047,from=ISO8859-1 -r < vostromodulo.tar
I passi di BUILD e INSTALLAZIONE sono identici a quelli
per Unix. Alcuni moduli generano Makefile che funzionano meglio
con la versione GNU di make, che potete trovare su
http://www.mks.com/s390/gnu/
Si osservi che non tutti i moduli funzioneranno su tutte le
piattaforme. Si veda perlport per maggiori informazioni
sulla questione della portabilità. Si legga la documentazione
per vedere se il modulo funziona con il vostro sistema.
In pratica ci sono tre categorie di moduli che non funzionano
``così come sono'' in tutte le piattaforme (con qualche
possibilità di sovrapposizione):
-
Dovrebbero, ma non funzionano. Questi richiedono di
essere corretti; si prenda in considerazione di contattare
l'autore e possibilmente di scrivere una patch.
-
Quelli che richiedono di essere compilati, ma la piattaforma
sulla quale lavorate non ha compilatori direttamente disponibili.
(Questi moduli di solito contengono file con estensione .xs o
.c). Potreste trovare codici oggetto già esistenti su CPAN
o da qualche altra parte, o potreste voler prendere i compilatori
ed effuttuare la compilazione voi stessi, per poi rendere
disponibile il file binario affinché possa venir utilizzato da
altri disperati.
-
Quelli dedicati a una piattaforma specifica.
(Come ad esempio i moduli Win32::). Se il modulo è
specificamente dedicato a una piattaforma anziché un'altra,
molto probabilmente è il vostro giorno sfortunato.
Controllate il sito dei CPAN Testers [collaudatori di CPAN, NdT] se un modulo
dovrebbe funzionare sulla vostra piattaforma ma non si comporta come
voi vi aspettate, o non siete sicuri se un modulo funzionerà o no
sulla vostra piattaforma. Se il modulo che volete non vi è elencato,
potete testarlo voi stessi e farlo sapere ai CPAN Testers, potete
unirvi ai CPAN Testers o potete richiedere che venga testato.
http://testers.cpan.org/
Se avete cambiamenti da suggerire per questa documentazione, fatemelo
sapere. Per favore non speditemi mail chiedendo aiuto per come
installare i vostri moduli. Esistono troppi moduli e troppi pochi
Orwant [l'autore di questo documento, NdT] per me per essere in
grado di rispondere o anche per prendere in considerazione tutte le
vostre domande. Invece, contattate l'autore del modulo o postate
un messaggio su comp.lang.perl.modules, o chiedete a qualcuno
che abbia familiarità con il Perl sul vostro sistema operativo.
Jon Orwant
orwant@medita.mit.edu
con l'inestimabile aiuto di Chris Nandor e il prezioso aiuto di Brandon
Allbery, Charles Bailey, Graham Barr, Dominic Dunlop, Jarkko
Hietaniemi, Ben Holzman, Tom Horsley, Nick Ing-Simmons, Tuomas
J. Lukka, Laszlo Molnar, Alan Olsen, Peter Prymmer, Gurusamy Sarathy,
Christoph Spalinger, Dan Sugalski, Larry Virden e Ilya Zakharevich.
Prima versione 22 luglio 1998; ultima revisione 22 novembre 2001.
Copyright (C) 1998, 2002, 2003 Jon Orwant. Tutti i diritti sono riservati.
È permessa la distribuzione e la copia identica di questo documento
a patto che siano incluse in ogni copia sia la nota di copyright che
questa nota di permesso.
È permessa la copia e la distribuzione di versioni modificate di questa
documentazione alle stesse condizioni della copia identica, a patto
che sia chiaramente specificato che si tratta di versioni modificate,
che i nomi degli autori ed il titolo siano invariati (sebbene
didascalie e nomi di autori addizionali possano essere aggiunti), e
che il lavoro risultante nel suo intero sia distribuito sotto le
stesse condizioni del presente.
È permessa la copia e la distribuzione di traduzioni di questo documento
in altre lingue, alle suddette condizioni per le versioni modificate del
documento.
Copyright (C) 1998, 2002, 2003 Jon Orwant. All Rights Reserved.
Permission is granted to make and distribute verbatim copies of this
documentation provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
documentation under the conditions for verbatim copying, provided also
that they are marked clearly as modified versions, that the authors'
names and title are unchanged (though subtitles and additional
authors' names may be added), and that the entire resulting derived
work is distributed under the terms of a permission notice identical
to this one.
Permission is granted to copy and distribute translations of this
documentation into another language, under the above conditions for
modified versions.
La versione su cui si basa questa traduzione è ottenibile con:
perl -MPOD2::IT -e print_pod perlmodinstall
Per maggiori informazioni sul progetto di traduzione in italiano si veda http://pod2it.sourceforge.net/ .
Traduzione a cura di Raffaello Galli <galliraf at googlemail punto com>.
Revisione a cura di dree.
Mon Jun 11 22:02:17 2012
|