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
- Fedora 7 replaces the old IDE subsystem with libata. Drive device names which previously started /dev/hd.. will become /dev/sd.. after the upgrade. /dev/hda1 will usually become /dev/sda1, although there may not be a direct relationship between the old and new device names (for example hdd does not necessarily become sdd). Before you reboot be sure to change all references to /dev/hd.. in your config, especially /etc/fstab - where it however may be simpler to refer to filesystems by label (check out the programs blkid, tune2fs, and mlabel). LVM Volume names are not affected. In /boot/grub/device.map change /dev/hd.. to /dev/sd.. before running grub-install - and don't change (hd0). Changing /boot/grub/grub.conf may also be required.
- The libata layer represents all hard disks as SCSI disks, which are limited to 15 partitions in the kernel. IDE hard disks with more than 15 partitions are not supported in Fedora 7.
- On a system which has been upgraded from releases prior to FC6 you may need to remove up2date and rhnlib
rpm -e rhnlib up2date
- If you see the message
package gpm-1.20.1-84.fc6 (which is newer than gpm-1.20.1-83.fc7) is already installed
when performing ayum update
uninstall and reinstall the gpm package.
- If you had installed Suns jre it might be removed during upgrade. Be aware that
jre-6u1
/jre-1.6.0_01-fcs
requirescompat-libstdc++-33
.
- If you get
Error: Missing Dependency: python(abi) = 2.4 is needed by package libxml2-python
and/orError: Missing Dependency: python(abi) = 2.4 is needed by package rpm-python
during youryum upgrade
ensure you have done ayum clean all
and check that both thebase
andupdates
repositories are available from your mirror. You will need theupdates
repo for the upgrade to succeed.
- Since Fedora Core 6 uses python 2.4 and Fedora 7 uses python 2.5, do not try and run
yum upgrade yum\* rpm\*
before upgrading everything else - this succeeds but leaves yum in an unusable state.
Fedora Core 5 -> Fedora Core 6
- After upgrading, you cannot use the DVD ISO loopback mounted as a repository directly (e.g. no
baseurl=file:///mnt/fc6/
) because the repodata files contain URLs of typemedia://
which yum can't handle. You can use the loopback-mounted DVD for the initial upgrade from FC5 -> FC6, just not thereafter. After removing thebaseurl=file:///
option from yourfedora-core.repo
file, remember toyum clean all
.
Fedora Core 4 -> Fedora Core 5
- Before upgrading update your kernel first.
- Make sure you have the latest kernel ABOVE 2.6.14 and uninstall all kernel versions before it, otherwise initscripts and a few other packages will conflict and prevent the ugprade. Use something like the command below
- Install
fedora-release
in the Fedora Core 5 version. Check our mirror sites for a faster download.
- Update your system
- After upgrading, selinux permissions may be incorrect, causing interesting failures such as metacity not starting. As suggested below, to fix this, run
touch /.autorelabel
and reboot
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
Go here for most of this info: http://linux.duke.edu/~skvidal/misc/fc2-fc3-update-with-yum.txt
Fedora Core 1 -> Fedora Core 2
Just Upgrade using anaconda - save yourself a world of pain. But if you really want to try, there's these hints by Seth Vidal: http://linux.duke.edu/~skvidal/misc/fc1-fc2-yum-hints.txt