[QuickTip] Enmascarar overlays en Gentoo y dar prioridad al arbol de portage

Gentoo LogoAunque algunos de los overlays más famosos como Sunrise o Zugaina actúan como repositorios de ebuilds que complementan a Gentoo, otros como Sabayon, Science o Funtoo presentan ebuilds de paquetes centrales como por ejemplo udev.

Un problema común es que si en un determinado momento un overlay actualiza un paquete incluso antes que el arbol de portage con sus propias modificaciones, este paquete puede estar diseñado para no ser compatible con Gentoo y puede alterar el funcionamiento y la estabilidad de nuestro sistema.

Para evitar esta situación, podemos aprovechar las caracteristicas de portage de enmascaramiento y trabajar con un esquema de desenmascaramiento a petición, la regla es que si todo el overlay esta enmascarado, las instalaciones normales siempre darán prioridad al arbol de portage sin importar la ultima version que se encuentre en el overlay.

Para esto podemos agregar un archivo dentro del directorio /etc/portage/package.mask/ o editar el archivo /etc/portage/package.mask (ambas son aceptadas) y agregar un enmascaramiento total, por ejemplo para enmascarar el overlay de sabayon, la sintaxis seria.

*/*::sabayon

Una vez enmascarado el overlay, cuando necesitemos un paquete del overlay podemos desenmascararlo mediante un archivo en el directorio /etc/portage/package.unmask/ o en el archivo /etc/portage/package.unmask, donde nuevamente ambos son validos, por ejemplo para desenmascarar 0ad desde el overlay de sabayon, la sintaxis seria

games-strategy/0ad::sabayon

Y de esta forma tenemos un control granular de los paquetes que son instalados desde un overlay sin necesidad de preocuparnos que una actualización de sistema signifique instalar paquetes desde ese overlay sin darnos cuenta.

One Reply to “[QuickTip] Enmascarar overlays en Gentoo y dar prioridad al arbol de portage”

  1. Usando Firefox 35.0 Firefox 35.0 en GNU/Linux GNU/Linux

    También se puede aplicar la lógica inversa, o sea, enmascarar los programas que pertenezcan a un overlay determinado para que solo se puedan instalar desde Portage. Así por ejemplo, para actualizar a la ultima versión inestable de Firefox (la 35) y evitar que instale la versión 36 beta (del overlay ROKO__) basta con agregar lo siguiente en /etc/portage/package.mask
    www-client/firefox::ROKO__
    Curiosamente también tengo los overlays de Pentoo y Sabayon (entre otros, pero estos pertenecen a forks de Gentoo) y hasta el momento no ha habido problemas con que se actualicen paquetes desde los mismos en lugar de usar el árbol oficial (supongo que es por que siempre se instalan paquetes estables). Aunque si llega a pasar, siempre puedo listar los paquetes instalados desde los overlays con:

    #Requiere tener Gentoolkit instalado
    equery list -F '$cp::$repo' '*' | grep -v -i '::gentoo$'

    Y luego buscar en los logs por el que se haya instalado recientemente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *