Capitolo 8. I package

Sommario
8.1. Installazione della collezione dei package
8.2. Aggiornamento della collezione dei package
8.3. Installazione di un programma
8.4. Installazione di un pacchetto in formato binario
8.5. Comandi per la gestione dei pacchetti
8.6. Guida rapida alla creazione di package

Il sistema dei package di NetBSD è una raccolta di strumenti che consentono di compilare e installare in maniera semplice una grande quantità di software di pubblico dominio per sistemi Unix. In generale sono sufficienti uno o due comandi per installare qualsiasi pacchetto perfettamente configurato e funzionante.

Il primo contatto con i package genera un po' di confusione perché apparentemente vi sono vari comandi che fanno le stesse cose. In realtà la questione è molto semplice: vi sono due modi per installare un programma

I due metodi appena illustrati sono quelli "comodi", che sfruttano il lavoro di configurazione fatto da qualcun altro. Se il programma che ci interessa non è compreso nella collezione dei package, nessuno ci impedisce di compilarlo a mano e di installarlo sul sistema. In questo caso è buona norma fare un piccolo sforzo in più e creare noi stessi un package, in modo che altri possano beneficiare a loro volta del nostro lavoro.

8.1. Installazione della collezione dei package

Prima di poter installare un pacchetto è necessario installare la collezione dei package, come descritto in dettaglio sul sito di NetBSD. In sostanza si tratta di:

  1. Scaricare l'ultima versione dei sorgenti della collezione, che comprendono tutti i file di configurazione, da ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/. Il nome del file da scaricare è pkgsrc.tar.gz.

  2. Rimuovere la precedente collezione, se presente, con

    # cd /usr
    # rm -rf pkgsrc
        

  3. Installare la nuova collezione con

    # tar -xzvpf pkgsrc.tar.gz -C /usr    
    L'esecuzione del comando precedente dura parecchio tempo perché il numero dei file da estrarre è notevole. Al termine dell'operazione il framework per l'installazione dei package è al suo posto: rimane solo da decidere quali package installare sul sistema.

    Nota: immagino che a questo punto sia chiaro che con l'operazione precedente è stato installato sul sistema l'insieme dei file di configurazione necessari per l'installazione dei singoli programmi ma non i programmi stessi né i loro sorgenti. In sostanza adesso il sistema dispone della lista dei programmi installabili automaticamente e delle istruzioni per installarli.

Una volta installata la collezione dei package con un browser HTML come Lynx o Netscape si possono leggere i dettagli e le descrizioni di tutti i pacchetti disponibili. Per esempio:

$ cd /usr/pkgsrc
$ lynx README.html
      

8.2. Aggiornamento della collezione dei package

La collezione dei package viene aggiornata molto spesso; sul sito ftp si trova una nuova copia quasi ogni settimana. Per aggiornare la collezione sul proprio computer occorre seguire le istruzioni date per l'installazione.

A volte, oltre alla collezione dei package è necessario aggiornare anche i programmi di installazione (pkgtools). È facile capire se bisogna eseguire l'aggiornamento: quando si tenta di installare un pacchetto il sistema dei package avvisa che i pkgtools devono essere aggiornati. Per esempio:

# make
===> Validating dependencies for gqmpeg-0.6.3
Your package tools need to be updated to 2000/02/02 versions.
The installed package tools were last updated on 1999/01/01.
Please make and install the pkgsrc/pkgtools/pkg_install package.
*** Error code 1    

Il metodo di aggiornamento più semplice è:

# cd /usr/pkgsrc/pkgtools/pkg_install
# make install
    

Fatto ciò, si può riprendere l'installazione del pacchetto originale, quello che aveva dato luogo al messaggio d'errore.

8.3. Installazione di un programma

A titolo di esempio, proviamo a installare il programma addnerd , che serve a aggiungere utenti al sistema in maniera automatica (un po' come fa il comando adduser su altri sistemi). Per prima cosa ci si porta nella directory /usr/pkgsrc/sysutils/addnerd.

8.4. Installazione di un pacchetto in formato binario

Come ho spiegato nell'introduzione, il sistema dei package è concepito per installare programmi in forma sorgente ma è in grado anche di installare pacchetti precompilati, generati da qualcun altro utilizzando la collezione stessa. In questo caso l'installazione è più veloce (non è necessario compilare il programma da installare).

I programmi precompilati si distinguono solitamente da quelli sorgenti perchè hanno estensione .tgz anziché .tar.gz.

Non è strettamente necessario scaricare manualmente un pacchetto binario per poterlo installare. Pkg_add è in grado anche di scaricarlo autonomamente quando vengono utilizzati URL FTP (l'uso di HTTP è possibile ma sconsigliato). Per esempio, si può specificare il nome del pacchetto con:

ftp://ftp.netbsd.org/pub/NetBSD/packages/1.4.2/i386/All/tcsh-6.09.00.tgz    

Se non si conosce il numero di versione del pacchetto disponibile sul sito FTP, è anche possibile omettere questa informazione dalla riga comando e pkg_add utilizzerà automaticamente l'ultima versione disponibile sul server FTP. Per esempio:

# pkg_add ftp://ftp.netbsd.org/pub/NetBSD/packages/1.4.2/i386/All/tcsh    

È anche possibile impostare la variabile di ambiente PKG_PATH con una lista di percorsi e URL separati da ; e omettere il percorso nel comando pgg_add:

# PKG_PATH="/cdrom;/usr/pkgsrc/packages/All;ftp://ftp.netbsd.org/pub/NetBSD/packages/1.4.2/i386/All"
export PKG_PATH
# pkg_add tcsh
    

Il comando precedente installa il primo pacchetto binario di tcsh trovato nei percorsi specificati.

A titolo di esempio, vediamo come procede l'installazione del programma texinfo in forma precompilata. L'installazione del pacchetto binario è molto semplice:

  1. Copiare gtexinfo-3.12.tgz in una directory temporanea.

  2. Dare il comando

    # pkg_add -v gtexinfo-3.12.tgz    

  3. Controllare l'avvenuta installazione con il comando

    # pkg_info    

  4. Rimuovere il file gtexinfo-3.12.tgz dalla directory temporanea.

I pacchetti precompilati sono molto comodi da usare perché comportano un tempo e uno sforzo minimo per l'installazione; tuttavia i pacchetti in forma sorgente sono più flessibili ancora perché consentono di personalizzare eventuali opzioni di configurazione e di installazione. L'installazione è più lunga ma, tutto sommato, non si installano pacchetti in continuazione...

Quando si installa un pacchetto binario con il comando pkg_add, conviene per prima cosa esaminarlo con il comando pkg_info. Per esempio:

# pkg_info -f jpeg-6b.tgz    

In particolare conviene osservare il primo comando CWD per vedere dove viene installato il pacchetto. Se la directory base non è quella desiderata, bisognerà usare l'opzione -p di pkg_add. Per esempio, il pacchetto jpeg-6b.tgz si va a installare in /usr/pkg, mentre secondo me dovrebbe finire in /usr/X11R6. (In generale conviene estrarre in /usr/X11R6 tutti i pacchetti della gerarchia X). Pertanto è preferibile estrarlo con:

# pkg_add -p /usr/X11R6 -v jpeg-6b.tgz    

8.5. Comandi per la gestione dei pacchetti

I comandi principali per l'amministrazione del sistema dei package sono

8.6. Guida rapida alla creazione di package

L'autore di questa sezione (Guida rapida alla creazione di package) è Jason R. Fink

Questa sezione descrive un metodo semplice e veloce per la creazione di semplici package per la collezione di package di NetBSD. Per ulteriori approfondimenti si rimanda alla documentazione ufficiale contenuta nel documento Packages.txt.