Upgrade da Sarge ad Etch
Documentazione
- Leggere le note di rilascio: Note di Rilascio per Debian GNU/Linux 4.0 ("etch"), Intel x86
- In particolare: Note di Rilascio per Debian GNU/Linux 4.0 ("etch"), Intel x86 - Capitolo 4 - Aggiornamenti da precedenti rilasci
Raccolta note importanti
Cambio nelle caratteristiche predefinite per ext2/ext3
I nuovi filesystem ext2 e ext3 saranno creati con le caratteristiche dir_index e resize_inode abilitate di default. La prima caratteristica accelera le operazioni su directory con molti file; la seconda rende possibile ridimensionare un filesystem on-line (ovvero mentre è montato).
Utenti che aggiornino da sarge potrebbero prendere in considerazione l'aggiunta manuale del parametro dir_index mediante l'utilizzo di tune2fs[4]; il parametro resize_inode non può essere aggiunto ad un filesystem già esistente. È possibile controllare quali parametri sono impostati per un filesystem con il comando dumpe2fs -h.
La codifica predefinita per etch è UTF-8
La codifica predefinita per nuove installazioni di Debian GNU/Linux è UTF-8. Anche parecchie applicazioni saranno impostate per l'utilizzo di UTF-8 per default.
Utenti che con l'aggiornamento a etch desiderino passare a UTF-8 necessiteranno di riconfigurare il loro ambiente e le definizioni delle locale. Il default di sistema può essere cambiato con dpkg-reconfigure locales; si selezioni prima una locale UTF-8 per la propria lingua e la si imposti quindi come default. Si noti che passare a UTF-8 significa dover probabilmente convertire file preesistenti dalla codifica precedente ("legacy") a UTF-8.
Il pacchetto utf8-migration-tool contiene uno strumento che potrebbe aiutare nella migrazione, tuttavia tale pacchetto è disponibile solamente nella distribuzione unstable, dal momento che non era pronto in tempo per etch. Si raccomanda vivamente di fare un backup dei propri dati e configurazione prima di utilizzare tale tool.
Si noti che alcune applicazioni potrebbero non funzionare ancora correttamente in un ambiente UTF-8, soprattutto a causa di problemi di visualizzazione.
Il wiki di Debian contiene delle informazioni aggiuntive sui cambiamenti tra sarge e etch.
Pacchetti del kernel rinominati
Tutti i pacchetti del kernel Linux sono stati rinominati da kernel-* a linux-* perché fosse ripulito lo spazio dei nomi. Ciò renderà più agevole l'inclusione di kernel non-Linux in Debian in futuro.
Nuove utility per la generazione di initrd
I pacchetti delle immagini del kernel di Debian per Intel x86 richiedono un initrd per l'avvio del sistema. A causa di cambiamenti nel kernel, l'utility utilizzata per generare initrd in sarge, initrd-tools non può più essere utilizzata ed è stata resa deprecata. Sono state sviluppate due nuove utility che la rimpiazzano: initramfs-tools e yaird. I concetti che sottendono alle nuove utility sono molto differenti; un sommario è fornito nel wiki di Debian. Entrambe genereranno un initrd utilizzando il filesystem initramfs, che è un archivio cpio compresso. L'utility predefinita e raccomandata è initramfs-tools.
L'aggiornamento a un kernel di etch causerà automaticamente l'installazione di initramfs-tools.
Se si sta passando da un kernel 2.4 a un kernel Debian 2.6, si deve usare initramfs-tools. L'utilizzo di yaird farà fallire installazioni di linux-image-2.6 se si sta facendo girare un kernel 2.2 o 2.4.
Il pacchetto initrd-tools è comunque incluso in etch poiché è necessario per aggiornamenti da sarge. Sarà eliminato per il prossimo rilascio.
Gestione dinamica di /dev e rilevamento dell'hardware
etch non fornisce più il supporto per devfs.
udev è montato sulla directory /dev e popolerà tale directory con i dispositivi supportati dal kernel. Esso inoltre aggiungerà e rimuoverà dinamicamente i dispositivi rispettivamente al caricamento e de-caricamento dei moduli, in base ad eventi generati dal kernel. udev è molto più versatile di devfs ed offre servizi che sono utilizzati da altri pacchetti come hal (layer di astrazione sull'hardware).
In combinazione con il kernel, udev si occupa anche del rilevamento dell'hardware e del caricamento dei moduli per l'hardware rilevato. A causa di ciò esso entra in conflitto con hotplug. In sarge, anche discover poteva essere utilizzato per il caricamento dei moduli durante il processo di avvio, ma la sua nuova versione in etch non fornisce più tale funzione. discover è ancora utilizzato da X.Org per il rilevamento del controller grafico presente nel sistema.
Se si installa un'immagine del kernel di Debian, udev sarà installato di default, dal momento che initramfs-tools dipende da esso.
Si può evitare l'installazione di udev compilando un kernel personalizzato non modulare o utilizzando un generatore alternativo di initrd, come yaird. Tuttavia, initramfs-tools è il generatore di initrd raccomandato.
Modalità di ripristino
Si può utilizzare l'installatore per risolvere problemi con il proprio sistema, per esempio quando non si avvia. I primi passaggi saranno esattamente come per un'installazione normale, ma l'installatore non avvierà lo strumento di partizionamento. Offrirà invece all'utente un menù di opzioni di ripristino.
Si attivi la modalità di ripristino facendo avviare l'installatore con il parametro rescue, o aggiungendo un parametro di avvio rescue/enable=true.
Avvio della sessione screen
* Se si aggiorna via SSH, avviare screen, per potersi riconnettere:
screen -DR
Registrazione della sessione
Si raccomanda vivamente di utilizzare il programma /usr/bin/script per registrare una trascrizione della sessione di aggiornamento. In tal modo, se si verificasse un problema, si disporrà di una registrazione di quanto accaduto, e, ove necessario, si potrà fornire le informazioni esatte in un'eventuale segnalazione su un bug. Per avviare la registrazione, si digiti:
script -t 2>~/upgrade-etch.time -a ~/upgrade-etch.script
Aggiornamento versione precedente
- Aggiornare gli ultimi pacchetti di sarge:
sudo apt-get update && sudo apt-get upgrade
- Verificare che sia installato aptitude
sudo apt-get install aptitude
Controllare le azioni in sospeso nel gestore dei pacchetti
In alcuni casi, l'utilizzo di apt-get per installare pacchetti in luogo di aptitude potrebbe far sì che aptitude consideri un pacchetto come "inutilizzato" e ne programmi la rimozione. In generale, ci si dovrebbe assicurare che il sistema sia completamente aggiornato e "pulito" prima di procedere con l'aggiornamento.
A causa di ciò bisognerebbe controllare se vi sono azioni in sospeso nel gestore dei pacchetti aptitude. Se di un pacchetto è programmata la rimozione o l'aggiornamento nel gestore dei pacchetti, esso potrebbe avere un impatto negativo sulla procedura di aggiornamento. Si noti che la correzione è possibile soltanto se il file sources.list punta ancora a sarge, e non a stable o a etch: si veda Controllo della lista delle fonti, Sezione A.2.
Per fare questo, si dovrebbe eseguire l'interfaccia utente di aptitude e premere 'g' ("Go"). Se questo visualizza delle azioni, si dovrebbero controllare queste ultime e correggere o implementare le azioni suggerite. Se non è suggerita alcuna azione sarà presentato un messaggio che dice "No packages are scheduled to be installed, removed, or upgraded".
Verifica dello stato dei pacchetti
Il seguente comando visualizzerà eventuali pacchetti che siano in uno stato Half-Installed o Failed-Config, e quelli che abbiano uno status problematico.
dpkg --get-selections | grep hold
Si possono identificare pacchetti tenuti bloccati per aptitude con
sudo aptitude search "~ahold" | grep "^.h"
Lo stato bloccato [hold] dei pacchetti per aptitude può essere cambiato con il comando:
sudo aptitude hold nome_del_pacchetto
Si sostituisca hold con unhold per rimuovere lo stato bloccato.
Impostazione delle fonti APT
- Cambiare sources.lists impostando etch e volatile.debian.org (non .net); togliere gli eventuali riferimenti di backports:
cat | sudo tee /etc/apt/sources.list > /dev/null << EOFile deb http://ftp.it.debian.org/debian etch main non-free contrib deb http://security.debian.org/ etch/updates main contrib non-free deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free deb http://support.rvmgroup.it/debian binary/ EOFile
- Togliere qualsiasi pinning di backports
- Impostare le priorità per etch
- Cambiare volatile.debian.net in .org
- Ora è disponibile anche postgrey in volatile. Aggiungerlo se necessario.
cat | sudo tee /etc/apt/preferences > /dev/null << EOFile Package: clamav Pin: origin volatile.debian.org Pin-Priority: 1100 Package: * Pin: release a=etch Pin-Priority: 700 EOFile
- Impostare il valore della cache APT per evitare errori tipo E: Dynamic MMap ran out of room:
sudoedit /etc/apt/apt.conf APT::Cache-Limit "12500000";
Aggiornare il database:
sudo apt-get update
Assicurarsi di avere spazio a sufficienza per l'aggiornamento
Prima di eseguire effettivamente l'aggiornamento si può vedere questa stima con:
sudo aptitude -y -s -f --with-recommends dist-upgrade [ ... ] XXX pacchetti aggiornati, XXX installati, XXX da rimuovere e XXX non aggiornati. È necessario prelevare xx.xMB/yyyMB di archivi. Dopo l'estrazione, verranno occupati AAAMB. Saranno scaricati/installati/rimossi pacchetti.
Se non si ha abbastanza spazio per l'aggiornamento, ci si accerti di liberare dapprima dello spazio. Si può rimuovere pacchetti che sono stati precedentemente scaricati per l'installazione (in /var/cache/apt/archive), Ripulendo la cache dei pacchetti mediante esecuzione di
sudo apt-get clean
o
sudo aptitude clean
Scaricamento pacchetti
sudo apt-get update sudo apt-get dist-upgrade -d
Aggiornamento minimo del sistema
ATTENIONE: Durante la procedura di aggiornamento, se viene richiesto di installare una nuova versione di un file di configurazione , rispondere Y, dopo verrà effettuato un aggiornamento manuale.
ANNOTARE IN UNA LISTA TUTTI I FILES SOSTITUITI, IN MODO DA AGGIORNARLI MANUALMENTE IN SEGUITO
Si esegua in primo luogo:
sudo aptitude upgrade
Questo ha l'effetto di aggiornare i pacchetti che possono essere aggiornati senza richiedere la rimozione o l'installazione di altri pacchetti.
Si segua la procedura di aggiornamento minimo con:
sudo aptitude install initrd-tools
Questo passaggio aggiornerà automaticamente libc6 e locales.
Alcuni pacchetti comuni che ci si aspetta siano rimossi comprendono
base-config, hotplug, xlibs, netkit-inetd, python2.3, xfree86-common e xserver-common
Aggiornamento del kernel
A meno che il sistema abbia il task desktop installato, o altri pacchetti che causarebbero un numero inaccettabile di rimozioni di pacchetti, è dunque raccomandato che si aggiorni a questo punto il solo kernel.
Per procedere con questo aggiornamento del kernel, si esegua:
sudo aptitude install linux-image-2.6-`uname -r | cut -f 3 --delim='-'`
Aggiornamento del resto del sistema
Aggiornare aptitude:
sudo aptitude install aptitude
Aggiungere la chiave di debian volatile:
wget -O - http://volatile.debian.org/etch-volatile.asc | sudo apt-key add -
Aggiornare il database
sudo aptitude update
Reinstallare, se rimosso, apt-listchanges:
sudo aptitude install apt-listchanges
- Se c'è installato postfix aggiornarlo
sudo apt-get install postfix
- Se c'è installato sasl2bin, aggiornarlo
sudo apt-get install sasl2-bin
- Rimuovere libgssapi1-heimdal
sudo apt-get remove --purge libgssapi1-heimdal
Si è ora pronti per continuare con la parte principale dell'aggiornamento.
Controllare quali pacchetti saranno rimossi ed eseguire o meno:
sudo aptitude dist-upgrade
Se si hanno problemi, consultare: 4.5.8 Problematiche che potrebbero emergere durante l'aggiornamento
Installazione del metapacchetto del kernel
Allorché si effettua un dist-upgrade da sarge a etch, è fortemente raccomandato che si installi un nuovo metapacchetto linux-image-2.6-*. Tale pacchetto potrebbe essere installato automaticamente dal processo di dist-upgrade. Lo si può verificare eseguendo:
dpkg -l "linux-image*" | grep ^ii
Se non si vede alcun output, si dovrà installare un nuovo pacchetto linux-image a mano. Per vedere un elenco dei metapacchetti linux-image-2.6 disponibili, si esegua:
apt-cache search linux-image-2.6- | grep -v transition
Rieseguire lilo
Se si sta utilizzando lilo come bootloader (è il bootloader predefinito per alcune installazioni di sarge), si raccomanda vivamente di rieseguire lilo dopo l'aggiornamento:
sudo /sbin/lilo -v
Preparazione per il prossimo rilascio
Prima dell'aggiornamento vi sono diverse cose che si possono fare per preparare per il prossima rilascio.
- Se il nuovo metapacchetto dell'immagine del kernel è stato incluso come dipendenza del vecchio, esso sarà marcato come automaticamente installato, il che andrebbe corretto:
sudo aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
- Si rimuovano i metapacchetti di kernel di sarge con:
sudo aptitude purge kernel-image-2.6-<flavor>
- Si spostino i valori di configurazione del kernel da /etc/network/options a /etc/sysctl.conf.
- Si rimuovano i pacchetti obsoleti e non utilizzati come descritto in Pacchetti obsoleti, Sezione 4.9. Si dovrebbe controllare quali file di configurazione utilizzano e considerare l'opportunità di effettuare un "purge" dei pacchetti per rimuovere i loro file di configurazione.
Operazioni finali
Aggiornamento di grub
- Fare il backup del file di configurazione per le azioni di installazione del kernel:
sudo cp /etc/kernel-img.conf /etc/kernel-img.conf.dpkg-old
Creare la nuova configurazione:
cat | sudo tee /etc/kernel-img.conf > /dev/null <<EOFile do_symlinks = yes relative_links = yes do_bootloader = yes do_bootfloppy = no do_initrd = yes link_in_boot = no postinst_hook = /usr/sbin/update-grub postrm_hook = /usr/sbin/update-grub EOFile
- Controllare le differenze:
/tmp/confronta /etc/kernel-img.conf
- Aggiornare la configurazione di grub
sudo update-grub
Aggiornamento di amanda
Ci sono molti cambiamenti:
- amanda.conf
- amandahosts
- inetd.conf
- amanda-client.conf
Vedi Aggiornamento Amanda a Debian Etch
Aggiornamento di amavisd-new
cd /etc/amavis/ sudo mv amavisd.conf.disabled amavisd.conf.dpkg-old cd conf.d echo "croalliance.com" | sudo tee /etc/mailname > /dev/null
Controllare che
hostname --fqdn
restituisca il nome completo di dominio della macchina. Diversamente inserire il nome host in
/etc/hostname
Editare il file
sudoedit 15-content_filter_mode
togliere i commenti alle due righe
@bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
Completare l'instalazione
sudo apt-get install -f Reading package lists... Done Building dependency tree... Done 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 1 not fully installed or removed. Need to get 0B of archives. After unpacking 0B of additional disk space will be used. Setting up amavisd-new (2.4.2-6.1) ... Creating/updating amavis user account... addgroup: Starting amavisd: amavisd-new. localepurge: checking system for new locale ... localepurge: processing locale files ... localepurge: processing man pages ...
Aggiornamento di mdadm
mdadm necessita ora di un file di configurazione per l'assemblaggio di array MD (RAID) dal ramdisk iniziale e durante la sequenza di inizializzazione del sistema. Ci si accerti di leggere il file /usr/share/doc/mdadm/README.upgrading-2.5.3.gz e di leggere le istruzioni in esso contenute dopo l'aggiornamento del pacchetto e prima di riavviare. L'ultima versione di tale file è reperibile all'indirizzo http://svn.debian.org/wsvn/pkg-mdadm/mdadm/trunk/debian/README.upgrading-2.5.3?op=file; lo si consulti in caso di problemi.
Controllare che all'avvio partano tutti gli array
cat /etc/default/mdadm | grep INITRDSTART # INITRDSTART: INITRDSTART='all'
Controllare composizione ed UID degli array:
cat /etc/mdadm/mdadm.conf sudo mdadm --detail /dev/md0 | grep UUID sudo mdadm --detail /dev/md1 |grep UUID
Quando tutto è ok, togliere il file
sudo rm -f /var/lib/mdadm/CONF-UNCHECKED
Aggiornare initrd:
sudo update-initramfs -u -k all
Sistemazione SASL per Postfix
Mettere in /etc/default/saslauthd:
cat | sudo tee /etc/default/saslauthd > /dev/null <<EOFile # Settings for saslauthd daemon # # Should saslauthd run automatically on startup? (default: no) START=yes # Which authentication mechanisms should saslauthd use? (default: pam) # # Available options in this Debian package: # getpwent -- use the getpwent() library function # kerberos5 -- use Kerberos 5 # pam -- use PAM # rimap -- use a remote IMAP server # shadow -- use the local shadow password file # sasldb -- use the local sasldb database file # ldap -- use LDAP (configuration is in /etc/saslauthd.conf) # # Only one option may be used at a time. See the saslauthd man page # for more information. # # Example: MECHANISMS="pam" MECHANISMS="pam" # Additional options for this mechanism. (default: none) # See the saslauthd man page for information about mech-specific options. MECH_OPTIONS="" # How many saslauthd processes should we run? (default: 5) # A value of 0 will fork a new process for each connection. THREADS=5 # Other options (default: -c) # See the saslauthd man page for information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" # Note: See /usr/share/doc/sasl2-bin/README.Debian OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" EOFile
Attivazione dir_index per filesystem ext3
Attivare l'opzione
sudo tune2fs -O dir_index /dev/md0
Verificare che sia attiva
sudo tune2fs -l /dev/md0 | grep "Filesystem features" Filesystem features: has_journal ext_attr dir_index filetype needs_recovery sparse_super
Forare un chsck del filesystem al riavvio:
sudo tune2fs -C 9999 /dev/md0
Controllare che al riavvio si esegua
e2fsck -D /dev/md0
Aggiornamento manuale dei files di configurazione
Creare lo script:
cat > /tmp/confronta <<'EOFile' #!/bin/bash sudo vimdiff $1.dpkg-old $1 EOFile chmod +x /tmp/confronta
Usarlo come
/rmp/confronta /etc/nomefile