Vérification des paquets nécessitant une mise à jour prioritaire :

# rpm -qa centos\* redhat\*
centos-indexhtml-6-1.el6.centos.noarch
redhat-logos-60.0.14-12.el6.centos.noarch
centos-release-6-4.el6.centos.10.x86_64

Récupération sur le DVD d'installation du paquet principal de la distribution :

redhat-release-server-6Server-6.4.0.4.el6.x86_64.rpm

Il faut aussi les composants d'accès RHN (Red Hat Network) afin de bénéficier des mises à jour en ligne (et quelques dépendances) :

libgudev1-147-2.46.el6.x86_64.rpm
m2crypto-0.20.2-9.el6.x86_64.rpm
rhn-check-1.0.0.1-4.el6.noarch.rpm
rhn-client-tools-1.0.0.1-4.el6.noarch.rpm
rhn-setup-1.0.0.1-4.el6.noarch.rpm
rhnlib-2.5.22-12.el6.noarch.rpm
rhnsd-4.9.3-2.el6.x86_64.rpm
pyOpenSSL-0.10-2.el6.x86_64.rpm
python-dmidecode-3.10.13-1.el6.x86_64.rpm
python-gudev-147.1-4.el6_0.1.x86_64.rpm
pygobject2-2.20.0-5.el6.x86_64.rpm
yum-rhn-plugin-0.9.1-43.el6.noarch.rpm

On vire le paquet CentOS :

# rpm -e --nodeps centos-release centos-indexhtml

Et on installe tous les paquets Red Hat récupérés :

# rpm -ivh \
    redhat-release-server-6Server-6.4.0.4.el6.x86_64.rpm
    libgudev1-147-2.46.el6.x86_64.rpm m2crypto-0.20.2-9.el6.x86_64.rpm \
    rhn-check-1.0.0.1-4.el6.noarch.rpm rhn-client-tools-1.0.0.1-4.el6.noarch.rpm \
    rhn-setup-1.0.0.1-4.el6.noarch.rpm rhnlib-2.5.22-12.el6.noarch.rpm \
    rhnsd-4.9.3-2.el6.x86_64.rpm pyOpenSSL-0.10-2.el6.x86_64.rpm \
    python-dmidecode-3.10.13-1.el6.x86_64.rpm python-gudev-147.1-4.el6_0.1.x86_64.rpm \
    pygobject2-2.20.0-5.el6.x86_64.rpm yum-rhn-plugin-0.9.1-43.el6.noarch.rpm

Enregistrement du système et vérification des canaux :

# rhn_register
...
# rhn-channel -a -c rhel-x86_64-server-optional-6
# rhn-channel -l
rhel-x86_64-server-6
rhel-x86_64-server-optional-6

Mise à jour en ligne, ce qui va permettre de récupérer les nouvelles versions :

# yum update
Install       1 Package(s)
Upgrade      80 Package(s)

Réinstallation des autres paquets (versions identiques) :

# rpm -qa --qf "%{NAME} %{VENDOR}\n" | grep CentOS | cut -d' ' -f1 | grep -v ^kernel | sort | tee lst
# yum reinstall $(cat lst)
Reinstall   291 Package(s)

Rétrogradation des paquets restants (anciennes versions, la liste doit être réduite) :

# yum distro-sync
Downgrade    23 Package(s)

C'est fini, un petit redémarrage pour passer sur le nouveau noyau et bénéficier de toutes les mises à jour :

# rpm -qa --qf "%{NAME} %{VENDOR}\n" | grep CentOS | cut -d' ' -f1 | grep -v ^kernel | wc -l
0
# yum update
No Packages marked for Update

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.4 (Santiago)

Durée totale : moins d'une heure (dont 2' d'indisponibilité du site).

A qui le tour ?