2007-11-20
A lesson learned: Always upgrade Fedora with a respin CD
I spent a large part of today upgrading my office workstation from Fedora Core 6 to Fedora 7 (I wanted to go straight to Fedora 8, but either I am too impatient or the Fedora 8 installer stalled during dependency resolution). As usual, I did this by sticking in the Fedora 7 DVD and telling it to do an upgrade install.
The problem with this is simple: an up to date machine running an old Fedora can have more recent versions of packages than are on the install media for the newer Fedora.
(For example, Fedora 7 shipped with RPM version 4.4.2; a current Fedora Core 6 machine has RPM version 4.4.2.1.)
Because such RPMs are 'more recent' than the packages on Fedora 7's
install DVD, the Fedora installer did not update them, despite the fact
that they were packages for Fedora Core 6. The result left my system in
a peculiar and awkward half-updated state, with some packages built for
Fedora Core 6 and others built for Fedora 7, and any number of things
broke (including yum
).
(I eventually managed to dig myself out of this. It was enlivened by the
fact that any number of Fedora 7 RPMs haven't been rebuilt since Fedora
Core 6, and so still have .fc6
in their version numbers.)
Ultimately this happens because Fedora freezes their DVD images when the release is made, and feels free to update previous releases with current package versions (instead of freezing the version and backporting fixes). As time goes by, this allows an old release to leapfrog the version of the package that is burned into the DVD image. I believe that the way around this is to upgrade using a Fedora 7 re-spin from the Fedora Unity people; these are updated DVD images that include the current updates, and so most everything on them should be seen as 'more recent' than your current packages.
(Unfortunately my machine is an x86_64 one, and x86_64 re-spins are 'currently provided for testing only'. A very large download over DSL may be in my home machine's future.)
The overall moral I draw from this is that it is now necessary to upgrade to each new Fedora release more or less when it comes out, instead of sitting on the upgrade until I feel like it.
(Alternately, the moral is that I should stop being afraid to do
upgrades with yum
. A
yum
based upgrade avoids this problem because it draws packages from
both the baseline release repository and the updates repository.)