PREV
Capitolo 15 - L'Editor vi
NEXT
Capitolo 17 - Che cos'e' Zipslack/Bigslack

Torna all'indice

Capitolo 16. Gestione dei Pacchetti Slackware

Un pacchetto è una raccolta di programmi correlati che sono pronti ad essere installati. Quando scarichi un sorgente, devi configurarlo, compilarlo e installarlo a mano. Con un pacchetto, tutto ciò è stato già fatto per te. Tutto ciò che devi fare è semplicemente installare il pacchetto. Un'altra funzione utile nell'usare i pacchetti è che è molto facile rimuoverli e aggiornarli, se lo desideri. Slackware provvede una serie di programmi utili alla gestione dei pacchetti.

top
Torna all'indice

Introduzione al Formato dei Pacchetti

Prima di imparare gli strumenti, dovresti imparare bene come è fatto un pacchetto Slackware. Un pacchetto è semplicemente un archivio tar, compresso con gzip. Un pacchetto è costituito in modo tale da essere estratto nella directory root ( "/" ) del filesystem.

Questo è un programma fittizzio e il suo pacchetto esempio:

./
usr/
usr/bin/
usr/bin/makehejaz
usr/doc/
usr/doc/makehejaz-1.0/
usr/doc/makehejaz-1.0/COPYING
usr/doc/makehejaz-1.0/README
usr/man/
usr/man/man1
usr/man/man1/makehejaz.1.gz
install/
install/doinst.sh


Il sistema dei pacchetti estrarrà questo file nella root directory per installarlo. Verrà creata una vocce nel database che contiene i files di questo pacchetto in modo tale da poter essere rimosso o aggiornato in seguito.

Da notare la sottodirectory install/. Questa è una directory speciale che può contenere uno script di postinstallazione chiamato doinst.sh. Se il sistema dei pacchetti trova questo file, verrà eseguito dopo aver installato il pacchetto.

Altri script possono essere inseriti nel pacchetto, ma saranno discussi dettagliatamente nella sezione chiamata makepkg.

top
Torna all'indice

Strumenti per i Pacchetti

Ci sono quattro strumenti principali per la gestione dei pacchetti. Si occupano dell'installazione, rimoziono e aggiornamento dei pacchetti.

pkgtool

pkgtool(8) è un programma con un menu che permette l'installazione e la rimozione dei pacchetti. Il menu principale è simile a questo:

Figura 16-1. Menu principale di Pkgtool.



L'installazione è offerta dalla directory corrente, da un'altra directory o da un disco floppy. Si deve semplicemente scegliere il metodo d'installazione e pkgtool cercherà in quel percorso dei pacchetti validi.

Si può anche vedere una lista dei pacchetti installati, che sarà qualcosa del genere:

Figura 16-2. Modalità di visualizzazione di Pkgtool.



Se vuoi rimuovere i pacchetti, seleziona l'opzione "remove" e sarà visualizzata una lista dei pacchetti installati. Spunta quelli che vuoi eliminare e seleziona "OK". pkgtool li rimuoverà.

Alcuni utenti preferiscono questo strumento agli strumenti a linea di comando. Comunque, è da notare che i programmi a linea di comando offrono una più ampia gamma di opzioni. Inoltre, l'unico modo di aggiornare i programmi è offerto solo da programmi a linea di comando.

installpkg

instllpkg(8) gestisce l'installazione di nuovi pacchetti. La sintassi è la seguente:

# [ROOT=] installpkg [opzione] ...


Sono disponibili tre opzioni in installkpg. E' possibile utilizzare solo un'opzione alla volta.

Tabella 16-1. Opzioni di installpkg

Optioni Effetti
-m Esegue un'operazione makepkg sulla directory corrente.
-warn Mostra cosa succederebbe se installassi il pacchetto specificato. Questa opzione è utile per vedere esattamente cosa accade prima di installare qualcosa.
-r Installa ricorsivamente tutti i pacchetti, da quelli presenti nella sottodirectory in giù. Il <nome pacchetto> può essere usato con wildcards, che potrebbero essere usate anche come parametro di ricerca nell'installazione ricorsiva.

Se si passa la variabile d'ambiente ROOT prima di dare il comando installpkg, sarà usato quel percorso come root directory. Questa funzione è utile se si vuole installare quel pacchetto in un altro drive. Generalmente il nuovo valore di ROOT è /mnt o qualcosa di diverso da /.

La voce del database riferita al nuovo pacchetto installato è memorizzata in /var/log/packages. In verità, la voce è semplicemente un file di testo, uno per ogni pacchetto. Se il pacchetto ha uno script di postinstallazione, è scritto in /var/log/scripts/<nome pacchetto>.

Si possono specificare molti pacchetti o usare wildcards per il nome del pacchetto. E' da notare che installpkg non avviserà quando sovrascriverà un vecchio pacchetto. Semplicemente lo installerà sopra al vecchio. Se si vuol essere sicuri che il vecchio pacchetto venga rimosso in maniera giusta, si usi upgradepkg.

removepkg

removepkg(8) gestisce la rimozione dei pacchetti installati. La sintassi è la seguente:

# [ROOT=] removepkg [opzione] ...


Sono disponibili tre opzioni in installkpg. E' possibile utilizzare solo un'opzione alla volta.

Tabella 16-2. Opzioni di removepkg.

Opzioni Effetti
-copy Il pacchetto è copiato nella directory riservata ai pacchetti. Questa opzione crea un albero del pacchetto originale senza rimuoverlo.
-keep Salva i files temporanei creati durante la rimozione. Utile solo per scopi di debugging.
-preserve Il pacchetto viene rimosso, ma, allo stesso tempo, copiato nella directory riservata ai pacchetti.
-warn Mostra cosa succederebbe se si rimuove il pacchetto.

Se si passa la variabile d'ambiente ROOT prima di dare il comando removepkg, sarà usato quel percorso come root directory. Questa funzione è utile se si vuole installare quel pacchetto in un altro drive. Generalmente il nuovo valore di ROOT è /mnt o qualcosa di diverso da /.

removepkg cerca gli altri pacchetti installati e rimuove solo i files riferiti al pacchetto a cui si riferiscono. Cercherà inoltre lo script di postinstallazione del pacchetto specificato e rimuove ogni link simbolico che è stasto creato.

Durante il processo di rimozione, viene mostrato un report di stato. Dopo la rimozione, la voce del database riferita al pacchetto viene spostata in /var/log/removed_packages e lo script di postinstallazione in /var/log/removed_scripts.

Così come in installkpg, puoi specificare molti pacchetti o usare wildcards per il nome del pacchetto.

upgradepkg

upgradepkg(8) aggiornerà un paccketto Slackware installato. La sintassi è la seguente:

# [ROOT=] upgradepkg ...


oppure

# [ROOT=] upgradepkg <vecchio nome pacchetto>%<nuovo nome pacchetto>


upgradepkg prima installa il nuovo pacchetto e poi rimuove il vecchio. Se il nome del pacchetto aggiornato è diverso, si usi il simbolo percentuale (%) per specificare il vecchio pacchetto (quello installato) e il nuovo pacchetto (quello da aggiornare).

Se si passa la variabile d'ambiente ROOT prima di dare il comando upgradepkg, sarà usato quel percorso come root directory. Questa funzione è utile se si vuole installare quel pacchetto in un altro drive. Generalmente il nuovo valore di ROOT è /mnt o qualcosa di diverso da /.

Anche upgradepkg ha qualche difetto. E' preferibile sempre fare un backup dei tuoi files di configurazione. Se verranno sovrascritti, si avranno i files di configurazione originali. Così come in installpkg e in removepkg, si possono specificare più nomi o usare wildcards per il nome del pacchetto.

rpm2tgz/rpm2targz

Il Red Hat Package Manager è un sistema di pacchettizzazione molto popolare disponibile oggi. Molti distributori di software stanno offrendo i loro prodotti nel formato RPM. Dato che non è il formato nativo, non raccomandiamo di fare affidamento a questi. In ogni modo, alcune cose sono disponibili solo in RPM (anche il codice sorgente). Slackware fornisce un programma che converte gli RPM in .tgz. Questo programma permetterà di estrarre il pacchetto (forse con explodepkg) in una directory temporanea ed esaminare il suo contenuto. Il programma rpm2tgz creerà un pacchetto Slackware con un'estensione .tgz, mentre rpm2targz crea un archivio con un'estenzione .tar.gz.

top
Torna all'indice

Creare Pacchetti

Creare pacchetti Slackware può essere contemporaneamente facile e difficile. Non c'è un metodo predefiinito per creare un pacchetto. Il solo requisito è che il pacchetto è in formato tgz e, nel caso in cui ci fosse uno script di postinstallazione, esso sia /install/doinst.sh.

Se si vuole creare un pacchetto per il proprio sistema o per una rete che si gestisce, si dovrebbe dare uno sguardo ai vari scripts messi a disposizione da Slackware. Ci sono molti metodi per poter creare un pacchetto.

explodepkg

explodepkg(8) farà la stessa cosa che fa installpkg per estrarre un pacchetto, ma non lo installa e non inserisce nessuna voce nel database. Lo estrae semplicemente nella directory corrente.

Se si guarda nel "source tree" di Slackware, si vedrà come si usa questo comando per creare dei pacchetti "framework". Questi pacchetti contengono uno scheletro di quello che dovrebbe essere il pacchetto finale. Essi tengono tutti i nomi dei files necessari, i permessi e le appartenenze. Lo script di creazione estrarrà il contenuto del pacchetto dalla directory sorgente alla directory di creazione del pacchetto.

makepkg

makepkg(8) creerà un pacchtto Slackware valido a partire dalla directory corrente. Questo programma cercherà nell'albero un link simbolico e aggiungerà un blocco di creazione allo script di postinstallazione per crearlo durante l'installazione del pacchetto. Inoltre, avvisa per ogni files a lunghezza zero nell'albero del pacchetto.

Questo comando è tipicamente eseguito dopo che si è creato il tuo albero del pacchetto.

top
Torna all'indice

Creare Tags e files di Tag (per il setup)

Il setup di Slackware gestisce l'installazione dei pacchetti sul tuo sistema. Ci sono files che dicono al programma setup quali pacchetti devono essere installati, quali sono opzionali e quali sono selezionati di default dal programma setup.

Un tagfile è nella prima serie di directory ed è chiamato tagfile. Questo file elenca i pacchetti in quel particolare "disk set" e il loro stato. Lo stato può essere:

Tabella 16-3. Optioni di stato di tagfile.

Opzione Significato
ADD Il pacchetto è necessario per le operazioni minime di sistema.
SKP Il pacchetto verrà saltato automaticamente.
REC Il pacchetto non è necessario ma raccomandato.
OPT Il pacchetto è opzionale.

Il formato è semplicemente:

<nome pacchetto>: <stato>


Un pacchetto per linea. Il tagfile originale per ogni serie di software è memorizzato come tagfile.org. Così se si perdono quelli personali, si possono ripristinare gli originali.

Molti amministratori preferiscono scrivere i loro tagfiles per poi far partire l'installazione e selezionare "full". Il programma setup leggerà i tagfiles ed eseguirà l'installazione secondo i loro contenuti. Se si usa REC o OPT, verrà mostrato un dialog box all'utente chiedendo se si vuole quel pacchetto particolare. In ogni modo, è raccomandabile far uso di ADD e SKP nella scrittura dei tagfiles per installazioni automatizzate.

Si deve tener conto semplicemente che i tagfiles sono scritti nello stesso percorso degli originali. Altrimenti si può specificare un percorso personalizzato per i tagfiles.

top
Torna all'indice

Sommario

Ora si dovrebbe essere familiari con l'idea di slackware package e come sono usati in Slackware. Si dovrebbe essere familiari con i vari strumenti per la gestione dei pacchetti e come usarli. Le parti più importanti di questo capitolo sono come installare, rimuovere ed aggiorare i pacchetti. E' l'uso più comune degli strumenti dei pacchetti. Comunque, si dovrebbe aver capito come creare e ispezionare i pacchetti.

top
Torna all'indice

PREV
Capitolo 15 - L'Editor vi
NEXT
Capitolo 17 - Che cos'e' Zipslack/Bigslack