Upgrade del sistema con Yum

From FedoraProject

Jump to: navigation, search


Contents

Aggiornare Fedora usando Yum

Questa pagina descrive come eseguire un upgrade (avanzamento di versione) di Fedora usando Yum.

Sebbene gli aggiornamenti mediante yum siano stati testati e funzionano, gli aggiornamenti live non sono consigliati dal Fedora Project. Se non sei preparato ad affrontare e risolvere problemi per conto tuo se qualcosa va storto, dovresti preferibilmente utilizzare uno dei metodi di installazioni consigliati.
Nota del traduttore
Non tentare aggiornamenti di sistema live da versioni di Fedora molto vecchie. Leggi la pagina ciclo di vita, in cui puoi vedere quando il supporto a una versione viene abbandonato (al momento 1 mese dopo il rilascio di due versioni successive, ad esempio dopo un mese che è uscita F10, F8 va fuori manutenzione. Quando una versione viene messa fuori manutenzione, molto spesso i mirror rimuovono i file dei repositori, e i repositori ufficiali vengono spostati in http://archive.fedoraproject.org In altre parole, adesso che sta per uscire F11, personalmente ti sconsiglio di tentare aggiornamenti da versioni precedenti F7.


Il metodo di installazione raccomandato è quello mediante un supporto di boot contenente il programma Anaconda, come specificato nella guida all'installazione. PreUpgrade è un metodo di aggiornamento leggermente differente, attraverso cui tutti i pacchetti sono pre-scaricati prima che il sistema venga riavviato per l'esecuzione del programma di installazione Anaconda.

Quando si esegue un aggiornamento con yum, non si ottiene alcun aiuto dal programma di installazione Anaconda, ma con un po' di fortuna è possibile aggiornare sistemi - anche da remoto via ssh - senza aggravare il downtime. Tuttavia il sistema deve essere comunque riavviato per far si che vengano eseguiti il nuovo kernel e le librerie di sistema aggiornate, quindi al momento non è possibile azzerare completamente il tempo di fermo macchina. Il riavvio dopo un aggiornamento di questo tipo è sempre molto eccitante!

Disponendo di un'installazione tipica e seguendo i consigli qui riportati, l'aggiornamento live con yum si comporta correttamente nella stragrande maggioranza dei casi.

Come partecipare

Se stai eseguendo un upgrade usando Yum e riscontri un problema generale di dipendenze, lo puoi segnalare su http://bugzilla.redhat.com, ma prima leggi sia questa pagina sia tutte quelle linkate e cerca negli archivi della mailing list per assicurarti che non sia un problema già conosciuto. E ovviamente, aiutaci a mantenere questa pagina aggiornata.

Se desideri aiutare nello sforzo di rendere gli aggiornamenti live sempre più funzionali, entra a far parte del SIGs/LiveUpgrade Live Upgrade Special Interest Group.

Istruzioni per l'aggiornamento usando yum

0. Backup del sistema

Esegui il backup di tutti i dati personali su un disco esterno o un altro computer. Se si presenterà un errore irrecuperabile, tale da richiedere un'installazione fresca, non perderai i tuoi dati.

1. Leggi i problemi ricorrenti

In una sezione successiva di questa pagina c'è un elenco di problemi comuni relativi alle specifiche versioni. Alcuni di questi richiedono attenzione prima eseguire l'aggiornamento.

Consigli generali sull'aggiornamento di Fedora possono essere trovati alla pagina DistributionUpgrades. Dovresti inoltre leggere la guida all'installazione e le note di rilascio della versione verso cui intendi eseguire l'aggiornamento - questi documenti contengono importanti informazioni riguardo i problemi di aggiornamento. Infine, controlla l'elenco dei bug (F11).

2. Fai pulizia

Verifica ed elimina tutti i file .rpmsave e .rpmnew prima e dopo l'aggiornamento. (E se è abilitato selinux, ricorda di controllare il contesto di sicurezza se hai spostato file di configurazione in giro.)

Trovare i file di configurazione inutilizzati
Effettua il merge e risolvi le modifiche determinate dallo script seguente: for a in $(find /etc /var -name '*.rpm?*'); do diff -u $a ${a%.rpm?*}; done.

A questo punto è consigliabile rimuovere tutti i pacchetti non utilizzati - in particolare quelli non standard.

Trovare e verificare i pacchetti "inutilizzati"
Puoi determinare i pacchetti che non sono necessari per nessun altro pacchetto con il programma package-cleanup contenuto nel pacchetto yum-utils: yum install yum-utils; package-cleanup --leaves. Questi pacchetti sono ottimi candidati per la rimozione, ma prima verifica di non usarli direttamente o che non siano utilizzati da altre applicazioni non contenute in pacchetti rpm. Eliminali con il comando rpm -e nome-pacchetto-e-versione.
Trovare e verificare i pacchetti "perduti"
Puoi determinare i pacchetti orfani (cioè non più ospitati in nessun repositorio) con il comando: package-cleanup --orphans. Questo mostra inoltre i pacchetti che sono stati solo parzialmente disinstallati perchè sono incorsi in un errore durante l'esecuzione dello script "%postun" del pacchetto rpm.

Assicurati di aver installato il pacchetto yum-fastestmirror cosicchè yum utilizzi il mirror più veloce.

yum install yum-fastestmirror

Quindi elimina tutte le tracce della versione di Fedora di partenza dalla cache di yum, contenuta nella directory /var/cache/yum.

yum clean all

3. Cambia repositori

Aggiorna i pacchetti che determinano quali repositori vengono utilizzati da yum.

rpm -Uhv ftp://download.fedora.redhat.com/pub/fedora/linux/releases/<ReleaseNumber>/Fedora/<Arch>/os/Packages/fedora-release-*.noarch.rpm

(L'architettura non importa poichè questo è un pacchetto noarch.)

Assicurati che i file dei nuovi repositori non siano salvati come .rpmnew, per esempio:

mv /etc/yum.repos.d/fedora-updates.repo.rpmnew /etc/yum.repos.d/fedora-updates.repo
mv /etc/yum.repos.d/fedora.repo.rpmnew /etc/yum.repos.d/fedora.repo

Se accedi a repositori di terze parti, allora configurali perchè yum usi quelli specifici per la nuova versione di Fedora. Quando aggiorni da una versione di Fedora ad un'altra, spesso non c'è niente di necessario da fare; se invece aggiorni verso rawhide, molto spesso è necessario installare la versione rawhide degli rpm che impostano i repositori di terze parti.

Nota che probabilmente l'aggiornamento fallirà se ci sono dipendenze piuttosto datate derivanti da pacchetti non più presenti sui repositori, o per cui il repositorio ospitante non risulta pronto per la nuova versione di Fedora.

4. Lancia l'aggiornamento

Se selinux è configurato, assicurati che sia impostato in modalità permissive - né disabilitato nè enforcing.

Eseguire l'aggiornamento fuori dalla modalità grafica è una buona idea. Disconnetti il tuo utente dal desktop grafico e accedi ad una console testuale:

ctrl + alt + F2

fai login come root, e passa al runlevel 3:

telinit 3
Quando un processo di aggiornamento live è iniziato, non lo interrompere riavviando, facendo kill del processo o mediante nessun altro metodo finchè non è completato, altrimenti il sistema si ritroverà in uno stato inconsistente. Parzialmente costituito dal vecchio rilascio e parzialmente dal nuovo. In questo stato il sistema non sarà stabile e non opererà correttamente. Quando ciò accade, l'unico modo per recuperare la situazione è iniziare una nuova installazione.
Aggiornare i pacchetti importanti per primi
È possibile cercare di aggiornare gli strumenti di gestione pacchetti per primi con il comando yum update rpm\* yum\*. Un'altra idea è inizare l'aggiornamento con glibc. In entrambi i casi la risoluzione delle dipendenze potrebbe comunque espandere la lista dei pacchetti da aggiornare ad un aggiornamento quasi completo. D'altra parte, un aggiiornamento completo potrebbe essere più sicuro. I risultati saranno diversi da caso a caso. (In particulare, non aggiornare rpm e yum separatamente se il sistema da aggiornare deve passare tra diverse versioni di python, per esempio da 2.4 a 2.5.)

Aggiorna tutti i pacchetti con il comando:

yum upgrade

yum potrebbe lamentarsi circa conflitti tra pacchetti o requisiti mancanti. Ciò dipende probabilmente dal fatto che sono in uso repositori non standard o sono stati installati pacchetti non standard manualmente. Prova a determinare quali pacchetti causano il problema (o almeno che fanno parte della catena di dipendenze) - disinstallali e riprova. Ricorda di installare quei pacchetti nuovamente dopo l'aggiornamento, se sono essenziali.

Assicurati che tutti i (nuovi) pacchetti essenziali della nuova versione siano installati con:

yum groupupdate Base

Potresti voler aggiornare anche altri gruppi; vedi per l'elenco dei gruppi:

yum grouplist

Per esempio:

yum groupupdate "GNOME Desktop Environment" \
"Development Tools" "Server Configuration Tools" \
"Hardware Support" "Sound and Video" \
"Graphical Internet" "Fonts" \
"Games and Entertainment" "Printing Software" \
"Administration Tools" "Office/Productivity" "System Tools"

5. Preparare il riavvio

Prima di riavviare dovresti normalmente installare il bootloader della nuova versione di grub, eseguendo:

/sbin/grub-install BOOTDEVICE

- dove BOOTDEVICE è di solito /dev/sda (Se riscontri l'errore /dev/sda does not have any corresponding BIOS drive come output del comando, allora prova /sbin/grub-install --recheck /dev/sda.)

Inoltre, l'ordine degli script di init potrebbe essere stato modificato dalla versione precedente. Un comando per resettare l'ordine è:

cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done

Esegui nuovamente package-cleanup --orphans per determinare i pacchetti che non sono stati aggiornati.

Note specifiche di versione

Da un prerilascio

Se sta eseguendo un aggiornamento da a versione alpha, beta, preview o da un altro rilascio Rawhide, fai riferimento alla pagina [Upgrading_from_pre-release_to_final| Upgrading from pre-release to final].

Fedora 11 -> Rawhide (Fedora 12)

Fedora 10 -> Fedora 11


Fedora 9 -> Fedora 10

Fedora 8 -> Fedora 9

Fedora 7 -> Fedora 8

yum groupinstall sound-and-video gnome-desktop (se stai usando Gnome)
yum groupinstall sound-and-video kde-desktop (se stai usando KDE)
yum install libflashsupport paman padevchooser
rpm -e --noscripts avahi-0.6.17-1.fc7
yum erase dbus.i386
yum shell
> erase dbus.i386
> update
> run
yum erase kde{accessibility{,-devel},base,edu,graphics,multimedia{,-extras},network,sdk,utils{,-devel},webdev}.i386
yum erase beryl\*


Fedora Core 6 -> Fedora 7

Fedora Core 5 -> Fedora Core 6

Fedora Core 4 -> Fedora Core 5

Fedora Core 3 -> Fedora Core 4

Problemi:

yum update kernel
reboot
yum remove kernel-2.6.11\*FC3\*
yum upgrade
reboot

Reading repository metadata in from local files significa che c'è troppa confusione nel rpmdb e ci vuole tempo per venirne fuori. Controlla quanti kernel sono installati: rpm -q kernel kernel-smp e rimuovi quelli più vecchi. Esegui anche: rpm --rebuilddb, potrebbe aiutare.

yum remove perl.i386
TODO: Add list of bonobo i386 packages to remove here

koffice è stato rimosso da Fedora Core e non spostato nel repo extras - in pratica non c'è modo per completare un aggionamento a FC4 senza eliminarlo; esegui:

yum remove koffice

e l'aggiornamento dovrebbe procedere.

Sembra relativo al bug 155730 -- Forse un aggiornamento del pacchetto "rpm-4.3.3-3.0.fc3" potrebbe risolvere il problema. Pessima soluzione (deve essere esguita come root):

: > /var/log/lastlog
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID db42a60e
public key not available for <some_package>
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

The GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora (0x4F2A6FD2)
is already installed but is not the correct key for this package.
Check that this is the correct key for the "Fedora Core 4 - i386 - Base" repository.

Apri e modifica /etc/yum.repos.d/fedora.repo sostituendo la linea:

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

con:

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
diskspacecheck=0
</code> in <code>/etc/yum.conf</code>.
Fai attenzione perchè la transazione RPM richiede temporaneamente molto spazio su disco (molto più di quello che potresti immaginare).
Non dimenticare di eliminare l'opzione dopo l'esecuzione dell'avanzamento.

* Yum si lamenta perchè ci sono conflitti nel pacchetto GCC e il sistema è stato aggiornato a partire da Fedora Core 1. Rimuovi il pacchetto gcc32:
<pre>
sudo rpm -e gcc32
sudo depmod -ae -F /boot/System.map-[la tua versione del kernel <code>uname -a</code>] 

Fedora Core 2 -> Fedora Core 3

Visita questa pagina per tutte le informazioni necessarie: http://linux.duke.edu/~skvidal/misc/fc2-fc3-update-with-yum.txt (in inglese).

Fedora Core 1 -> Fedora Core 2

Accontentati di eseguire l'aggiornamento con Anaconda - ti risparmierai un sacco problemi. Ma se sei veramente convinto a provare, ci sono gli utili consigli di Seth Vidal a questa pagina: http://linux.duke.edu/~skvidal/misc/fc1-fc2-yum-hints.txt (in inglese).