How to upgrade Fedora 16 to Fedora 17 using the command line

published May 30, 2012, last modified Jun 26, 2013

A fast procedure to ensure the best result.


This is a series of commands that you can run to get your machine to Fedora 17 from Fedora 16.  It does not include any ZFS-on-root-specific steps (which you may have to run at the end of the procedure, more on that below).  This procedure is best done not while you're logged on in the graphical user interface.
  1. yum --releasever=17 update rpm
  2. rm -f /var/lib/rpm/__*
  3. rpm --rebuilddb
  4. rsync -a /bin/ /usr/bin/
  5. rsync -a /sbin/ /usr/sbin/
  6. rsync -a /lib/ /usr/lib/
  7. rsync -a /lib64/ /usr/lib64/
  8. open a Python interpreter in a second terminal
  9. import os there
  10. go back to the original terminal
  11. in this original terminal, rm -rf /bin/ /sbin/ lib/ lib64/
  12. return to the second terminal with Python
  13. os.symlink(/usr/bin,/bin)
  14. os.symlink(/usr/sbin,/sbin)
  15. os.symlink(/usr/lib64,/lib64)
  16. os.symlink(/usr/lib,/lib)
  17. exit your Python interpreter
  18. yum --releasever=17 --disableplugin=presto distro-sync
  19. fixfiles onboot (if you use SELinux)
Voilá.  Fedora 17, done.
Unless you have ZFS on root, reboot and your changes shall be complete.

This is what I did, minus a few ZFS-on-root fixes.

If you have ZFS-on-root as per this article, you are encouraged to update your /usr/src/spl and /usr/src/zfs directories, re-patch the /sbin/grub2-mkconfig file (as per instructions in the article), and then re-run deploy-zfs to complete the update.