Aggiornare Fedora usando Yum
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 (F10).
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.)
A questo punto è consigliabile rimuovere tutti i pacchetti non utilizzati - in particolare quelli non standard.
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 queli 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
Aggiorna tutti i pacchetti con il comando:
yum upgrade
yum
potrebbe lamentarsi circa conflitti tra pacchetti o requisiti mancanti. Ciò dipende probabilmente perchè sono in uso repositori non standard o sono stati installati pacchetti non standard manualmente. Prova a determinare quali pacchetti causano il problema (o almeno 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 usualmente 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 init scripts 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
Fedora 10 -> Fedora 11 (non ancora stabile)
- L'aggiornamento diretto da fedora 9 a Fedora 11 non è possibile, poichè verrà ritornato un errore di dipendenze irrisolte correlato a
rpmlib(FileDigests)
. È necessario aggiornare prima a Fedora 10 (includendo tutti gli aggiornamenti di Fedora 10), e quindi procedere all'aggiornamento a Fedora 11. - Assicurati che tutti gli aggiornamenti di Fedora 10 siano applicati prima di aggiornare il sistema a Fedora 11, altrimenti potresti incorrere in un errore di risoluzione dipendenze inerente
rpmlib(FileDigests)
. - Secondo quanto riportato da Dave Jones del Fedora kernel team, gli utenti che aggiornano da Fedora 10 -> 11 e che non hanno un kernel PAE installato, verranno portati a usare un kernel per 586. fai riferimento a questo post sul suo blog per maggiori dettagli. Se i flag visibili nel file
/proc/cpuinfo
contengonopae
, dovresti installare e utilizzarekernel-PAE.i686
.
Fedora 9 -> Fedora 10
- Controlla la guida all'installazione di Fedora 10 e le note di rilascio di Fedora 10.
- I pacchetti
fedora-release
si trovano inrpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm
- GDM viene eseguito di default sulla tty1, non la tty7.
- Anaconda fa ora riferimento per default ai dispositivi criptati per UUID, non per nome, al fine di gestire meglio le modifiche ai nomi dei dispositivi. Un dispositivo criptato che usa la partizione
/dev/sda1
e con UUID12345678-1234-1234-1234-123456789012
verrà ora chiamato/dev/mapper/luks-12345678-1234-1234-1234-123456789012
invece di/dev/mapper/luks-sda1
. Potresti voler eseguire queste modifiche sul tuo sistema prima dell'aggiornamento; se lo fai, assicurati di eseguiremkinitrd
subito dopo. - Se sono in uso dispositivi criptati non-root, sarà necessario eseguire
mkinitrd
per ogni kernel precedente che si vuole abilitare all'avvio sul sistema aggiornato. - Sono stati riportati problemi con Pidgin:
pidgin-2.5.2-2.fc9.i386 from installed has depsolving problems - Error: Missing Dependency: libedataserver-1.2.so.9 is needed by package pidgin-2.5.2-2.fc9.i386 (installed)
- la soluzione è disinstallare Pidgin.
Fedora 8 -> Fedora 9
- Controlla la sezione installazione delle note di rilascio.
- A seguito di "the incident", dovresti usare pacchetti fedora-release aggiornati:
rpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/updates/9/i386.newkey/fedora-release-*.noarch.rpm
- Non dovresti aggiornare a Fedora 9 un sistema in esecuzione come host
xen
. [1] - L'aggiornamento del pacchetto thunderbird fallirà . Attualmente la soluzione al problema è
yum remove thunderbird; yum install thunderbird
. - Se stai aggiornando a Fedora 9 e utilizzi
emacs
, devi prima aggiornare alla più recente versione diemacs
della versione di Fedora precedente per garantire un aggiornamento pulito. Gli utenti di Fedora 8 devono avereemacs-22.1-10.fc8
o successivi, mentre quelli di Fedora 7 devono avereemacs-22.1-7.fc7
. Il bug report è qui. - Per via del passaggio da <ocde>sysvinit a Upstart, è consigliato che gli utenti che eseguono un aggiornamento live a Fedora 9, riavviiano il sistema subito dopo. Se il sistema non può essere riavviato, prendi attentamente nota dei file
/etc/inittab.rpmsave
o/etc/inittab.rpmnew
. Durante il riavvio seguente un aggiornamento sii consapevole che sysvinit, che è stato usato per avviarlo, non può essere più usato per arrestarlo. - Potresti trovarti nella situazione di non poter più fare login in GNOME dopo l'aggiornamento. Se questo è il caso, usa [ctrl-alt-F1] per accedere al prompt dei comandi, e controlla con
tail
il file.xsession-errors
. Se trovi un commento tipo "(named color or font does not exist)", allora è possibile risolvere il problema leggendo quanto riportato qui.
Fedora 7 -> Fedora 8
- I nuovi pacchetti di pulseaudio e per il supporto a flash devono essere installati manualmente:
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
- Il pacchetto avahi di Fedora 7 fallisce la disinstallazione; rimuovilo manualmente con il comando:
rpm -e --noscripts avahi-0.6.17-1.fc7
- Sulle architetture a 64 bit (x86_64) potrebbe essere necessario rimuovere alcune librerie a 32 bit. Per esempio dbus:
yum erase dbus.i386
- Potresti trovare vantaggioso eseguire assieme questi comandi in una singola transazione usando la shell di yum:
yum shell > erase dbus.i386 > update > run
- Un sacco di pacchetti di KDE non sono più multilib in Fedora 8. Se sei su x86_64, dovrai rimuovere manualmente le versioni a 32 bit di questi pacchetti, in questo modo:
yum erase kde{accessibility{,-devel},base,edu,graphics,multimedia{,-extras},network,sdk,utils{,-devel},webdev}.i386
- Altri vari pacchetti come Beryl non fanno più parte di Fedora 8 e sono obsoleti:
yum erase beryl\*
Fedora Core 6 -> Fedora 7
- In Fedora 7 il vecchio sottosistema IDE viene sostituito da libata. I nome dei dispositivi che precedentemente iniziavano per
/dev/hd..
diventeranno/dev/sd..
dopo l'aggiornamento. /dev/hda1 solitamente diventerà /dev/sda1, anche se potrebbe non esserci una diretta relazione tra il vecchio e il nuovo nome del dispositivo (per esempio hdd non necessariamente viene rinominato in sdd). Prima del riavvio assicurati di modificare tutti i riferimenti a /dev/hd.. nella configurazione, in particolare nel file/etc/fstab
- dove ad ogni modo è sempre più semplice referenziare i filesystem per etichetta (dai un'occhiata ai programmiblkid
,tune2fs
emlabel
). I nomi di volumi LVM non sono interessati da questa modifica. Nel file/boot/grub/device.map
cambia /dev/hd.. in /dev/sd.. prima di eseguiregrub-install
- mentre non devi modificare(hd0)
. La modifica del file/boot/grub/grub.conf
potrebbe essere necessaria.
- Il layer libata espone tutti gli hard disk come dischi SCSI, che sono limitati a massimo 15 partizioni dal kernel. Hard disk IDE con più di 15 partizioni non sono supportati da Fedora 7.
- Nei sistemi che sono stati aggiornati da versioni precedenti a FC6, potrebbe essere necessario rimuovere up2date e rhnlib:
rpm -e rhnlib up2date
- Se ottieni il messaggio
package gpm-1.20.1-84.fc6 (which is newer than gpm-1.20.1-83.fc7) is already installed
durante l'esecuzione diyum update
, rimuovi e reinstalla il pacchetto gpm.
- Se sono state installate JRE di Sun, potrebbero venire rimosse durante l'aggiornamento. Ricorda che
jre-6u1
/jre-1.6.0_01-fcs
necessita dicompat-libstdc++-33
.
- Se ottieni il messaggio
Error: Missing Dependency: python(abi) = 2.4 is needed by package libxml2-python
e/oError: Missing Dependency: python(abi) = 2.4 is needed by package rpm-python
durante l'esecuzione diyum upgrade
, assicurati di aver lanciatoyum clean all
e controlla che i repositoribase
eupdates
siano disponibili nel mirror selezionato. Il repositorioupdates
è necessario per il successo dell'aggiornamento.
- Poichè Fedora Core 6 usa python 2.4 e Fedora 7 usa python 2.5, non tentare di eseguire
yum upgrade yum\* rpm\*
prima di aggiornare qualsiasi altra cosa - il comando termina con successo ma lascia yum in uno stato inconsistente.
Fedora Core 5 -> Fedora Core 6
- Dopo l'aggiornamento, non potrai utilizzare direttamente l'ISO DVD come repository montato sul loopback (in altre parole, niente
baseurl=file:///mnt/fc6/
) poichè i file dei repositori contengono URL del tipomedia://
, che yum non può gestire. Puoi usare il DVD montato sul loopback per l'aggiornamento iniziale FC5 -> FC6, ma non dopo di questo. Dopo la rimozione dell'opzionebaseurl=file:///
dal filefedora-core.repo
, ricorda di eseguireyum clean all
.
Fedora Core 4 -> Fedora Core 5
- Prima di eseguire l'aggiornamento del sistema, aggiorna il kernel.
- Assicurati di avere il kernel più recente, 2.6.14 o superiore, e disinstalla tutte le altre versioni di kernel presenti, altrimenti gli initscript e qualche altro pacchetto andranno in conflitto e faranno fallire l'aggiornamento.
- Installa
fedora-release
nella versione Fedora Core 5. Dai un'occhiata ai mirror per scaricare più rapidamente.
- Aggiorna il sistema
- Dopo l'aggiornamento, i permessi selinux potrebbero non essere corretti, causando interessanti malfunzinoamenti come ad esempio metacity che non si avvia. Come suggerito più avanti, per risolvere il problema, lancia
touch /.autorelabel
e riavvia.
Fedora Core 3 -> Fedora Core 4
- make sure you're on the latest version of yum for FC3:
yum update yum
- Download fedora-release for FC4:
- wget http://yourmirrorhere/pub/fedora/linux/core/4/$yourarch/os/Fedora/RPMS/fedora-release-4-2.noarch.rpm
rpm -Uvh /path/to/fedora-release-4-2.noarch.rpm
- yum update ( This will start the upgradation process to FC4)
- Once you have updated, run:
yum groupinstall "GNOME Desktop Environment"
(change GNOME to KDE if appropriate). That'll get you some new packages that were added in FC4 like Evince and NetworkManager. - Some new groups were added -
yum grouplist
- check out Eclipse and Java Development in particular.
Problems:
- Postgres database in FC4 has a newer incompatible format from the previous versions. Manual dump and restoration is required if you using this database. Look at the postgres documentation for more details on this.
- kernel requires kernel-utils (or vice-versa) run:
yum update kernel reboot yum remove kernel-2.6.11\*FC3\* yum upgrade reboot
- Takes forever and a day and hangs at:
Reading repository metadata in from local files
This means you have too much crap in your rpmdb and it's taking a while to go through it. Check out how many kernels you have installed: rpm -q kernel kernel-smp and remove the old ones you may also try running: rpm --rebuilddb and see if it helps any. I've found that removing old kernels and rebuilding the rpmdb helped this problem.
- x86_64 upgrade requires removal of certain i386 packages before update
yum remove perl.i386 TODO: Add list of bonobo i386 packages to remove here
- Error: Missing Dependency: libpython2.3.so.1.0 is needed by package koffice
koffice was removed from Fedora Core and not moved to extras - so there's no way to complete an upgrade to FC4 without removing it. run:
yum remove koffice
then your update should complete.
- x86_64 systems seems to hang during "Running Transaction Test"
Seems related to Bug 155730 -- Maybe a update to the "rpm-4.3.3-3.0.fc3" (currently in updates-testing) might solve this. Ugly workaround (to be done as root):
: > /var/log/lastlog
- GPG check fails with this message :
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.
Edit /etc/yum.repos.d/fedora.repo and replace the line
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
with:
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
- SELinux gets messed up. I had to redownload the selinux-policy-targeted RPM from my mirror, do a forced uninstall of the old package, clean out the .rpmnew and .rpmsave files then install the new policy. Then I had to run "/sbin/fixfiles relabel" and wait. If I didn't do that, I found I couldn't log in.
- If SELinux does give you problems, it can be disabled on bootup by pressing "a" on the grub bootup menu, then adding "enforcing=off" to the arguments list.
- RPM complains about missing diskspace, but there is a lot free. If you are really sure your diskspace is enough, set
diskspacecheck=0 </code> in <code>/etc/yum.conf</code>. The RPM transaction will need a lot of diskspace temporarily (much more than one might think), so be careful. Don't forget to remove that later after the upgrade. * Yum complains about files conflicting in the GCC package. This system was upgraded from Fedora Core 1. Remove the gcc32 package: <pre> sudo rpm -e gcc32
- Some of your modules don't load after the upgrade. When you investigate modprobe doesn't work as expected. Run depmod:
sudo depmod -ae -F /boot/System.map-[your <code>uname -a</code> kernel version here]
- Yum has been reported to be hanging after upgrading. Updating the pysqlite package might fix it.
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).