Debian si preoccupa di evitare differenze con i pacchetti a monte ["upstream" in gergo Debian, cioè i pacchetti originali degli autori dei programmi da cui vengono ricavati quelli Debian NdT], quindi eventuali cambiamenti in essi saranno riportati in Debian GNU/Linux
Nella release 2.2 ("Potato") di Debian GNU/Linux, tar
utilizzava l'opzione
-I
per la compressione con bzip
, ora comunque si utilizza
-j
. Si potrebbe dover modificare in modo appropriato i propri script.
Prima di aggiornare il proprio sistema, si raccomanda caldamente di effettuare un backup completo, o come minimo un backup di tutti i dati e le informazioni di configurazione che non devono andar persi in nessun caso. I tool e il processo di aggiornamento sono decisamente affidabili, ma un problema grave all'hardware nel mezzo di un aggiornamento potrebbe risultare in un sistema fortemente danneggiato.
Le cose principali che si vorranno salvare sono i contenuti di
/etc
, /var/lib/dpkg
e l'output di dpkg
--get-selections \*.
È saggio informare in anticipo tutti gli utenti di qualunque
aggiornamento si stia pianificando, sebbene quelli che accedono al sistema via
ssh (perlomeno) non dovrebbero notare granché durante l'aggiornamento e
potrebbero voler continuare a lavorare. Se si vogliono prendere precauzioni
extra, si faccia il backup o si smontino le partizioni degli utenti
(/home
) prima di procedere. Normalmente non dovrebbe essere
necessario riavviare il sistema.
L'aggiornamento della distribuzione dovrebbe essere fatto in locale da una
console virtuale in modo testo (o da un terminale seriale connesso
direttamente), o da remoto attraverso un collegamento ssh
.
Importante: Non si dovrebbe in ogni caso effettuare
l'aggiornamento usando telnet
, rlogin
,
rsh
o da una sessione X gestita da xdm
sulla macchina
in aggiornamento. Questo perché ciascuno di tali servizi potrebbe venir
terminato durante l'aggiornamento rendendo inaccessibile il sistema,
che si troverebbe aggiornato solo a metà.
Qualunque metodo venga usato per l'aggiornamento, si raccomanda di controllare prima lo stato di tutti i pacchetti e di verificare che siano tutti in uno stato che ne consenta l'aggiornamento. Con il comando che segue si otterranno eventuali pacchetti in "Half-Installed" o "Failed-Config" e quelli in uno stato problematico.
# dpkg --audit
Si potrebbe anche ispezionare lo stato di tutti i pacchetti presenti sul
sistema tramite dselect
o con comandi tipo
# dpkg -l | pager
o
# dpkg --get-selections > ~/curr-pkgs.txt
È fortemente raccomandata la rimozione di blocchi sui pacchetti. Se un pacchetto essenziale per l'aggiornamento è bloccato ["Hold"], esso fallirà. Si possono identificare i pacchetti bloccati con
# dpkg --audit
Se si ha modificato e ricompilato sulla propria macchina un pacchetto e non lo
si è rinominato o contrassegnato nella versione, lo si dovrà bloccare per
evitare che venga aggiornato. Lo stato Bloccato ["Hold"] di un
pacchetto può essere modificato usando dselect
(nel menù
Seleziona, si usino "H" e "G" rispettivamente per bloccare
e sbloccare) o sostituendo nel file prodotto con:
dpkg --get-selections > ~/curr-sels.txt
"hold" a "install" (o viceversa) per poi dare, come root:
dpkg --set-selections < ~/curr-sels.txt
La versione SSH commerciale contenuta nel pacchetto ssh
prima
della release 2.2 e in ssh-nonfree
nella 2.2 è stata rimpiazzata
dal pacchetto libero OpenSSH di DFSG, ssh
, in questa release. La
collezione commerciale di programmi SSH non è più presente. Il pacchetto
ssh
comprende un passo di configurazione di Debconf in grado di
rigenerare una configurazione compatibile con OpenSSH.
È importante che la directory /etc/rcS.d
esista prima
dell'aggiornamento, altrimenti l'installazione del pacchetto libc6
fallirà.
La directory /usr/share/doc
(se già esiste) non dovrebbe essere un
link simbolico (p.e. a /usr/doc
), per evitare la rottura di
alcuni pacchetti. Ad ogni modo è permesso creare un link simbolico da
/usr/doc
a /usr/share/doc
. Si noti che in tal caso
si otterrano parecchi messaggi circa directory /usr/doc
che non
possono essere rimosse. Niente di tale, si possono tranquillamente ignorare.
Il metodo raccomandato per l'aggiornamento è usare apt-get
con
dselect
, come ivi descritto. L'analisi delle dipendenze
incorporata in APT permette aggiornamenti e installazioni tranquilli.
Non si dovrebbere fare aggiornamenti di pacchetti importanti con
metodi di dselect
diversi da apt
, poiché gli altri
metodi non compiono alcun ordinamento logico dei pacchetti durante
l'installazione, perciò non sono altrettanto affidabili. In aggiunta gli
aggiornamenti con tali metodi non sono stati testati a fondo e non sono
supportati ufficialmente da Debian.
Qualsiasi operazione di installazione di pacchetti dev'essere eseguita con i
privilegi di superutente, quindi è necessario fare il login come root o usare
su
o sudo
per ottenere i diritti d'accesso necessari.
Prima di iniziare l'aggiornamento si dovrebbe sistemare in modo appropriato il
file di configurazione di apt
per le liste dei pacchetti,
/etc/apt/sources.list
.
apt
prenderà in considerazione tutti i pacchetti che possono
essere trovati tramite una qualsiasi riga "deb" e
installerà il pacchetto con il numero di versione più alto, dando la priorità
alle righe menzionate per prime (quindi in caso siano presenti più locazioni di
mirror, si dovrebbe menzionare per primo un disco fisso locale, poi CD-ROM,
infine i mirror HTTP/FTP).
La configurazione predefinita permette l'installazione dai principali server
Debian su Internet, comunque si potrebbe voler modificare
/etc/apt/sources.list
allo scopo di utilizzare altri mirror,
magari uno più "vicino".
In ogni caso, gli indirizzi dei mirror HTTP o FTP Debian sono riportati in
http://www.debian.org/distrib/ftplist
(si cerchi nella sezione "Full list of mirrors"). I mirror HTTP in
genere sono più veloci di quelli FTP.
Ad esempio, si supponga che il mirror più vicino sia http://mirrors.kernel.org/debian/. Ispezionandolo con un browser web o un client FTP, si noterà che le directory principali sono organizzate nel modo seguente:
http://mirrors.kernel.org/debian/dists/woody/main/binary-m68k/... http://mirrors.kernel.org/debian/dists/woody/contrib/binary-m68k/...
Per usare tale mirror con apt
, si aggiunga la riga seguente al
file sources.list
:
deb http://mirrors.kernel.org/debian woody main contrib
Si noti che "dists" viene aggiunto implicitamente e che gli argomenti che seguono il nome della release sono usati per espandere il percorso su più directory.
Dopo aver aggiunto le nuove fonti per apt
, si disabilitino le
righe "deb" preesistenti in sources.list
,
commentandole ponendo in testa un carattere cancelletto (#).
Qualsiasi pacchetto necessario all'installazione prelevato via rete viene
conservato in /var/cache/apt/archives
(e nella sottodirectory
partial/
durante lo scaricamento). Ci si deve quindi assicurare
di avere abbastanza spazio libero disponibile prima di tentare di avviare
l'installazione. Per un'installazione Debian normale servono come minimo 300
MB per i dati scaricati.
Nota: se si stanno usando le versioni statiche di apt
e
dpkg
, la risoluzione dell'hostname non funziona (una buona ragione
per usare l'apt
normale per aggiornamenti via rete). La soluzione
è semplice: utilizzare l'indirizzo IP del mirror nella riga
"deb". (Suggerimento: nslookup
server-in-questione).
Invece di usare siti mirror FTP o HTTP dei pacchetti si potrebbe voler
modificare /etc/apt/sources.list
per utilizzare un mirror su un
disco locale (magari montato tramite NFS).
Ad esempio, si ha un mirror dei pacchetti sotto /var/ftp/debian/
e
una serie di directory principali:
/var/ftp/debian/dists/woody/main/binary-m68k/... /var/ftp/debian/dists/woody/contrib/binary-m68k/...
Per usarlo con apt
, si aggiunga la riga seguente al file
sources.list
:
deb file:/var/ftp/debian woody main contrib
Si noti che "dists" viene aggiunto implicitamente e che gli argomenti che seguono il nome di release sono usati per espandere il percorso su più directory.
Se il mirror locale contiene le sezioni non-US/* sotto
/var/ftp/debian-non-US
, si aggiunga anche la riga seguente:
deb file:/var/ftp/debian-non-US woody/non-US main contrib
Dopo aver aggiunto le nuove fonti desiderate, si disabilitino quelle
preesistenti in sources.list
, anteponendo alle righe che iniziano
con "deb" un carattere cancelletto (#).
Si faccia riferimento a quanto riportato sopra in caso si debbano innanzitutto
installare le versioni più recenti dei pacchetti apt
e
dpkg
.
Se si desidera usare solo i CD come fonti per apt
, si
decommentino le righe "deb" presenti in
/etc/apt/sources.list
anteponendo loro un segno cancelletto
(#).
Ci si assicuri che in /etc/fstab
ci sia una riga che abilita il
mount del proprio CD-ROM su /cdrom
(apt-cdrom
lo
richiede per funzionare correttamente). Ad esempio, se /dev/hdc
corrisponde al lettore CD, /etc/fstab
dovrebbe contenere una riga
tipo:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Si noti che non ci devono essere spazi tra le parole defaults,noauto,ro nel quarto campo.
Per verificare che funziona, si inserisca un CD e si provi a lanciare
mount /cdrom (monterà il CD sul mount point) ls -alF /cdrom (dovrebbe elencare il contenuto della directory root del CD) umount /cdrom (smonterà il CD)
Ora si esegua:
apt-cdrom add
per ciascun CD-ROM Debian di binari che si possiede, per aggiungere i dati sul contenuto di ciascun CD al database di APT.
Il metodo di aggiornamento raccomandato per Debian GNU/Linux 3.0 comporta l'uso
del tool di gestione dei pacchetti dselect
, in grado di prendere
decisioni più sicure sui pacchetti di quanto succeda con apt-get
.
In caso dselect
non sia installato, si prega di installare la
versione fornita con la propria release di Debian GNU/Linux.
Il metodo di accesso per l'archivio (APT) è già stato configurato, ma lo si può modificare tramite la voce "[M]etodo" del menù. Se si è d'accordo con il metodo scelto, si proceda al passo successivo scegliendo "[A]ggiorna" dal menù, in modo da aggiornare il database dei pacchetti.
Se non ci sono stati problemi con l'aggiornamento del database, a questo punto
si scelga "[S]eleziona" dal menù. Dselect
esaminerà i
pacchetti disponibili e discriminerà quali pacchetti già presenti debbano
essere aggiornati e quelli nuovi da installare a necessario complemento. Darà
anche indicazioni sui pacchetti da rimuovere. In caso la selezione dei
pacchetti crei problemi di conflitti o dipendenze, premendo Invio
invece di ritornare al menù principale si passerà automaticamente ad una
schermata di risoluzione di conflitti e dipendenze, nella quale si potranno
modificare le selezioni per poi uscire premendo nuovamente Invio). Si
può ottenere un aiuto premendo "?".
Una volta effettuata la selezione dei pacchetti è necessario installare ciascun nuovo pacchetto. Per farlo si scelga "[I]nstalla" dal menù principale. Così facendo i pacchetti verranno scaricati dal supporto scelto e installati usando APT. Visto che le cose potrebbero andare per le lunghe, una buona idea a questo punto è rilassarsi davanti a una bella tazza di tè.
I due stadi finali sono "[C]onfigura" and "[R]imuovi", che termineranno il processo di aggiornamento con la configurazione dei nuovi pacchetti e la rimozione dei pacchetti che sono di troppo.
Non si dimentichi di montare tutte le partizioni necessarie (specialmente le
partizioni root e /usr
) in lettura-scrittura, con un comando come:
mount -o remount,rw /mountpoint
Assunto che si abbia già configurato il file sources.list
di
apt
, come spiegato in precedenza, si esegua (come root):
apt-get update
In tal modo verranno sincronizzati dalle fonti i file contenenti le informazioni sui pacchetti, aggiornandole con quelle dei pacchetti nuovi e aggiornati.
Si raccomanda caldamente di usare il programma /usr/bin/script
per
trascrivere la sessione di aggiornamento. In tal modo in caso di problemi si
avrà una registrazione di quanto successo e si sarà in grado di fornire
informazioni accurate in un eventuale rapporto. Per iniziare la registrazione,
si esegua:
script -a ~/aggiornamento-a-woody.typescript
o simile. Si faccia attenzione a non porre la registrazione in una directory
temporanea come /tmp
o /var/tmp
(i file presenti in
tali directory potrebbero venir cancellati durante l'aggiornamento o al riavvio
del sistema).
È importante aggiornare apt, dpkg e debconf prima di procedere con il grosso dell'aggiornamento. Apt è stato considerevolmente migliorato rispetto alle versioni precedenti. Debconf è un tool indispensabile, largamente usato nei pacchetti recenti.
apt-get install dpkg apt debconf
Con tale comando s'installeranno le versioni più recenti di dpkg
,
apt
e debconf
, necessari al resto dell'aggiornamento.
Verranno inoltre aggiornate alle ultime versioni alcune librerie di sistema
indispensabili.
Alla richiesta di debconf circa il tipo di domande da porre, non si scelga "critical", altrimenti se ne perderanno alcune importanti.
Alcuni preferiscono simulare prima un aggiornamento, per vedere cosa succede, con:
apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager
Sebbene possa costare un bel po' di tempo di elaborazione, potrebbe aiutare ad evitare brutte sorprese. Evidenzierà infatti eventuali problemi del proprio sistema (indicando come risolverli) o, più probabilmente, mostrerà ciò che esattamente verrà fatto durante l'aggiornamento. Si presti particolare attenzione: non dovrebbero comparire pacchetti essenziali tra quelli elencati come rimossi.
Dopo aver verificato che apt-get
lavori correttamente, si lanci:
apt-get --fix-broken --show-upgraded dist-upgrade
Verrà così effettuato un aggiornamento completo del sistema. Verranno installate le ultime versioni disponibili di tutti i pacchetti e risolte tutte le eventuali variazioni nelle dipendenze tra pacchetti in release diverse. Ove necessario, verranno installati alcuni pacchetti nuovi (di solito nuove versioni di librerie o pacchetti rinominati) e rimossi tutti i pacchetti obsoleti che creano conflitti.
In caso di aggiornamento da una serie di CD-ROM, verrà chiesto di inserire uno specifico CD in parecchi punti dell'aggiornamento. Potrebbe capitare di dover inserire più volte lo stesso CD. Ciò accade a causa di pacchetti correlati tra loro che si trovano su CD diversi.
Pacchetti già installati sul sistema che non possono essere aggiornati alle
loro nuove versioni senza influire sullo stato di installazione di altri
pacchetti verranno lasciati alla versione corrente (contrassegnati come
"held back"). Perciò potrebbe rivelarsi necessario usare
dpkg
o dselect
per rimuovere e reinstallare pacchetti
o dipendenze rotti. In alternativa si può usare apt-get
dselect-upgrade dopo apt-get -f dist-upgrade. (Si veda la
pagina di man apt-get(8)
.)
L'opzione --fix-broken (o semplicemente -f) farà sì
che apt
tenti di correggere un sistema con dipendenze rotte.
apt
non permette che sussistano dipendenze di pacchetti rotte.
A volte è necessario abilitare l'opzione APT::Force-LoopBreak affinché APT sia
in grado di rimuovere temporaneamente un pacchetto essenziale per risolvere un
circolo vizioso "è in conflitto con"/"pre-dipende da". Di
norma in tali casi apt-get
emette un avviso e cessa
l'aggiornamento. Lo si può per l'appunto evitare specificando l'opzione
-o APT::Force-LoopBreak=1 sulla riga di comando di
apt-get
.
C'è la possibilità che la struttura delle dipendenze di un sistema sia talmente
corrotta da richiedere un intervento manuale. Di solito ciò significa usare
dselect
o
dpkg --remove nome_del_pacchetto
per eliminare alcuni dei pacchetti problematici, oppure
apt-get --fix-broken --show-upgraded install dpkg --configure --pending
In casi estremi si potrebbe dover forzare una reinstallazione con un comando simile a:
dpkg --install /percorso/al/nome_del_pacchetto.deb
Dopo aver risolto il problema, si dovrebbe essere in grado di riprendere l'aggiornamento lanciando nuovamente i comandi dist-upgrade descritti in precedenza.
Durante l'aggiornamento verranno poste domande per la configurazione, o
riconfigurazione, di parecchi pacchetti. In caso venisse chiesto se un
qualsiasi file nelle directory /etc/init.d
e
/etc/terminfo
o il file /etc/manpath.config
debba
venir rimpiazzato con quello fornito dal responsabile del pacchetto, di solito
è necessario rispondere affermativamente, per garantire la coerenza del
sistema. Si può sempre ritornare alle versioni precedenti, dato che verranno
salvate con estensione .dpkg-old.
Se non si è sicuri di cosa fare, meglio annotarsi il nome del pacchetto o del file e sistemare le cose più avanti. Le informazioni presentate sullo schermo durante l'aggiornamento possono essere recuperate cercando nel file con estensione .typescript.
Quando apt-get dist-upgrade ha finito, l'aggiornamento formalmente può dirsi completo, ma ci sono delle altre cose cui si dovrebbe fare attenzione prima del prossimo riavvio.
Tra quelle più importanti, si potrebbe dover installare i pacchetti
locales
e util-linux
. Lo si può fare con:
apt-get install locales util-linux
Se l'aggiornamento è stato fatto a partire da un sistema Debian versione 2.0 o
precedenti, in tal modo verrà rimosso il pacchetto getty
, dato che
ora è compreso in util-linux
.
Probabilmente ci sono parecchi altri pacchetti che dovrebbero essere installati
malgrado apt-get
non lo segnali, poiché apt-get
non
seleziona in automatico pacchetti da cui non ne dipendano altri, per esempio
tutti quelli presenti nei campi Recommends: e Suggests: di un pacchetto [cioè
bada solo a soddisfare le dipendenze NdT]. Questo invece si può ottenere
tranquillamente usando dselect
o un'altra interfaccia grafica. In
dselect
, si scelga il metodo "apt" nella schermata
[M]etodo (se non lo si è già fatto) e si aggiorni il database con le
informazioni sui nuovi pacchetti tramite l'opzione [A]ggiorna. Dopo di che,
nella schermata [S]eleziona, si prema "o", "o",
"v", Shift-d e si cerchi l'header
--- Pacchetti obsoleti e locali presenti nel sistema ---
In tale sezione verranno visualizzati tutti i pacchetti di questo tipo. Per
esempio, il vecchio pacchetto gimp
è stato rimpiazzato da
gimp1.2
. Si può installare il nuovo pacchetto tramite
dselect
(che di seguito visualizzerà una schermata di risoluzione
dei conflitti di dipendenze che indicherà che tale vecchio pacchetto dovrebbe
venir rimosso) o usando:
apt-get install gimp1.2
che rimuoverà le versioni antiquate al volo (in caso si dovrà solo darne conferma).
Un altro esempio, che spesso sfugge perfino a dselect
, sono i
server e i client telnet e talk e il server NFS, che sono stati rimossi dal
vecchio pacchetto netstd
. È possibile installarli con un
comando del genere:
apt-get install telnet telnetd talk talkd nfs-server
La stessa cosa vale per manpages-dev
, che è stato rimosso da
manpages
.
Per informazioni sui pacchetti suddivisi nelle varie release precedenti di Debian GNU/Linux si faccia riferimento alle versioni delle Note di Release ad esse associate. Per un elenco dei pacchetti suddivisi in questa release si ritorni al paragrafo Pacchetti rinominati, Sezione 6.1 e Pacchetti suddivisi, Sezione 6.2.
Se si sta effettuando un aggiornamento di un sistema Debian 2.0 o precedente con il sistema X Window installato, si diano i seguenti comandi:
apt-get remove xbase apt-get install xfonts-base xfonts-75dpi xfonts-100dpi xfonts-scalable
Se non si desidera che all'avvio venga lanciato xdm
("X
autostart"), si lanci anche:
apt-get remove xdm
Si legga /usr/share/doc/xfree86-common/README.Debian-upgrade
per
maggiori informazioni sull'aggiornamento dei pacchetti del sistema X Window.
Riguarda gli utenti di tutte le release precedenti di Debian; poche storie, lo
si deve leggere per forza.
Il sistema di configurazione dei moduli del kernel è stato cambiato sin dalla
release 2.0 di Debian GNU/Linux. Se l'aggiornamento è stato effettuato a
partire da una Debian 2.0 o precedente, si deve convertire il proprio sistema
prima del prossimo riavvio. Di solito sarà sufficiente lanciare
update-modules force, nondimeno è raccomandata la lettura della
pagina di man update-modules(8)
.
Si noti che il kernel Linux non è stato aggiornato dalle procedure sin
qui descritte. In caso lo si desideri, lo si può fare in due modi: installando
uno dei pacchetti kernel-image-*
o compilando un kernel
personalizzato dai sorgenti.
Debian GNU/Linux viene fornita con un kernel serie 2.2, 2.2.20. Si potrebbe voler utilizzare un kernel 2.4, che garantisce maggiori prestazioni e supporto all'hardware più recente. Basterà avviare il sistema dal terzo CD-ROM, che provvederà a farlo magicamente da sé, o installarne uno precompilato:
apt-get install kernel-image-2.4.18-{386,586tsc,686}
Per gli utenti in cerca d'avventure, c'è una semplice strada per compilare un
proprio kernel personalizzato su Debian GNU/Linux. Si installi
kernel-package
e si legga la relativa documentazione in
/usr/share/doc/kernel-package
.
Buon divertimento con la nuova Debian GNU/Linux 3.0! :-)
Note di Release per Debian GNU/Linux 3.0 ("woody"), Motorola 680x0
$Id: release-notes.it.sgml,v 1.6 2002/10/17 12:37:57 joy Exp $debian-doc@lists.debian.org