2 March 2010
Copyright (C) 2010 Kenneth Salerno
AUTHOR
Kenneth Salerno <first & last name (one word) at yahoo dot com>
NOTES TO USERS
If you have ideas to make fedora-upgrader better or even good enough to
hopefully someday include a variation of it with Fedora, please do it!
I definitely need some help to make fedora-upgrader worthy of being in the
official repo. Why should only Debian be the easiest to upgrade without
re-installing? And of course the awesome FreeBSD with its mergemaster and
freebsd-update are an inspiration. Why not my favorite GNU/Linux distribution,
Fedora too? I hope this RPM package for fedora-upgrader gets the ball rolling
for Fedora :)
DESCRIPTION
Upgrade to the newest releases of Fedora Linux, Scientific Linux, CentOS, and
Red Hat Enterprise Linux without reinstalling from scratch.
Most of fedora-upgrader was written using the guidelines from the Fedora
Project's YUM upgrade Wiki (http://fedoraproject.org/wiki/YumUpgradeFaq).
PREREQUISITES
fedora-upgrader needs the package yum-utils which provides package-cleanup(1).
Check to see if you already have yum-utils installed:
rpm -q yum-utils
If you don't have it already, you can install yum-utils like this:
sudo yum install yum-utils
If you are using an END-OF-LIFE version of Fedora, please see the bottom of this
README on how you too can be using the latest Fedora without reinstalling
everything
INSTALL
With RPM package (recommended):
sudo rpm -Uvh KPSfedora-upgrader-*.rpm
Or with source tarball:
tar zxvf KPSfedora-upgrader-*.tar.gz; cd KPSfedora-upgrader-*
sudo make install
REMOVAL
Installed from RPM package:
sudo rpm -ev KPSfedora-upgrader
Installed from source tarball:
tar zxvf KPSfedora-upgrader-*.tar.gz; cd KPSfedora-upgrader-*
sudo make uninstall
USAGE
0) Run this script from a real TTY Terminal (i.e. CTL+ALT+F2) or remotely via
SSH works great too.
1) First, make sure your system is totally up-to-date:
Initialize "patch effects" with your current system state:
sudo /usr/local/bin/fedora-upgrader --patch-effects pre
Run a full YUM update and check for RPM leaf-nodes, orphans, etc.:
sudo /usr/local/bin/fedora-upgrader --update
Now compare current system state with saved state and look for *.rpmnew:
sudo /usr/local/bin/fedora-upgrader --patch-effects post
sudo /usr/local/bin/fedora-upgrader --patch-effects comp
2) Run fedora-upgrader with --rpmnewdiff to merge *.rpmnew files:
sudo /usr/local/bin/fedora-upgrader --rpmnewdiff
3) Next, initiate the upgrade (this example assumes you have Fedora 11)
sudo /usr/local/bin/fedora-upgrader --go-to-next-version 12
See Man page for more details and examples for fedora-upgrader(8)
4) Follow any instructions you see
5) Please read all documentation provided
sudo /usr/local/bin/fedora-upgrader --help
Please see man pages for more details:
Example:
man fedora-upgrader
Note: If you have trouble finding the manual, your MANPATH should
include /usr/local/share/man or be blank for default manpath.
RPM PACKAGE INFO
Configuration file is listed here and specified in the man page:
rpm -qc KPSfedora-upgrader
The Manual is listed here:
rpm -qd KPSfedora-upgrader
Change Log is included here:
rpm -q --changelog KPSfedora-upgrader
TIPS FOR USERS OF END-OF-LIFE FEDORA VERSIONS
(Fedora Core 1 - 6, Fedora 7 - 10)
First, you'll need to ignore the yum-utils dependency by installing
my script with --nodeps:
rpm -ivh --nodeps KPSfedora-upgrader-*.rpm
You can install the yum-utils prereq after following the steps below, but note
that yum-utils isn't available until Fedora 7 but don't worry, you won't need
it until you're all done at the lastest and greatest Fedora release.
Second, you probably don't have /etc/sysconfig/kernel, but here's how to create
one: open your favorite editor and type this:
# UPDATEDEFAULT specifies if new-kernel-pkg should make
# new kernels the default
UPDATEDEFAULT=yes
# DEFAULTKERNEL specifies the default kernel package type
DEFAULTKERNEL=kernel
From here you can now use my script as is, but you need to modify the URL_BASE
variable in /usr/local/etc/fedora-upgrader.conf to use the archives hosted by
the Fedora Project (see comments I provide in fedora-upgrader.conf):
URL_BASE=http://archives.fedoraproject.org/pub/archive/fedora/linux/core/%NEXT_RELEASE%/%OUR_ARCH%/os/Fedora/RPMS
And you will need to specify the release RPM package by name since wget does
not support wildcards '*' with HTTP:
RELEASE_RPM_NAME='fedora-release-2-7.i386.rpm' (this is just an example,
please look through the Fedora Project's archives to find the name of the
fedora-release*rpm you need)
And then once the fedora-release-*rpm has installed, you will need to CTRL+C
out of my script and modify either /etc/yum.conf or
/etc/yum.repos.d/{fedora,fedora-updates}.repo (depending on your Fedora version)
to use the following baseurl:
baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/core/$releasever/$basearch/os
Then launch my script again with the --noclean parameter after your -g RELEASE
Example going from Fedora Core 1 to Fedora Core 2, after following above steps:
sudo /usr/local/bin/fedora-upgrader -g 2 --noclean
GENERAL TIP: once you have successfully upgraded to the next version and you
have rebooted, you should remove the previous kernel version before starting
your next upgrade (fedora-upgrader --update does this for you)
FEDORA CORE 2 to FEDORA CORE 3 TIP: remove up2date before starting:
yum remove up2date
FEDORA 3 to FEDORA CORE 4 TIP: When YUM complains you don't have the GPG
signatures it's looking for, you can fix this by editing
/etc/yum.repos.d/fedora.repo and modify the line
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
and make it look like this:
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
FEDORA CORE 6 to FEDORA 7 TIP: Fedora 7 replaces the old IDE subsystem with
libata. Drive device names which previously started /dev/hd.. will become
/dev/sd.. after the upgrade. BEFORE REBOOTING AFTER YOUR UPGRADE, Make sure
your /etc/fstab does not contain any references to /dev/hda, /dev/hdb, etc.
If so, change them to the respective /dev/sda, /dev/sdb, etc. (you should be
using either volume labels, LVM, or UUIDs anyway... but, one step at a time.)
If you're a user of Fedora Core versions 1-6 or Fedora 7 - 10 and having a
problem with these special steps, don't worry, you'll get it eventually or you
can e-mail me for help, I've used this technique before successfully on a few
different servers of mine. And remember, it is even more important for users
of much older Fedora versions to thoroughly resolve all *.rpmnew using
/usr/local/bin/fedora-upgrader --upgrade-effects