/read/online
5: Introduzione alla gestione Debian dei pacchetti software
Chiunque abbia mai usato un computer giunge prima o poi alla conclusione che il software non è qualcosa di statico: esiste una grande varietà di programmi per i più svariati compiti, nuovi programmi e aggiornamenti vengono realizzati in continuazione. Il software può essere stato preinstallato sul vostro pc, scaricato da internet, comprato su CD, copiato da un amico, compilato dai sorgenti oppure scritto da voi stessi. La quantità e varietà dei programmi esistenti è stupefacente.
L' approccio Debian
Gestire tutti i programmi sul vostro computer e fare in modo che funzionino propriamente può rappresentare a volte un vero e proprio gioco di prestigio
In questi frangenti, ecco la riscossa di Debian: la sua gestione dei pacchetti software rappresenta una delle meraviglie nel mondo dei computer. In breve vi chiederete come avete fatto a sopravvivere prima di conoscerla.
Se in passato avete usato Windows o MacOS vi saranno sicuramente familiari i programmi di installazione del software: prendete un installer da un CD o da internet, lo lanciate e lui si occupa di sistemare tutto il necessario per voi. Attualmente questi programmi non seguono uno standard e il loro comportamento varia in base alle scelte di chi pubblica il programma. Alcuni di essi hanno la possibilità di disinstallare facilmente il programma, altri invece non sono in grado di farlo.
Per contro, Debian colpisce per la solidità e l' efficienza nella gestione del software. Tutto il software è gestito mediante un formato di impacchettamento rigorosamente definito che contiene il programma in sè e tutte le informazioni necessarie alla sua installazione; tutti i programmi possono così essere gestiti dal vostro computer in maniera standard. Normalmente viene dato modo di poter scaricare questi pacchetti da internet usando server che Debian o terze parti hanno destinato a questo scopo, ma possono anche essere distribuiti mediant CD, posta elettronica o siti web. Al momento in cui scrivo esistono oltre 12.000 disponibili direttamente sui server ufficiali di Debian, e molti altri ancora possono essere reperiti da fonti non ufficiali. A differenza dei programmi forniti in genere dai rivenditori, questi pacchetti sono sfruttabili immediatamente. Non c'è bisogno di recarsi in un negozio per comprare un CD-ROM, o di scaricare un programma di installazione e pagare online per ottenere un codice di attivazione. E' sufficiente disporre di un collegamento a internet e decidere quale pacchetto scaricare: il pacchetto sarà immediatamente scaricato e installato.
Strumenti di gestione dei pacchetti
Mentre i pacchetti software sono realizzati in modo standard, Debian mette a disposizione diversi modi per la loro gestione, in accordo con le necessità del vostro sistema e con le vostre preferenze.
Gli strumenti di Debian che gestiscono i pacchetti sono stratificati: si parte da programmi che agiscono a basso livello come Dpkg che gestisce direttamente i pacchetti, si passa a programmi di medio livello come Apt che scarica automaticamente i pacchetti e ne verifica le dipendenze da altro software, per finire a programmi ad alto livello come Synaptic che permette di sfogliare tutti i pacchetti tramite interfaccia grafica e di realizzare installazioni tramite un semplice "punta e clicca".
Gli utenti Debian con una certa esperienza tendono di volta in volta ad usare strumenti differenti a seconda di quello che intendono fare. Se per esempio avete sul vostro hard disk un pacchetto che avete scaricato da un sito, il modo più semplice per installarlo direttamente consiste nell' usare Dpkg. Se siete alle prese con la gestione di un sistema tramite linea di comando e volete installare pacchetti da un server Debian o un CD, Apt rappresenta senz'altro lo strumento più adatto allo scopo. Se invece volete a vostra disposizione un' interfaccia grafica che vi permetta di navigare attraverso le varie categorie del software e selezionare gli elementi che vi servono, avete a vostra disposizione diverse opzioni come Synaptic, Dselect o Aptitute.
Personalmente mi ritrovo quasi sempre ad usare Apt, oltre a Dpkg se devo gestire direttamente i pacchetti. Queste però sono preferenze personali: Synaptic potrebbe essere la miglior scelta per voi, se non vi trovate del tutto a vostro agio con la linea di comando e preferite quindi l' uso di un' interfaccia grafica.
Tenete presente che, qualsiasi strumento decidiate di usare, molto probabilmente richiederà che usiate l' utente root per installare software su una macchina Debian. Le macchine Linux sono a tutti gli effetti sistemi multi-utente e il software che viene installato è solitamente accessibile a tutti gli utenti. Non esiste un modo standard per permettere ad un singolo utente di installare un programma per uso unicamente personale. Tutto il software installato è centralizzato. Gli utenti normali non possono installare o rimuovere autonomamente alcun pacchetto, dato che questo rappresenterebbe un notevole rischio per la sicurezza, nonchè un grave disagio per gli altri utenti i quali potrebbero veder cambiare o sparire improvvisamente un programma di cui hanno bisogno.
E' possibile configurare un sistema chiamato "sudo" per permettere a utenti normali l' esecuzione di comandi come utente root, ma per il momento la cosa migliore consiste nell' aprire un terminale, usare il comando "su" e digitare la password di root prima di lanciare qualsiasi strumento di gestione dei pacchetti.
Dpkg
Dpkg costituisce il fondamento del sistema di gestione dei pacchetti Debian, e permette la loro manipolazione diretta. Se sul vostro disco fisso avete un pacchetto chiamato ad esempio "program-1.0-1.deb" e volete installarlo, Dpkg è lo strumento da usare.
Dpkg può far riferimento ad un programma in due modi distinti, a seconda delle circostanze: se avete un pacchetto sul disco fisso e volete installarlo, potete riverirvi ad esso utilizzando il nome del file del pacchetto, come "program-1.0-1.deb". Se il pacchetto è già stato installato e volete rimuoverso, è sufficiente usare il nome del programma, come "program".
dpkg -r program
Rimuove (disinstalla) il pacchetto/programma indicato. Questo comando rimuove
unicamente i binari (il programma stesso) ed i relativi script di avvio, ma
non cancella nessuno degli eventuali file di configurazione. Reinstallando il
programma in un secondo momento, verranno quindi usati i file di configurazione
esistenti, risparmiandovi di doverli ricreare da zero. La disinstallazione di
un pacchetto richiede che nessun' altro pacchetto dipenda da quello che vogliamo
rimuovere, nel qual caso dovremo prima rimuovere quelli da esso dipendenti.
dpkg -P program
Purga (disinstalla completamente) il pacchetto/programma indicato. Questo comando
si occupa di rimuovere qualsiasi cosa legata al programma: binari, script di
avvio, file di configurazione, tutto. Il purging di un programma richiede che
nessun' altro pacchetto dipenda da quello che vogliamo rimuovere, nel qual caso
dovremo prima rimuovere quelli da esso dipendenti. Se fate il purging di un
programma ed in seguito decidete di reinstallarlo, dovrete riconfigurarlo da
capo dato che i file di configurazione sono stati rimossi insieme ai binari.
dpkg -i program-1.0-1.deb
Installa un programma da un file Deb su disco: se scaricate un pacchetto deb
da internet, questo può essere installato direttamente in questo modo.
dpkg -l program
Mostra informazioni su versione e stato di un pacchetto installato.
dpkg -L program
Elenca tutti i files relativi al pacchetto installato. Se avete appena installato
qualcosa e non sapete dove sia stato posizionato, usate questo comando per scoprirlo.
dpkg -S foo
Trova il pacchetto che contiene il file "foo". Molto utile se avete
un file sul disco ma non avete idea da dove sia saltato fuori!
Apt e amici
Amo Apt. Già, l'ho detto. Apt è stato ciò che inizialmente mi ha fatto soffermare su Debian, e ancor oggi resto affascinato dal suo ottimo funzionamento. Sebbene inizialmente non sia stato concepito come uno strumento di gestione in sè, ma piuttosto come il motore sottostante a strumenti quali Synaptic e Dselect, l' uso diretto di Apt è probabilmente il metodo comunemente più diffuso per installare e rimuovere pacchetti. Potete leggere un manuale completo su Apt all' indirizzo www.debian.org/doc/manuals/apt-howto/ se vi servono tutti i dettagli possibili, mentre in questa sede vi mostrerò i principali.
Comandi di cui non potete fare a meno
Adoro talmente Apt che ho impostato delle scorciatoie su tutte le mie macchine Debian, in modo da poterli digitare più comodamente. Per fare lo stesso sulle vostre macchine è sufficiente aggiungere le seguenti linee al file "/root/.bashrc", per aggiungere le scorciatoie per l' utente root:
alias agi='apt-get install
alias agu='apt-get update'
alias ags='apt-cache search'
alias agsh='apt-cache show'
alias agr='apt-get remove'
alias agd='apt-get dist-upgrade'
Fatto questo non avrete più bisogno di digitare i comandi per esteso: per fare una ricerca, ad esempio di un pacchetto chiamato "foo", digitate semplicemente "ags foo". La pigrizia è una virtù!
apt-get update
Questo comando recupera la lista corrente dei pacchetti da tutti i server contenuti
nel vostro sources.list. Se non lo laciate di tanto in tanto, la vostra lista
locale dei pacchetti disponibili diventerà ben presto obsoleta. Lanciatelo
soprattutto prima di eseguire un dist-upgrade o di cercare un nuovo pacchetto.
Le liste dei pacchetti sono file di grandi dimensioni: procedere al loro aggiornamento
può richiedere che diversi Mb di data vengano scaricati da internet.
apt-cache search program
Questo comando esegue la ricerca della parola-chiave "program" all'
interno delle liste dei pacchetti, inclusi i nomi dei pacchetti e le loro descrizioni.
Potete usare più parole-chiave, come ad esempio "apt-cache search
text editor" per ottenere una lista degli editor di testo.
apt-cache show program
Una volta che avete trovato un programma che sembra interessante grazie a "apt-cache
search", potete visualizzare informazioni dettagliate al suo riguardo usando
il comando "apt-cache show program". Verrano fornite informazioni
quali la dimensione del pacchetto (utile se intendete scaricarlo da internet)
ed una descrizione estesa dello stesso, oltre ad un elenco dei pacchetti da
cui eventualmente dipende ed al nome dello sviluppatore che lo mantiene.
apt-get install program
Questo comando prende l' ultima versione disponibile del pacchetto specificato
e la installa, insieme a qualsiasi altro pacchetto da cui eventualmente dipenda.
Se il pacchetto specificato risulta già installato ne viene fatto l'
aggiornamento.
apt-get remove program
Se avete installato un programma e decidete di rimuoverlo, usate questo comando.
Dato che alcuni pacchetti software dipendono da altri per poter funzionare,
la rimozione di un programma può causare il malfunzionamento di altri.
L' uso di apt-get remove permette di controllare queste dipendenze e, se trova
pacchetti che necessitano di quello che stiamo rimuovendo, provvedere a rimuovere
anch' essi. Questo è solo un esempio di come il pacchetto di gestione
dei pacchetti Debian sia stato progettato nel tentativo di mantere sano e funzionante
il vostro computer, senza software non funzionante o installato parzialmente.
E' senz' altro possibile danneggiare un sistema Debian, ma generalmente dovrete
impegnarvi nell' impresa. Purtroppo potreste anche fare errori involontari.
apt-get upgrade
Con il passare del tempo, la maggior parte del software che avete installato
diventerà obsoleto con il rilascio di nuove versioni che aggiungono funzionalità
o correggono errori. Per aggiornare i pacchetti potreste digitare manualmente
"apt-get install" per ciascuno di essi, ma non è una scelta
molto conveniente e per questo Apt mette a disposizione un modo semplice per
aggiornare il vostro sistema con un unico comando. E' sufficiente digitare "apt-get
upgrade" per fare in modo che Apt controlli se esiste una nuova versione
per ogni singolo pacchetto presente nel vostro sistema, la scarichi e la installi.
Questo comando non installa assolutamente alcun nuovo pacchetto, ma aggiorna
unicamente quelli installati.
apt-get dist-upgrade
Può capitare che esista una nuova versione per un programma che avete
già installato ma che, per poter funzionare e rendere disponibili tutte
quelle nuove funzionalità che vi interessano, richieda nuove dipendenze.
Ad esempio potreste aver installato un player multimediale che supporta diversi
formati. Man mano che nuovi formati vengono rilasciati, i moduli ad essi relativi
potrebbero essere disponibili tramite pacchetti aggiuntivi: per questo motivo
la più recente versione del vostro player preferito potrebbe dipendere
da questi pacchetti, che non sono però installati nel vostro sistema.
Se lanciate semplicemente "apt-get upgrade", otterrete l' aggiornamento
del player, ma nessuno dei nuovi pacchetti contenenti i nuovi formati. Il comando
"apt-get dist-upgrade" rimedia a questo problema: non soltanto aggiorna
tutti i pacchetti installati alla versione più recente (come fa "apt-get
upgrade"), ma installa anche tutte le dipendenze aggiornate e che non erano
presenti sulla vostra macchina. Se volete che il vostro sistema sia sempre aggiornato
all' ultima versione e con tutte le correzioni relative alla sicurezza disponibili,
la miglior strada possibile è quella di lanciare "apt-get update"
e "apt-get dist-upgrade" di tanto in tanto.
apt-get clean
Quando chiedete ad Apt di installare un nuovo programma, il relativo pacchetto
viene scaricato e immagazzinato in una zona di cache sul vostro disco prima
di essere installato. Se rimuovete il programma, e in seguito decidete di reinstallarlo,
Apt non avrà più bisogno di scaricarlo da internet dato che è
ancora presente nell' area di cache sul vostro disco. Questo meccanismo è
molto utile per risparmiare banda, ma in breve tempo può occupare molto
spazio su disco. Per questo è una buona idea cancellare periodicamente
i vecchi pacchetti dalla cache. Usare "apt-get clean" svuota completamente
la cache dei pacchetti, il che può a volte rappresentare un ottimo guadagno
di prezioso spazio disco. Il comando è assolutamente sicuro, dato che
la cosa peggiore possibile è che Apt sia costretta a scaricare nuovamente
da internet un pacchetto se questo era stato rimosso e decidete di reinstallarlo.
apt-get autoclean
Questo comando è del tutto simile al precedente, se non per il fatto
che compie il suo dovere in maniera leggermete più furba: invece di ripulire
l' intera cache dei pacchetti, cancella unicamente quelli sorpassati. Ad esempio,
la vostra cache potrebbe contenere le ultime 7 versioni di un editor di testo
che è stato aggiornato più volte: "apt-get autoclean"
cancellerà le 6 più vecchie e manterrà quella più
recente. Questo ha senso, dal momento che se voleste reinstallare un programma
non usereste certo versioni diverse da quella più recente. Anche questo
comando è estremamente sicuro per cui, se vi trovate un po' a corto di
spazio su disco e non volete che la cache cresca troppo, potreste inserirlo
in un Crob job in modo che venga eseguito periodicamente. Non vedo davvero alcuna
ragione per tenere su disco versioni vecchie dei porgrammi.
Synaptic
Synaptic rappresenta una novità abbastanza recente all' universo Debian, il cui intento è quello di fornire un modo semplice di cercare e sfogliare le liste dei pacchetti disponibili e installarli. Se ancora non l' avete installato, aprite un terminale e loggatevi come root, quindi digitate "apt-get install synaptic". Una volta installato, è sufficiente digitare "synaptic" (come utente root) e vi troverete davanti ad una lista dei pacchetti organizzati in categorie e una serie di pulsanti per gestirli. Non scenderò in dettagli sull' uso di Synaptic perchè, se avete letto il paragrafo precendete relativo ad Apt, le varie opzioni di Synaptic vi dovrebbero risultare abbastanza chiare. La maggior parte delle opzioni sono direttamente basate su Apt ed in effetti potete pensare a Synaptic come ad un Apt con l' aggiunta del punta-e-clicca.
Se ad esempio voleste aggiornare la lista del software disponibile usando Apt, dovreste digitare "apt-get update". In Synaptic trovate un grosso pulsante che dice "Update List" che fa esattamente la stessa cosa. Lo stesso vale per "apt-get upgrade" (è sufficiente premere "Upgrade All") e "apt-get dist-upgrade" ("Dist Upgrade" in Synaptic).
Navigando tra i pacchetti disponibili, avete la possibilità di selezionarli e di cliccare sui tabs per accedere a svariate informazioni proprio come se digitaste "apt-get show", e cliccando sul pulsante "Install" li marcherete per la successiva installazione. E' da notare che nient' altro accade in questa fase: i pacchetti vengono unicamente segnati come da installare, non vengono installati. Questo significa che potete tranquillamente navigare tra le varie categorie e segnare svariati pacchetti man mano che li incontrate, senza dovervi fermare ad aspettare l' installazione di ciascuno di essi. Quando avete fatto le vostre scelte, cliccate semplicemente sul grosso pulsante "Proceed" e lasciate che Synaptic scarichi ed installi i pacchetti che avete scelto.
Allo stesso modo, se avete selezionato un pacchetto che è già installato, potete selezionarne la rimozione tramite il pulsante "Remove".
Aptitude e Dselect
Non scenderò nei dettagli sull' uso di Aptitude e Dselect qui, dal momento che non sono altro che strumenti differenti per compiere le stesse operazioni di Synaptic. A volte può accadere che l' uso di questi ultimi sia vantaggioso, specialmente se state amministrando una macchina remota o se preferite l' uso della linea di comando, dato che non avete necessità di X per usarli. Come Synaptic, questi strumenti permettono di sfogliare la lista dei pacchetti, marcarli per l' installazione, vederne i dettagli e risolvere automaticamente le dipendenze ma, a causa della loro natura di programmi testuali, molte persone li trovano più difficili da usare rispetto a Synaptic, che ha un' interfaccia di gestione più semplice.
Dselect in particolare può provocare dure reazioni quando menzionato agli utenti Debian, nessuno è indeciso a suo riguardo: c'è chi conosce a menadito ogni scorciatoia da tastiera per il suo uso e lo ama appassionatamente e chi invece l'ha lanciato una sola volta, gli ha dato un' occhiata frettolosa pentendosi di non essere riusciti a chiudere la finestra abbastanza in fretta e giurando di non lanciarlo mai più. Penso che l' uso di Dselect stia diventando sempre più raro e limitato al nucleo di utenti più estremi, dato che alternative come Aptitude e adesso Synaptic hanno fornito alternative altrettanto valide.
Personalizzare le proprie fonti per il software
Per permettere al vostro computer di installare tutto il software disponibile dovete indicargli dove questo può essere reperito. Al momento dell' installazione di Debian, vengono impostate alcune sorgenti come punto di partenza, ma potete anche decidere di personalizzarle per poter aggiungere pacchetti forniti da altri o per usare un server più vicino e abbassare i tempi di download.
/etc/apt/sources.list
Il vostro computer mantiene una lista delle sorgenti software disponibili in un file chiamato "/etc/apt/sources.list". Nel momento in cui decidete di aggiornare questa lista, il file viene processato per individuare gli indirizzi dei server da usare e richiedere ad essi una lista aggiornata. Questo file indica anche altre sorgenti locali, come il CD-ROM che potreste aver usato per installare Debian.
Una tipica linea che indica un server in internet da cui prelevare il software è qualcosa di simile a:
deb http://ftp.it.debian.org/debian stable main contrib
Apt è in grado di gestire intelligentemente più sorgenti. In questo modo potete aggiungere altre linee al file e rendere disponibile molto più software per il vostro sistema. Se Apt individua lo stesso pacchetto disponibile da più sorgenti, non farà altro che scegliere quello che indica il numero di versione più alto e installarlo.
Synaptic fornisce un modo estremamente comodo di gestire le sorgenti nel vostro sources.list senza dover modificare il file manualmente: è sufficiente aprire il menu "Settings" e selezionare "Repositories" per ottenere una lista ben organizzata con tutte le opzioni necessarie ad aggiungere, cancellare, modificare, abilitare e disabilitare le sorgenti.
www.apt-get.org
Bene, ma come reperire i server da aggiungere al sources.list? I server che distribuiscono pacchetti compatibili con Debian hanno cominciato ad essere molto diffusi in internet, ed esiste un progetto dedicato a fornirne un elenco centralizzato al sito http://www.apt-get.org/. Potete usare il servizio per cercare un pacchetto e il sistema vi fornirà le linee da aggiungere al sources.list in modo da avere accesso al server che lo ospita.
E' importante sapere che i pacchetit Debian sviluppati da terzi possono non essere della medesima qualità di quelli ufficiali. Se scaricate un pacchetto da una misconosciuta fonte in internet, non potete sapere a priori cosa possa contenere: può trattarsi di un ottimo programma amorevolmente mantenuto, ma potrebbe anche rivelarsi pieno di errori e mai aggiornato. Se sapete cosa state facendo, le fonti non ufficiali possono rappresentare un vero affare, ma prestate comunque sempre attenzione quando non fate uso delle sorgenti ufficiali.
Vincent McIntyre
Thanks to Paolo Canavese for the translation.
-:Site powered by Internet Vision Technologies:-