systemadmin.es > Kernel > Transformar una RHEL en una CentOS mediante yum

Transformar una RHEL en una CentOS mediante yum

Resulta muy común encontrar servidores que les instalan una RHEL sin licencia, lo cual me parece muy mal considerando que tenemos disponible CentOS que básicamente es un RHEL “sin marca”. Hoy veremos como transformar un sistema RHEL en uno CentOS mediante yum. Gracias a esta transformación podremos actualizar el sistema directamente de los repositorios sin tener que hacer trapicheo con los RPMs descargados en un sistema con licencia.

Este procedimiento es arriesgado en general y especialmente en caso que tengamos algún problema con el sistema RPM.

Primero de todo deberemos buscar los paquetes necesarios considerando versión y arquitectura. Lo podemos ver mediante /etc/redhat-release y un uname:

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
$ uname -a
Linux adama 2.6.18-164.2.1.el5 #1 SMP Mon Sep 21 04:37:42 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

Podemos encontrar los paquetes dentro de mirror.centos.org, en el caso de la versión 5 para x86_64 lo podemos encontrar en el siguiente path: http://mirror.centos.org/centos/5/os/x86_64/CentOS/

Primero de todo deberemos tener actualizados los paquetes y sin conflictos, a continuación podremos descargar los siguientes paquetes:

  • centos-release
  • centos-release-notes

A continuación podremos instalarlos mediante rpm -Uvh:

# rpm -Uvh centos-release-*
warning: centos-release-5-4.el5.centos.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing...                ########################################### [100%]
   1:centos-release-notes   ########################################### [ 50%]
   2:centos-release         ########################################### [100%]

A continuación ya podremos eliminar los paquetes relacionados con la comprobación de licencia, plugin para yum y demás utilidades para acceder a la Red Hat Network:

rpm -e yum-rhn-plugin rhn-client-tools rhn-setup rhn-check rhnsd rhnlib

Por lo que ya podemos actualizar todos los paquetes del sistema mediante un yum update:

# yum update
(...)
updates                      81 k
 xorg-x11-server-Xvfb                          x86_64                     1.1.1-48.67.el5_4.1                               updates                     1.6 M
 xterm                                         x86_64                     215-8.el5_4.1                                     updates                     410 k
 ypbind                                        x86_64                     3:1.19-12.el5                                     base                         37 k
 yum                                           noarch                     3.2.22-20.el5.centos                              base                        997 k
 yum-metadata-parser                           x86_64                     1.1.2-3.el5.centos                                base                         25 k
 yum-security                                  noarch                     1.1.16-14.el5.centos.1                            updates                      25 k
Installing for dependencies:
 bitstream-vera-fonts                          noarch                     1.10-7                                            base                        343 k
 dmraid-events                                 x86_64                     1.0.0.rc13-53.el5                                 base                         22 k
 hmaccalc                                      x86_64                     0.9.6-1.el5                                       base                         21 k
 sgpio                                         x86_64                     1.2.0_10-2.el5                                    base                         11 k
 yum-fastestmirror                             noarch                     1.1.16-14.el5.centos.1                            updates                      19 k
Updating for dependencies:
 fipscheck                                     x86_64                     1.2.0-1.el5                                       base                         13 k

Transaction Summary
==============================================================================================================================================================
Install      9 Package(s)
Update     235 Package(s)
Remove       0 Package(s)

Total download size: 259 M
Is this ok [y/N]:

Deberemos dar el OK a proceder, una vez descargados nos va a avisar que la key de CentOS no la conoce:

Total                                                                                                                         695 kB/s | 259 MB     06:21
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y

Deberemos indicar que si para poder proseguir. A continuación veremos como se instalan todos los paquetes, al final veremos un Complete:

 0:8.1.18-2.el5_4.1 postgresql-libs.i386 0:8.1.18-2.el5_4.1 procmail.x86_64 0:3.22-17.1.el5.centos psmisc.x86_64 0:22.2-7 pyorbit.x86_64 0:2.14.1-3.el5 python.x86_64 0:2.4.3-27.el5 readline.x86_64 0:5.1-3.el5 readline.i386 0:5.1-3.el5 redhat-artwork.x86_64 0:5.1.0-28.el5.centos redhat-logos.noarch 0:4.9.99-11.el5.centos redhat-rpm-config.noarch 0:8.0.45-32.el5.centos rmt.x86_64 0:0.4b41-4.el5 rpm.x86_64 0:4.4.2.3-18.el5 rpm-build.x86_64 0:4.4.2.3-18.el5 rpm-devel.i386 0:4.4.2.3-18.el5 rpm-devel.x86_64 0:4.4.2.3-18.el5 rpm-libs.i386 0:4.4.2.3-18.el5 rpm-libs.x86_64 0:4.4.2.3-18.el5 rpm-python.x86_64 0:4.4.2.3-18.el5 rsh.x86_64 0:0.17-40.el5 screen.x86_64 0:4.0.3-1.el5_4.1 selinux-policy.noarch 0:2.4.6-255.el5_4.4 selinux-policy-targeted.noarch 0:2.4.6-255.el5_4.4 setup.noarch 0:2.5.58-7.el5 setuptool.x86_64 0:1.19.2-1.el5.centos sos.noarch 0:1.7-9.27.el5 specspo.noarch 0:13-1.el5.centos sqlite.x86_64 0:3.3.6-5 sqlite.i386 0:3.3.6-5 sqlite-devel.x86_64 0:3.3.6-5 strace.x86_64 0:4.5.18-5.el5_4.1 subversion.x86_64 0:1.4.2-4.el5_3.1 subversion.i386 0:1.4.2-4.el5_3.1 sudo.x86_64 0:1.6.9p17-6.el5_4 system-config-lvm.noarch 0:1.1.5-1.0.el5_4.1 system-config-network-tui.noarch 0:1.3.99.18-1.el5 systemtap.x86_64 0:0.9.7-5.el5_4.3 systemtap-runtime.x86_64 0:0.9.7-5.el5_4.3 tcl.x86_64 0:8.4.13-4.el5 tcp_wrappers.i386 0:7.6-40.7.el5 tcp_wrappers.x86_64 0:7.6-40.7.el5 tcsh.x86_64 0:6.14-14.el5_4.3 tzdata.noarch 0:2009u-1.el5 udev.x86_64 0:095-14.21.el5 unix2dos.x86_64 0:2.2-26.2.3.el5 util-linux.x86_64 0:2.13-0.52.el5_4.1 vim-minimal.x86_64 2:7.0.109-6.el5 vixie-cron.x86_64 4:4.1-77.el5_4.1 xorg-x11-server-Xvfb.x86_64 0:1.1.1-48.67.el5_4.1 xterm.x86_64 0:215-8.el5_4.1 ypbind.x86_64 3:1.19-12.el5 yum.noarch 0:3.2.22-20.el5.centos yum-metadata-parser.x86_64 0:1.1.2-3.el5.centos yum-security.noarch 0:1.1.16-14.el5.centos.1
Dependency Updated: fipscheck.x86_64 0:1.2.0-1.el5
Replaced: fipscheck.x86_64 0:1.0.3-1.el5 fipscheck.i386 0:1.0.3-1.el5
Complete!

Mirando de nuevo el /etc/redhat-release veremos como ha variado el banner de Red Hat Enterprise Linux por el de CentOS:

# cat /etc/redhat-release
CentOS release 5.4 (Final)

Para cambiar el kernel de RHEL por el de CentOS (y de paso actualizarlo) deberemos reiniciar:

# reboot

Una vez reiniciado podemos comprobar que se ha actualizado el kernel comparando el uname con los kernels instalados en el sistema:

# rpm -qi kernel
Name        : kernel                       Relocations: (not relocatable)
Version     : 2.6.18                            Vendor: Red Hat, Inc.
Release     : 53.el5                        Build Date: Wed 10 Oct 2007 11:26:17 PM CEST
Install Date: Tue 31 Mar 2009 11:37:18 AM CEST      Build Host: hs20-bc1-7.build.redhat.com
Group       : System Environment/Kernel     Source RPM: kernel-2.6.18-53.el5.src.rpm
Size        : 78955270                         License: GPLv2
Signature   : DSA/SHA1, Thu 11 Oct 2007 01:09:10 PM CEST, Key ID 5326810137017186
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : The Linux kernel (the core of the Linux operating system)
Description :
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system.  The kernel handles the basic functions
of the operating system:  memory allocation, process allocation, device
input and output, etc.
Name        : kernel                       Relocations: (not relocatable)
Version     : 2.6.18                            Vendor: Red Hat, Inc.
Release     : 128.1.6.el5                   Build Date: Tue 24 Mar 2009 06:19:03 PM CET
Install Date: Wed 01 Apr 2009 04:43:46 PM CEST      Build Host: ls20-bc2-14.build.redhat.com
Group       : System Environment/Kernel     Source RPM: kernel-2.6.18-128.1.6.el5.src.rpm
Size        : 87400590                         License: GPLv2
Signature   : DSA/SHA1, Tue 31 Mar 2009 08:26:53 AM CEST, Key ID 5326810137017186
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL         : http://www.kernel.org/
Summary     : The Linux kernel (the core of the Linux operating system)
Description :
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system.  The kernel handles the basic functions
of the operating system:  memory allocation, process allocation, device
input and output, etc.
Name        : kernel                       Relocations: (not relocatable)
Version     : 2.6.18                            Vendor: CentOS
Release     : 164.11.1.el5                  Build Date: Wed 20 Jan 2010 03:17:59 PM CET
Install Date: Tue 09 Mar 2010 01:20:26 PM CET      Build Host: builder10.centos.org
Group       : System Environment/Kernel     Source RPM: kernel-2.6.18-164.11.1.el5.src.rpm
Size        : 91109620                         License: GPLv2
Signature   : DSA/SHA1, Wed 20 Jan 2010 07:10:12 PM CET, Key ID a8a447dce8562897
URL         : http://www.kernel.org/
Summary     : The Linux kernel (the core of the Linux operating system)
Description :
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system.  The kernel handles the basic functions
of the operating system:  memory allocation, process allocation, device
input and output, etc.

Como vemos el kernel de CentOS es el último, y podemos comprobar como es el que se esta usando con un uname:

# uname -r
2.6.18-164.11.1.el5

De forma similar se puede aplicar con Fedora: Por ejemplo, antes que saliera RHEL5, actualicé una RHEL4 a una FedoraCore 6 para poder disponer de virtualización con Xen. Esto fue una de esas absurdidades que el responsable de turno define “por política” que todo debe ser RHEL y usar el sistema de paquetes pero te piden disponer de aplicaciones que no están en dichos repositorios. En este caso lo compliqué un poco más para mantener el banner y algunas cosillas más de RHEL4 pero todo el resto era de Fedora.

6 comments to “Transformar una RHEL en una CentOS mediante yum”

  1. te has encontrado con alguna incompatibilidad al realizar este proceso?

    por ejemplo, estoy pensando en el paquete de Oracle, que es bastante escrupuloso con los paquetes del sistema y el versionado.

  2. En mi opinión si pagas una licencia Oracle lo suyo es pagar también su licencia para RHEL. Evidentemente es perfectamente posible instalar un Oracle en CentOS, puedes “engañarle” cambiando el fichero /etc/redhat-release:

    echo "Red Hat Enterprise Linux Server release 5.3 (taHqeq)" >> /etc/redhat-release
    

    Incompatibilidades no me encontrado porque en realidad CentOS no deja de ser una RHEL recompilada sin las marcas propiedad de RedHat.

  3. Estupendo,

    Acabo de pasar una RHEL 5.5 a una Centos 5.5 y todo ha ido estupendamente. Lo unico que he tenido que modificar han sido que me requeria desinstalar los paquete rhn-setup-gnome y pirut, una vez desinstalado, se ha actualizado y todo esta ok.

    Gracias por compartir la info.

  4. jeje… no hay prácticamente nada de diferencia,… aunque si de versión en versión rh5.4 a c5.5 el kernel tenia un problema con soporte de fiber channel pero aplicándole el modulo q solo había para rh 5.4, hasta ese momento, se soluciono…
    después de 3er update tengo un problema para acceder al tape backup pero parece q es porque uso kernel centos plus… q actualizan todos los días

  5. Con los cambios de versión puede salir algún problemilla, pero de RHEL 5.5 a CentOS 5.5 no debe aparecer ningún problema ya que los paquetes del primero recompilados sin la marca son los segundos

  6. Buenas tardes realice este procedimiento pero me da el siguiente error:
    stunnel-4.15-2.el5.1.i386 100% |=========================| 12 kB 00:00
    http://mirrors.arsc.edu/centos/5.6/os/i386/CentOS/stunnel-4.15-2.el5.1.i386.rpm: [Errno -1] Header is not complete.

    Gracias de antemano.

    Saludos.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>