Comandi base e avanzati

Un pacchetto di un componente software binario, riconoscibile per il suffisso .deb, contiene tutto ciò che serve a installare, ed eventualmente rimuovere, il software in questione in modo efficiente, cioè senza danneggiare il sistema, senza lasciare file inutili ad occupare spazio su disco, senza entrare in conflitto con altri componenti software, le cosiddette dipendenze (pararagrafo 3.2 seguente). Un interessante effetto secondario è che è molto semplice avere una chiara visione di tutto il software installato sul sistema, in maniera sintetica e pulita. Rispetto alla tradizione storica in ambito Unix di fornire il codice sorgente del software, che poi doveva essere compilato sulle singole macchine, il pacchetto costituisce un notevole salto tecnologico verso la fruizione del software da parte di un'utenza inesperta, in quanto esso permette, con un semplice comando, di rendere il programma immediatamente usabile dall'utente. Per fare un paragone, è come se si fosse passati dall'orticello di casa al supermercato.

Il sistema che in Debian gestisce l'installazione e disinstallazione dei pacchetti è relativamente complesso ma estremamente potente e avanzato, consentendo:

Lo strumento principe di gestione è APT (Advanced Package Tool) consistente in vari programmi CLI33 apt- e il programma a menu di testo aptitude34, che può usarsi anche da riga di comando. Nella tabella 3.1 sono elencati alcuni degli strumenti disponibili più adeguati a giudizio dell'autore. APT si appoggia comunque a dpkg (che funge da strumento di basso livello) per eseguire i suoi compiti.


Table 3.1: Strumenti di gestione dei pacchetti
Nome Note
dpkg interfaccia a basso livello
tasksel installa un gruppo di pacchetti
apt-get CLI per APT
aptitude CLI e interfaccia a menu per APT


Da notare che per gestire i pacchetti non è necessario conoscere i comandi shell che verranno illustrati per le interfacce a riga di comando, perché esistono anche ottime e comode interfacce grafiche specifiche, come ad esempio kpackage del KDE, synaptic di GNOME, e l'ottimo dpkg-www di Massimo Dal Zotto; tuttavia alcune delle funzionalità più avanzate sono accessibili solo dalla riga di comando. Il comando in assoluto più usato è quello, semplice, per installare un pacchetto, che prende la seguente sintassi:

# aptitude install <nomepacchetto>
Per esempio, la documentazione relativa ad APT è disponibile in italiano installando il pacchetto apt-howto-it:

# aptitude install apt-howto-it
Alternativamente, si può usare :

# apt-get install apt-howto-it
mentre la variante:

# aptitude -s install apt-howto-it
mostrerà cosa si andrà ad installare (il componente software richiesto più le eventuali dipendenze) senza installare alcunché.

I due comandi ``aptitude'' e ``apt-get'' non sono esattamente equivalenti, come spiegato nel paragrafo 3.2. Il programma dpkg, invece, è quello che è apparso sulla scena per primo e per questo, per certi versi, è limitato: a differenza di APT, interrompe l'installazione di un pacchetto se le sue dipendenze non sono soddisfatte. D'altra parte esso offre delle funzionalità uniche di accesso a basso livello al contenuto dei pacchetti. Per conoscere per esempio i file che compongono un determinato pacchetto inserire:

# dpkg -L <nomepacchetto>
Esempio:

# dpkg -L apt-howto-it
Un'altra eventualità che si potrebbe presentare è quella di voler conoscere a quale pacchetto installato corrisponde un determinato file; in questo caso serve il comando:

# dpkg -S <nomefile-anche-approssimato>
Provate:

# dpkg -S crontab
Notevole è poi il fatto che in ogni momento è possibile riconfigurare un pacchetto già installato35 inserendo:

# dpkg-reconfigure -p=medium <nomepacchetto>
Esempio:

# dpkg-reconfigure man-db
che riconfigura l'archivio delle pagine Unix man. Vale la pena osservare che purtroppo non esiste un sistema centralizzato per la configurazione; per tutti quei pacchetti che fanno uso di debconf, si può installare il seguente programma:

# aptitude install configure-debian

# configure-debian

che esegue automaticamente il comando dpkg-reconfigure, presentando i pacchetti in un elenco organizzato per sotto-sezioni.

Se si verificano dei problemi durante l'installazione di un pacchetto36 e il processo di installazione si interrompe senza essere portato a termine, inserite:

# aptitude -f install
per rimettere le cose a posto. Infine, se desiderate rimuovere un pacchetto inutile, inserite semplicemente:

# aptitude purge <nomepacchetto>
Prestate attenzione a quanto vi comunica il sistema: spesso, a causa delle dipendenze, la cancellazione di un pacchetto ne comporta la cancellazione di numerosi altri; il sistema però vi avverte sempre in modo che abbiate la possibilità di annullare il comando, se la cosa non vi piace.

APT deposita tutti i pacchetti del software installato in /var/cache/apt/archives. Potrebbe capitare che la dimensione di questa cartella, con il passare del tempo, divenga eccessiva; se necessario se ne può cancellare tutto il contenuto (vengono cancellati i pacchetti e non il software installato!) inserendo:

# aptitude clean
Per concludere accenniamo al concetto di pacchetto virtuale (virtual package), che è un nome generico per un gruppo di pacchetti che forniscono la medesima funzionalità. Per esempio, il pacchetto virtuale www-browser si riferisce ai pacchetti konqueror, dillo, lynx che forniscono tutti la funzionalità di navigatore web. Se si installa più di un pacchetto associato ad un pacchetto virtuale, Debian consente di selezionare quello che sarà usato in modo predefinito dal sistema. Provate:

# update-alternatives -display editor

Mauro Darida 2006-07-25