sábado, 22 de junio de 2013

Evitar que YUM actualice ciertos paquetes

Directo al grano:
Para evitar actualizar -por ejemplo- tomcat, en /etc/yum.conf agregar la línea
exclude=tomcat*

Ahora los rodeos que normalmente irían antes:
Algunas veces ocurre que tenemos una configuración especial en un servidor o equipo. Algo que es mejor no tocar porque es demasiado crítico. O también puede ser que pretendamos mantener una versión específica de ciertos programas, para pruebas de compatibilidad.

Me pasó con un cliente que utilizaba mailman para distribuir información bursatil muy importante. Un buen día la distribución no funcionó y no había tiempo para investigaciones. No tuve más remedio que "retroceder" el sistema a un estadio previo (menos mal que era una VM de la cual tenía backup).

La solución fue simple (CentOS 6.4), en /etc/yum.conf agregué
exclude=mailman*

Santo remedio, nunca más se actualizó (ni ofreció actualizar) mailman.

Y si se trata de mantener un sistema sin actualizar, se puede desactivar los repositorios básicos de yum. En /etc/yum.repos.d existen archivos por cada repositorio. Se puede crear excludes en cada uno de ellos (a diferencia del anterior que es global). O se puede desactivar completamente un determinado repositorio (enable=0) mientras que otros quedan activos.

Por ejemplo, en mi caso desactivé los repositorios base de CentOS pero (por ser una VM manejada con Cloudmin/Virtualmin) mantuve activo el repositorio virtualmin-universal porque actualiza el manejador de la máquina virtual pero no el sistema operativo.