Actualizando CentOS a una release concreta
Ya hacía bastante tiempo que no paraba por aquí para escribir un artículo, así que hoy me voy a tomar mi tiempo y voy a escribir acerca de CentOS.
¿Y por qué sobre CentOS? Pues resulta que hoy trabajando en Yaco Sistemas, mi
compañero @sepu66 necesitaba varias máquinas virtuales con CentOS
5.6, aunque la template de la que disponía era de CentOS 5.5.
Fácil, pensé, creo la máquina virtual con CentOS 5.5 y actualizo la
distribución con yum update
:
[root@test ~]# yum update
Y claro, pasados unos minutos actualizando paquetes, compruebo la release de la distribución y, para mi sorpresa, observo que se ha actualizado a la última release de CentOS 5, es decir, a CentOS 5.7:
[root@test ~]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m
FAIL!, pensé (últimamente pienso mucho). Esto ya lo había yo solucionado antes, pero no lo recordaba bien. Es una de esas tareas que haces una vez en muchos meses y que al final terminas olvidando, así que por eso he decidido hacer un volcado de conocimiento en este artículo :-)
Tras un rato buscando alguna solución en internet, sin éxito por cierto, ya que todos los artículos que encontraba eran acerca de "Cómo actualizar CentOS de 5.4 a 5.5" o "Cómo actualizar CentOS de 5.5 a 5.6", en resumen, todos los artículos que encontraba eran actualizaciones a la release inmediatamente superior, así que se resumían en ejecutar yum update
y listo... Pero mi idea era decidir yo a qué release concreta a actualizar.
Para solucionar este tema, volví a regenerar la máquina virtual con CentOS 5.5 y empecé a modificar la configuración de los repositorios.
Configurando los repositorios
En CentOS normalmente los repositorios se encuentran configurados en ficheros que terminan en.repo
en el directorio
/etc/yum.repos.d/
. En mi caso los repositorios configurados por defecto se encuentran en el fichero /etc/yum.repos.d/CentOS-Base.repo
, así que lo primero que hice fue editar dicho fichero y deshabilitar los repositorios por defecto, añadiendo la siguiente linea en cada parte de configuración de cada repositorio:
enabled=0
Dicha linea indica a yum
que el repositorio en cuestión se
encuentra deshabilitado y no queremos que se utilice. Otra forma de
deshabilitar los repositorios por defecto sería eliminando el fichero
/etc/yum.repos.d/CentOS-Base.repo
, pero no me parece un solución muy elegante.
Hecho esto, creé un nuevo fichero llamado /etc/yum.repos.d/CentOS-Vault.repo
en el que añadí lo siguiente:
#---- Packages previously released as 5.6, and its updates
[C5.6-base]
name=CentOS-5.6 - Base
baseurl=http://vault.centos.org/5.6/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.6-updates]
name=CentOS-5.6 - Updates
baseurl=http://vault.centos.org/5.6/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.6-extras]
name=CentOS-5.6 - Extras
baseurl=http://vault.centos.org/5.6/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
¿Dónde está el truco? El secreto se encuentra en el dominio utilizado en la
URL, vault.centos.org
que se trata de un sitio perteneciente a
CentOS donde se pueden encontrar los paquetes de releases antiguas de CentOS.
Destacar como segundo truco que he fijado la versión de la release a 5.6 en la URL, por tanto esta distribución no pasará a una release posterior.
Importante también marcar los repositorios como activos especificando:
enabled=1
Listando los repositorios disponibles
Una vez configurado los repositorios a utilizar, podemos listarlos ejecutandoyum repolist
:
[root@test ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name
C5.6-base CentOS-5.6 - Base
C5.6-centosplus CentOS-5.6 - Plus
C5.6-extras CentOS-5.6 - Extras
C5.6-updates CentOS-5.6 - Updates
Actualizando la distribución
Hecho esto, ya sólo nos queda forzar la actualización del sistema completo:[root@test ~]# yum update
y pasados unos minutos actualizando los paquetes del sistema, deberíamos tener nuestra distribución en la versión deseada, en mi caso, CentOS 5.6:
[root@test ~]# cat /etc/issue
CentOS release 5.6 (Final)
Kernel \r on an \m
Espero que os sea de utilidad, a mi seguro que no se me vuelve a olvidar :-D
Un saludo!