Crear un overlay local

Fuente: https://rootsudo.wordpress.com/2014/11/28/crear-un-overlay-local-en-gentoo/

En una entrada anterior veíamos como gestionar overlays mediante Layman:

Overlays y Layman en Gentoo

veamos ahora como tener nuestro propio overlay local, en el que podremos meter los ebuilds que nosotros deseemos. La ventaja de esto es que no hay porqué aceptar todo lo que traiga un overlay externo, sino que podemos buscar por nuestra cuenta ebuilds que nos interesen para emergerlos con Portage.

El overlay local podemos tenerlo donde queramos, pero un buen sitio por defecto es:
/usr/local/portage/

Lo primero que hay que hacer es crear dos directorios necesarios dentro, que son: metadata y profiles:

sudo mkdir -p /usr/local/portage/{metadata,profiles}

ahora hay que crear dentro de la carpeta profiles un archivo con el nombre de nuestro propio overlay, y que contenga el nombre del overlay (en este caso “mi-overlay”):

sudo echo ‘mi-overlay’ > /usr/local/portage/profiles/mi-overlay

y creamos el archivo layout.conf dentro de metadata que contenga “masters = gentoo”:

sudo echo ‘masters = gentoo’ > /usr/local/portage/metadata/layout.conf

definimos a Portage como propietario para que pueda controlar el overlay:

sudo chown -R portage:portage /usr/local/portage

Pues ya sólo nos queda informar a Portage de dónde está nuestro nuevo overlay local para que pueda usarlo. Para ello agregamos en el famoso /etc/portage/make.conf la siguiente línea:

PORTDIR_OVERLAY=”/usr/local/portage ${PORTDIR_OVERLAY}”

Lógicamente si es esa la ruta en la que lo hemos instalado.

Con esto ya está instalado nuestro nuevo overlay local. Veamos ahora cómo añadirle un ebuild que nos interesa instalar y que no está en el árbol oficial de Portage o, tal vez simplemente, que hemos encontrado una versión más moderna.

Podemos buscar y descargar ebuilds por ejemplo aquí:

http://gpo.zugaina.org/

descargamos el ebuild que nos interesa (en nuestro ejemplo vamos a suponer que hemos encontrado una versión más moderna de programa screenfetch de la que tenemos en el árbol oficial de Portage. Nos la descargamos.

http://gpo.zugaina.org/app-misc/screenfetch

En nuestro overlay local hay que mantener el mismo sistema que en el árbol de Portage, por lo que cada ebuild debe estar en su directorio y este a su vez dentro del directorio de su grupo de programas, en este caso:

app-misc/screenfetch/

Creamos los directorios necesarios:

sudo mkdir -p /usr/local/portage/app-misc/screenfetch

Luego copiamos el ebuild que nos hemos descargado dentro de /usr/local/portage/app-misc/screenfetch

Entramos en el directorio:

pushd /usr/local/portage/app-misc/screenfetch/

Creamos el archivo manifest dentro mediante la orden:

sudo repoman manifest

salimos del directorio mediante el comando:

popd

y nos aseguramos de que Portage sea el propietario recursivo de todo el árbol de archivos de nuestro overlay local:

sudo chown -R portage:portage /usr/local/portage

Y ya está. Ahora podemos emerger el nuevo ebuild. Si era un paquete que no estaba en Portage veremos que ahora sí que está, y si, como es nuestro caso, hemos encontrado una versión más moderna, veremos que Portage nos la propone para instalar:

sudo emerge -a screenfetch

En muchos casos Portage nos informará al intentar instalar un ebuild desde nuestro overlay local que se necesita añadir la autorización en el /etc/portage/package.accept_keywords

# screenfetch (overlay local)
app-misc/screenfetch ~amd64