Come ben sapete la Slackware possiede un sistema di pacchettizzazione tutto suo: i .tgz. A differenza di molti altri sistemi di pacchettizazzione (ed esempio .deb, .rpm, etc...) i .tgz non possiedono alcuno script di controllo delle dipendenze e, se questo da un lato ci obbliga a prestare più attenzione quando installiamo qualcosa, dall'altro ci offre una flessibilità che le altre distribuzioni GNU/Linux non possiedono.
I pacchetti .tgz vengono creati tramite gli SlackBuild. Gli SlackBuild sono degli script bash i quali, tramite i sorgenti, e tramite una combinazione di vari tar,gzip e altri programmi ci restituiscono il pacchetto bello e pronto per essere installato.
La nomenclatura di un pacchetto prevede tale struttura:
<nome-software>-<versione-software>-<architettura>-<build>.tgz
Ma vediamo di fare un esempio concreto. Prendiamo ad esempio un pacchetto a caso dal repository di Slacky.it :
inkscape-0.44.1-i486-1sl.tgz
Analizziamolo in ogni sua parte.
I pacchetti possono essere trovati nei repository. I repository non sono altro che dei veri e propri depositi di pacchetti. Voi entrate nel repository e prendete ciò che vi serve. Potete anche contribuire e scrivere gli SlackBuild per i pacchetti facendo un piacere a tutti quelli a cui serviva un determinato pacchetto ma non sapevano come scrivere lo SlackBuild. Due fra i repository di .tgz più famosi della rete sono:
http://www.slacky.it
http://www.linuxpackages.net/
Ma qual'è il motivo principale dell'esistenza dei pacchetti? La risposta è molto semplice, per una facile installazione, un facile aggiornamento, e una facile disinstallazione mantenendo il sistema pulito e scattante.
Per installare/disinstallare/aggiornare un pacchetto occorrono diritti di root quindi ogni volta che vi dirò come installare/disinstallare/aggiornare un pacchetto è sottinteso che voi siate root. Per diventare utenti root seguite questa procedura:
#su - [inserite la password di root]
Per installare un pacchetto si utilizza il comando:
installpkg [opzioni] <nome-pacchetto>.tgz
Questo comando installerà il pacchetto che gli passeremo come argomento. Ad esempio se volessimo installare il pacchetto che abbiamo analizzato in precedenza (inkscape) allora il comando da lanciare (da root) è il seguente:
#installpkg inkscape-0.44.1-i486-1sl.tgz
Nel caso in cui volessimo visualizzare lo "storico" dei pacchetti installati allora basterà lanciare il comando:
#less /var/log/packages
Nel caso in cui vogliate disinstallare un programma avrete l'esigenza di rimuovere il pacchetto corrispondente. Il comando per rimuovere i pacchetti fuziona in modo del tutto simile al comando per installare i pacchetti. Il comando in questione è:
removepkg [opzioni] <nome-pacchetto>.tgz
Se volessimo disinstallare il pacchetto precedentemente installato (inkscape) allora il comando da lanciare sarebbe:
#removepkg inkscape-0.44.1-i486-1sl.tgz
Nel caso in cui volessimo visualizzare lo "storico" delle rimozioni dei pacchetti allora basterà lanciare il comando:
#less /var/log/removed_packages
Avete una versione nuova di un pacchetto e volete aggiornare quella vecchia? Facile!! ;) Il comando è del tutto simile ai precedenti:
upgradepkg <nome-pacchetto>.tgz
Ad esempio se ci fosse una versione nuova del pacchetto chiamata:
inkscape-0.44.2-i486-1sl.tgz
e volete aggiornare quella vecchia, il comando da lanciare è:
#upgradepkg inkscape-0.44.2-i486-1sl.tgz
Questi comandi per gestire i pacchetti sono una bella comodità, che diventa ancora più bella quando ci viene offerta una pseudo-gui in ncurses che ci permette di installare, rimuovere, aggiornare, visualizzare la lista dei pacchetti installati mediante le freccette, barra spaziatrice e invio. L'interfaccia del pkgtool è fatta così:
Per lanciare pkgtool basta lanciare questo comando:
#pkgtool
e l'interfaccia appena mostrata apparirà. Ecco una descrizione delle opzioni che pkgtool offre:
Slackware mette a disposizione un tool con cui è possibile convertire un pacchetto .rpm in un pacchetto .tgz : rpm2tgz. Questo tool è veramente facile da utilizzare, si utilizza in questo modo:
rpm2tgz <nome-pacchetto>.rpm
A differenza degli altri comandi questo non richiede privilegi di root in quanto non installerà nulla, bensì si limiterà alla conversione del pacchetto.