Overlays y Layman en Gentoo

estratos-pekDe igual manera que en otras distros GNU/Linux hay repositorios de programas además de los oficiales de la distro, en Gentoo tenemos para eso los llamados overlays. Un overlay es un árbol alternativo al árbol de programas disponibles en Portage. Se llaman “overlay”, capa superpuesta, pues se sitúan (normalmente) antes del árbol de Portage para disponer de otro software no “oficial”, o de versiones más modernas, beta o en pruebas.

Lógicamente, los overlays, al igual que el árbol de Portage que está en /usr/portage/, no contienen paquetes con binarios como las demás distros, sino los conocidos ebuils. Los ebuils no contienen binarios (ejecutables) y ni siquiera las fuentes, sino sólo unos sencillos documentos de texto plano que le indican a Portage-emerge donde están las fuentes, cuáles son sus dependencias y dónde están, y las instrucciones para configurar, compilar e instalarlo todo en tu sistema Gentoo.

Los overlays se pueden utilizar de manera manual, descargándolo y añadiendo la ruta a él en el archivo de configuración principal de Portage /etc/portage/make.conf añadimos:

# mi overlay:
PORTDIR_OVERLAY=”/home/usuario/overlay”

Pero la manera más cómoda de gestionar overlays en mediante Layman.

Layman nos permite gestionar fácilmente y de manera centralizada muchos repositorios, activarlos o desactivarlos, organizarlos, actualizarlos, etc.

Para emerger (descargar+compilar+instalar en lenguaje gentoo 🙂 Layman:

sudo emerge -a layman

Lo primero que hay que hacer es informar a Portage de que existe layman y sus overlays. Como siempre, en el archivo principal de Portage /etc/portage/make.conf añadimos:

# overlays de Layman:
source /var/lib/layman/make.conf

como vemos, le hemos informado a Portage de que a partir de ahora también tenga en cuenta lo que diga el archivo de configuración de Layman, que está en /var/lib/layman/make.conf. Después hablaremos de este archivo.
Uso de Layman:

lista de todos los overlays que nos permite administrar layman:

layman -L

añadir un overlay a tu sistema:

sudo layman -a nombre-overlay

lista los overlays ya descargados en el sistema:

layman -l (ele minúscula)

actualizar un overlay:

sudo layman -s nombre-overlay

actualizar todos los overlays instalados:

sudo layman -S

información sobre un overlay:

layman -i nombre-overlay

eliminar un overlay:

sudo layman -d nombre-overlay

Más información: man layman

Al añadir un overlay, Layman le crea un directorio con su nombre en /var/lib/layman/ y lo añade automáticamente en el archivo /var/lib/layman/make.conf

Layman asigna por defecto una prioridad 50 a todo overlay que instala, lo que se puede ver en /var/lib/layman/installed.xml. Por lo que como el árbol de Portage tiene por defecto una prioridad de -1000, los overlays de Layman tienen prioridad. Layman va instalando los más nuevos al final, por los que les da más prioridad.

Para manejar las prioridades de todos los overlays del sistema, lo mejor es utilizar el archivo /var/lib/layman/make.conf

Un ejemplo de este podría ser:

PORTDIR_OVERLAY=”
/var/lib/layman/mozilla
/var/lib/layman/xfce-dev
$PORTDIR_OVERLAY

Vemos que hay dos overlays añadidos con Layman, “xfce-dev” y “mozilla” y al final está la variable que apunta a un overlay personal que yo pueda tener, que sería como vimos antes:

# mi overlay:
PORTDIR_OVERLAY=”/home/usuario/overlay”

incluido en mi /etc/portage/make.conf

El orden en este archivo determina una prioridad inversa, o sea, que cuanto más abajo está el overlay, más prioridad tiene, por lo que en nuestro caso sería:

$PORTDIR_OVERLAY (el primero)
/var/lib/layman/xfce-dev (el segundo en prioridad)
/var/lib/layman/mozilla (el tercero)

Como en el archivo no se hace referencia al árbol de Portage, este sigue teniendo la última prioridad (la más baja, -1000).

Podemos consultar la prioridad de todos nuestros árboles (overlays) mediante el comando:

emerge --info --verbose

(*) Pero atención pues en la respuesta a este comando a mayor número mayor prioridad. Por lo que 3 tiene más prioridad que 2, y 2 más que 1, y 1 más que 0, y 0 más que -1000 (menos mil).

Para terminar, un truco que me parece interesante. Teniendo en cuenta que Portage, siempre instalará por defecto la versión más moderna de un paquete que encuentre en todos nuestros overlays (independientemente de las prioridades que estos tengan), es un buen consejo de seguridad darle la mayor prioridad al árbol de Portage. De esa manera, ante dos paquetes de la misma versión, Portage instalará siempre la versión oficial de Gentoo (la del árbol principal de Portage), y si hay una versión más moderna en otro overlay, instalará esta última.
Para ello:

en nuestro /var/lib/layman/make.conf

añadimos al final:

${PORTDIR}

con lo que en el ejemplo de antes quedaría:

PORTDIR_OVERLAY=”
/var/lib/layman/xfce-dev
/var/lib/layman/mozilla
/var/lib/layman/ubuntu
$PORTDIR_OVERLAY
${PORTDIR}

de esta manera, como ${PORTDIR} es la variable que en nuestro /etc/porteg/make.conf define el árbol principal de Portage, así:

PORTDIR=”/usr/portage”

lo que estamos haciendo es darle prioridad al árbol de Portage, luego a nuestro overlay personal si lo tenemos, y después a los overlays de Layman (cuanto más arriba, menos prioridad).

Un ejemplo práctico del uso de overlays con Layman:

Quiero instalar imagewriter, la excelente herramienta de OpenSuse para crear imágenes desde una ISO en un USB. Como no lo encuentro en Portage, busco aquí:
http://gpo.zugaina.org/

me informa de que está en el overlay gentoo-zh (layman).

Lo busco en Layman:

layman -L

y lo añado:

sudo layman -a gentoo-zh

y ya está. Ahora podré emergerlo con emerge: (previa operación de agregado en nuestro package.accept_keywords tal como nos pedirá nuestro amado Portage 🙂 siempre hay que obedecer a Portage.

sudo emerge -a imagewriter

con lo que ya podremos volcar fácilmente la última ISO de Ubuntu, para probarla en live-cd desde un lápiz USB, sin caer en el lamentable error de instalarla. Nosotros no somos ubunteros, sino gentooza 😛

gentoo_linux_wallpaper_art_masterpieces_to_color-otherz

Anuncios

7 comentarios en “Overlays y Layman en Gentoo”

  1. Gentoo Layman Wiki presenta dos metodos para configurar Layman: a) repos.conf (Default) y b) make.conf. Cuales serian las diferencias?

    Saludos.

    1. Antiguamente se hacía en el make.conf, y hace aproximadamente un año se diseñó, siguendo nueva tendencia de separar cosas del make.conf, el método ahora por defecto en repos.conf. Es simplemente una nueva forma de organizar las cosas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s