[olug] upgrading to Fedora 20 via yum
Lou Duchez
lou at paprikash.com
Mon Dec 30 18:18:05 UTC 2013
New Fedora, time to upgrade the servers again, using yum.
Fedora comes with a utility called "fedora-upgrade", it's a script that
does all the recommended and required steps. It works well, but
personally I have stopped using it: there is one drawback to the script,
and that is it tries to update everything all at once in one
uninterrupted (and uninterruptible) process. In theory that's great! I
updated one of my servers successfully that way. But the next server
went kind of disastrous, because I was SSH'd into the box to do the
update, and the network connection dropped in the middle of it all,
making a big mess.*
So I have updated the rest of my servers the old way, and it's been just
fine. Steps:
1) Visit http://fedoraproject.org/wiki/YumUpgradeFaq to see what
notes and instructions they have.
2) "yum update" followed by "yum clean all" to make sure your server
is as up-to-date as it can be.
3) "yum --releasever=[version] update kernel yum* rpm* ssh* grub*" to
upgrade the bare minimum to have a functioning system that you can SSH
onto. The point is to reduce the window in which the system can get
into a corrupted, confused state.
4) "/sbin/grub2-install /dev/[whichever drive contains your MBR]" to
make sure you can boot to the new version. I don't know if this step is
strictly necessary, but it's more likely to help than hurt. (To figure
out which drive contains your MBR, run "df | grep /boot"; if it comes
back with "/dev/sda1 ", the drive is "sda".)
5) "yum --releasever=[version] groupupdate 'Minimal Install'", just
in case anything important got missed in step 3.
6) Reboot. Say prayers until it comes back up.
7) "yum --releasever=[version] distro-sync" to update the rest of
everything. This could take a while, but even if it goes all peculiar
because of an unexpected interruption, you probably still have a working
system, running a mishmash of version 19 and version 20 packages.*
*: So, how do you fix it if yum gets interrupted and gets all confused
about what packages you have and what packages you need? There are a few
strategies to try:
- " yum-complete-transaction "
- " package-cleanup --cleandupes "
- "rm -f /var/lib/rpm/__db.*; rpmdb --rebuilddb; yum clean all; yum
check-update "
But if you still have a ton of duplicate packages and output lines like
"bbbbb is a duplicate with aaaaa", you're going to have to remove the
duplicates by hand. Fortunately, "by hand" can mean so many things.
Run this command:
"yum check duplicates | awk '/is a duplicate/ {print $6}' > /tmp/DUPES"
This will put into /tmp/DUPES a list of all the "aaaaa" package names.
(If you want to get a list of all the "bbbbb" names, use "$1" instead of
"$6".) Then run:
"yum remove `cat /tmp/DUPES`"
Or if that's too many files and you want to remove a subset -- say,
everything from "a" thru "c" -- run this instead:
"yum remove `grep ^[a-c] /tmp/DUPES`"
More information about the OLUG
mailing list