PREV
Capitolo 15 - L'Editor vi
|
NEXT
Capitolo 17 - Che cos'e' Zipslack/Bigslack
|
-
Capitolo 16. Gestione dei Pacchetti Slackware
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
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
Ci sono quattro strumenti principali per la gestione dei pacchetti. Si occupano
dell'installazione, rimoziono e aggiornamento dei pacchetti.
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.
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(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(8) aggiornerà un paccketto Slackware installato. La sintassi è la seguente:
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.
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
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(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(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
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
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
PREV
Capitolo 15 - L'Editor vi
|
NEXT
Capitolo 17 - Che cos'e' Zipslack/Bigslack
|