Premier Training & Business Partner Red Hat

Da RHEL a CentOS e viceversa: yum distro-sync

Simone Caronni
Ti piacerebbe diventare anche tu uno di noi e
pubblicare i tuoi articoli nel blog degli RHCE italiani?

rhel2centosAvete mai avuto la necessità di trasformare un sistema da CentOS a Red Hat Enterprise Linux o viceversa?

Ho avuto questa necessità numerose volte; nel caso più semplice si è trattato di trasformare un ambiente di valutazione per qualche soluzione realizzata su CentOS in una Red Hat vera e propria alla fine della fase di test.

Nel caso opposto può essere utile per esempio per realizzare una copia speculare di un sistema già installato e agganciato alle subscription di Red Hat sul proprio portatile per questioni di sviluppo. Oppure perchè ci è semplicemente scaduta la subscription e non abbiamo la necessità del supporto Red Hat.

Come esempio prendiamo un sistema CentOS/RHEL 6.6 che desideriamo convertire. Ovviamente la procedura è identica anche se passiamo da una versione 6.3 ad una 6.6 durante la conversione.

Da Red Hat Enterprise Linux a CentOS

Questo caso è un po’ più semplice per due motivi; il primo è la possibilità di reperire su internet tutti i package necessari per l’installazione (non vi serve un account Red Hat con delle subscritpion valide) e sostanzialmente di andare a ridurre il numero di pacchetti installati rispetto ad un sistema Red Hat Enterprise Linux.

Per prima cosa dobbiamo rimuovere il package -release dal sistema e sostituirlo con quello che ci interessa. In questo modo i comandi yum saranno in grado di espandere le variabili necesssarie a recuperare i pacchetti necessari.

rpm -e --nodeps redhat-release-server-6Server
yum -y install http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-6.el6.centos.12.2.x86_64.rpm

Nel caso di CentOS e Fedora, inoltre, il package che definisce la release di sistema contiene anche i file con le definizioni dei repository yum; semplificando utleriormente la conversione.

A questo punto non ci resta che allineare i pacchetti relativi al sistema che ci interessa. Yum si preoccuperà di fare il resto.

yum -y distro-sync
reboot

Se durante l’upgrade abbiamo fatto un importante salto di release (ad esempio da 6.3 a 6.6) è opportuno anche procedere con il reset dei contesti SELinux sul filesystem prima di riavviare:

fixfiles onboot

Pulizia del sistema dopo la conversione

Prima di riavviare, possiamo procedere con un paio di accorgimenti ulteriori; per esempio rimuovere i pacchetti di Red Hat network (che non verranno più utilizzati):

yum -y remove rhn\* subscription\* yum-rhn-plugin

O addirittura tutti i package non più presenti in nessun repository:

package-cleanup --orphans

E sostiture la pagina iniziale di Firefox che ci suggerisce di registrare il nostro sistema a Red Hat Network:

rpm -e --nodeps redhat-indexhtml
yum -y install http://mirror.centos.org/centos-6/6.6/os/x86_64/Packages/centos-indexhtml-6-2.el6.centos.noarch.rpm

Per rimuovere i kernel rimanenti (compresi i package contenenti gli header del kernel, i moduli, ecc.) possiamo procedere con questo comando che farà pulizia di tutti i vecchi kernel eccetto quello corrente:

package-clenup -y --oldkernels --count=1

Da CentOS a Red Hat Enterprise Linux

La procedura inversa è leggeremente più semplice in merito ai comandi da digitare (molti package di CentOS continuano a fornire il vecchio nome Red Hat nei Provides: ma decisamente più dispendiosa in termini di tempo; bisogna avere un account valido per poter scaricare i package necessari per la conversione prima di poter avere i repository disponibili.

Dopo aver ottenuto l’accesso sul portale di Red Hat, dobbiamo scaricare manualmente i seguenti package per registrare il sistema (nel nostro caso vogliamo passare ad una subscription di tipo Server):

redhat-release-server
rhn-check
rhn-client-tools
rhn-setup
rhn-setup-gnome
rhnlib
rhnsd
subscription-manager
subscription-manager-firstboot
subscription-manager-gnome
yum-rhn-plugin

A questo punto possiamo procedere con la conversione del sistema (di fatto yum penserà di girare su una Red Hat):

rpm -e --nodeps centos-release
yum install *rpm

Registrare il nostro host:

subscription-manager --register

E successivamente procedere con l’allineamento dei package:

yum -y distro-sync
reboot
Info about author

Simone Caronni