NOME

perlmodinstall - Installing CPAN Modules [Installazione di moduli CPAN, NdT]

DESCRIZIONE

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.

PREAMBOLO

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 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/

PORTABILITÀ

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/

EHI

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.

AUTORE

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

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.

TRADUZIONE

Versione

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/ .

Traduttore

Traduzione a cura di Raffaello Galli <galliraf at googlemail punto com>.

Revisore

Revisione a cura di dree.