I've been doing a number of upgrades of Fedora Core recently, and was semi-disappointed with how slow the upgrade process from DVD was. On every upgrade, it had to first install well over 1000 packages from DVD, and to finish it off with a "yum update" after the upgrade, at least another 1000 packages upgraded again. I decided for my next upgrade to do an update on the live system, using yum directly. I decided to follow the excellent upgrade instructions from the Fedora project, and it worked surprisingly well (and much, much faster). On top of that, I also cleaned out some groups that I no longer thought were necessary.
Here's the quick summary of the commands I ran:
# Run an update first, just in case yum update # Cleanup/merge config updates yum install rpmconf rpmconf -a # Find and review unused packages yum install yum-utils package-cleanup --leaves # Now yum remove the packages you think should be removed # Find and review lost packages package-cleanup --orphans # Cleanup yum clean all # Do the upgrade, preferably in run-level 3 (no GUI) # For FC13 -> 14 upgrade rpm --import https://fedoraproject.org/static/97A1071F.txt # For FC14 -> 15 upgrade rpm --import https://fedoraproject.org/static/069C8460.txt # For FC15 -> 16 upgrade rpm --import https://fedoraproject.org/static/A82BA4B7.txt # For FC16 -> 17 upgrade rpm --import https://fedoraproject.org/static/10D90A9E.txt # For FC17 - > 18 upgrade rpm --import https://fedoraproject.org/static/DE7F38BD.txt # For FC18 - > 19 upgrade rpm --import https://fedoraproject.org/static/FB4B18E6.txt # For FC19 -> 20 upgrade rpm --import https://fedoraproject.org/static/246110C1.txt yum update yum # The following steps are a bit different than Fedora recommendations, they # say to run the updates with --skip-broken. But I don't like it. yum check # and then resolve any duplicates. When running the following, you will get # conflicts, resolve those by uninstalling the offending packages. # For FC13 -> 14 yum --releasever=14 distro-sync # For FC14 -> 15 yum --releasever=15 distro-sync yum groupupdate Base # For FC15 -> 16 yum --releasever=16 --disableplugin=presto distro-sync yum groupupdate Base # For FC16 -> 17 yum --releasever=17 --disableplugin=presto distro-sync yum groupupdate Base # For FC17 -> 18 yum --releasever=18 --disableplugin=presto distro-sync yum groupupdate Base # For FC18 -> 19 yum --releasever=19 --disableplugin=presto distro-sync yum groupupdate Base # For FC19 -> 20 yum --releasever=20 --disableplugin=presto distro-sync yum groupupdate Base
# Examine other groups and update (or remove) as necessary yum grouplist yum groupupdate "Administration Tools" "Server Configuration Tools" ... # Prepare for boot, assuming your boot device is /dev/sda (change as appropriate) /sbin/grub-install /dev/sda # Or, if you are switching to grub (as in FC16) /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg /sbin/grub2-install /dev/sda # Update startup order; This is not for FC16 or later! cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done # Find packages that haven't been upgraded package-cleanup --orphans
I made a small shell script available to make it a little easier to manage the update (and additions / removals) of yum groups. It's far from perfect, and does indeed have bugs, but I still find it helpful. Right now, it still runs the necessary yum commands "interactively", to give you some extra safety deciding if you want to proceed with a particular operation. The script supports upgrading, removing and adding yum groups. It is available from github, at https://github.com/zwoop/scripts, it is named yumgroup.sh.
Note: I take no responsibilities for failed upgrades, but this process worked nicely for me, upgrading from FC13 to FC14.