Upgrading from EOL Fedora using yum

From FedoraProject

Jump to: navigation, search
Note.png
Read Upgrading Fedora using yum as well
This page is an addendum to Upgrading Fedora using yum. It contains the problems you might encounter running yum update between specific EOL Fedora releases. Please be sure to read Upgrading Fedora using yum for an overview of the entire process as well as notes on upgrading from the oldest supported release to the current release.

Contents

(Legacy) Instructions to upgrade using yum

1. Back up your system

Back up any personal data to an external hard drive or to another machine. If there is some unrecoverable error that requires a fresh install, you don't want to lose any data.

2. Read about common problems

Further down in this page there is a list of common problems for specific versions. Some of them require attention before the upgrade.

General advice on upgrading Fedora can be found on the Upgrading page. You should also read the Installation Guide and Release Notes for the version you plan to upgrade to - they contain important information regarding upgrading issues. Finally, check the list of Common F16 bugs.

3. Clean Stuff

Review and remove all .rpmsave and .rpmnew files before and after upgrading. (And if you have selinux enabled then remember to check security context if you move config files around.)

Idea.png
Find unused config files
Merge and resolve the changes found by the following script: for a in $(find /etc /var -name '*.rpm?*'); do diff -u $a ${a%.rpm?*}; done

Now is a good time to remove packages you don't use - especially non-standard packages.

Idea.png
Find and review "unused" packages
You can find packages not required by other packages with the tool package-cleanup from the yum-utils package: yum install yum-utils; package-cleanup --leaves. These packages could be candidates for removal, but check to see whether you use them directly or if they are used by applications not backed by rpm packages. Remove them with yum remove package-name-and-version.
Another useful tool for cleaning up unused packages is rpmreaper. It's an ncurses application that lets you view rpm dependency graph and mark packages for deletion. Marking one package can make other packages leaf, which you can see immediately, so you don't have to run the tool several times to get rid of whole sub-tree of unused packages. Install with: yum install rpmreaper.
Idea.png
Find and review "lost" packages
You can find orphaned packages (ie packages not in the repositories anymore) with: package-cleanup --orphans. This will also show packages which have been partially uninstalled but where the "%postun" script failed.

Then remove all traces of the version you are leaving from the yum cache in /var/cache/yum.

yum clean all

4. Switch repositories

Update the packages that decide which yum repositories to use.

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

(The architecture doesn't matter for this noarch package.)

For archived versions of Fedora (e.g., from 10 included downwards):

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


Note: Some users have reported that attempting to download through rpm returns a 550 response and "transfer failed" messages. If this is the case, you can download the rpms and install locally. Consider:

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

For archived versions of Fedora (e.g., from 10 included downwards):

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

Make sure the new repo files isn't placed as .rpmnew files, perhaps by

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

If you have 3rd party repositories configured, you may need to adjust them for the new Fedora version. If you switch from one Fedora release to another there is often nothing that needs to be done. If you switch to Rawhide from a standard Fedora release (or vice versa) then most of the time you will need to install the Rawhide release RPMs from the 3rd party repository as well (or the standard ones, if switching back).

Note that the upgrade is likely to fail if there are outdated dependencies from packages not backed by a yum repository or backed by a repository which isn't ready for the new version.

5. Do the upgrade

If using selinux make sure it is in permissive mode - neither disabled nor enforcing.

It is a good idea to do the upgrade outside the graphical environment. Log out of your graphical desktop and then go to a text console

ctrl + alt + F2

log in as root, and go into runlevel 3

telinit 3
Warning (medium size).png
Once a live upgrade is started do not stop the upgrade by rebooting, killing the process, or by any other method until it is complete, doing so will cause the affected system to be in a mixed state. Partially the old release and partially the new release. In this state the system will not be reliable and will not operate as expected. The only way to recover from this is to reinstall if it occurs.
Idea.png
Update all packages at once
Although you can try to update the update machinery first with yum update rpm\* yum\* or with glibc, in both cases dependencies might expand it to an almost full upgrade anyway, and simply doing a full upgrade might be more safe (but your mileage may vary). (In particular, do not upgrade rpm and yum separately if upgrading to a system with a different version of python e.g. 2.4 to 2.5.)

Upgrade all packages with

yum upgrade

yum might complain about conflicts or requirements. That is probably because you have used non-standard repositories or installed non-standard packages manually. Try to guess which packages cause the problem (or at least is a part of the dependency chain) - uninstall them and try again. Remember to install the packages again if they are essential.

Ensure that all (new) essential packages from the new version are installed with

yum groupupdate Base

You might want to update other groups too, see

yum grouplist

For example

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"

6. Preparing for reboot

Before booting you should usually install the bootloader from your new grub by running

/sbin/grub-install BOOTDEVICE

- where BOOTDEVICE is usually /dev/sda (If you get an error '/dev/sda does not have any corresponding BIOS drive' from that, then try /sbin/grub-install --recheck /dev/sda.)

Also, the order of init scripts could have changed from the previous version. A command to reset the order is:

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

Again, run package-cleanup --orphans to find packages that haven't been upgraded.

Version specific notes for EOL releases

Fedora 12 -> Fedora 13

First install the new fedora 13 gpg key. You may wish to verify this package against https://fedoraproject.org/keys and the fedora ssl certificate.

rpm --import https://fedoraproject.org/static/E8E40FDE.txt

Upgrade all packages with

yum update yum
yum clean all
yum --releasever=13 distro-sync

Fedora 11 -> Fedora 12

Fedora 11 -> Fedora 12

Fedora 10 -> Fedora 11

yum update rpm
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </metalink>/

This is 498720. Workaround is to manually edit the URL in /etc/yum.repos.d/fedora.repo as described at https://www.redhat.com/archives/fedora-list/2009-June/msg00783.html

Fedora 9 -> Fedora 10

Fedora 8 -> Fedora 9

Fedora 7 -> Fedora 8

yum groupinstall sound-and-video gnome-desktop (if you are using Gnome)
yum groupinstall sound-and-video kde-desktop (if you are using 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

yum update yum

Problems:

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

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.

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

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.

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
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
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
sudo depmod -ae -F /boot/System.map-[your <code>uname -a</code> kernel version here] 

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