Migration Guide

This page addresses migration from older to newer CentOS versions, and from other Enterprise Linux distributions based on the same set of upstream source packages to CentOS.

<!> The actions described in this article can damage existing filesystems and operating systems if not done carefully, or even if followed exactly. Please experiment first on a test box, and only proceed after creating current and tested backups if you value your data. Never blindly copy/paste commands, particularly as root, without a thorough understanding of their effects. One reporter noted that their attempt to upgrade CentOS-5 to CentOS-6 with upgradeany resulted in a non-functional system.





Migration an existing system from RHEL5 to CentOS 5

<!> Note: It is only possible to pull the latest 'point release' packages directory from the host: mirror.centos.org Older point release packages are relocated to: vault.centos.org and so for the foregoing example, we would use:

# cp /etc/redhat-release /etc/redhat-release-saved
# rpm -e --nodeps redhat-release-notes redhat-release yum-rhn-plugin redhat-logos
# rpm -ivh \
http://vault.centos.org/5.0/os/i386/CentOS/centos-release-5-0.0.el5.centos.2.i386.rpm  \
http://vault.centos.org/5.0/os/i386/CentOS/centos-release-notes-5.0.0-2.i386.rpm


Migrate an existing system from RHEL6 or SL6 to CentOS 6

To migrate from RHEL6 to CentOS 6 fetch the latest versions of the following packages for your architecture and put them in a temporary directory. Rather than fetching packages with wget, as shown below, the CentOS-6 installation media can be mounted and packages installed from it. For CentOS 6.2 x86_64

mkdir TMP
yum remove rhnlib abrt-plugin-bugzilla redhat-release-notes*
rpm -e --nodeps redhat-release redhat-indexhtml
cd TMP
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-2.el6.centos.7.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-indexhtml-6-1.el6.centos.noarch.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-22.el6.centos.noarch.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-10.el6.noarch.rpm
rpm -Uvh *.rpm
cd ..
rm -rf TMP
yum clean all
yum upgrade

For CentOS 6.2 i386 only the wget lines change:

wget http://mirror.centos.org/centos/6/os/i386/Packages/centos-release-6-2.el6.centos.7.i686.rpm
wget http://mirror.centos.org/centos/6/os/i386/Packages/centos-indexhtml-6-1.el6.centos.noarch.rpm
wget http://mirror.centos.org/centos/6/os/i386/Packages/yum-3.2.29-22.el6.centos.noarch.rpm
wget http://mirror.centos.org/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-10.el6.noarch.rpm

To migrate from Scientific Linux 6 the only change is that the "rpm -e" line becomes

rpm -e --nodeps sl-release sl-indexhtml

Additional changes for SL - The following will find some SL-specific packages:

rpm -qa | grep ^sl-
rpm -qa | grep SL_

These can be removed by (for instance):

rpm -e --nodeps sl-bookmarks sl-release-notes yum-conf-sl6x SL_desktop_tweaks

One might want to download and add a few more look-and-feel items, or load them from the CentOS DVD:

rpm -Uvh redhat-bookmarks-6-1.el6.centos.noarch.rpm redhat-logos-60.0.14-10.el6.centos.noarch.rpm \
  redhat-menus-14.0.0-3.el6.noarch.rpm redhat-rpm-config-9.0.3-34.el6.noarch.rpm

After the above, and updating, then you may want to see what additional SL packages you have:

rpm -qa --qf "%{VENDOR} \n" | sort | uniq

will show all the vendor tags for installed packages. Then

rpm -qa --qf "%{NAME} %{VENDOR} \n" | grep "Scientific Linux" | cut -d ' ' -f 1 | sort

will show remaining SL packages. It is probably not strictly necessary, but you could "purify" the system by

yum reinstall $(rpm -qa --qf "%{NAME} %{VENDOR} \n" | grep "Scientific Linux" | cut -d ' ' -f 1 | sort)

You may find some packages do not have CentOS equivalents as SL ships packages that CentOS does not. Repeat the previous rpm query to see what is left over.

Procedures should be similar for other closely-related distributions.


HowTos/MigrationGuide (last edited 2012-08-08 15:30:00 by RussHerrold)