# prioridades de los overlays en Layman y más [SOLUCIONADO]

## essau

hola querida gentoozilla,

estoy escribiendo un artículo sobre overlays con layman

y no consigo entender bien el asunto de las prioridades.

Lógicamente he leído con detalle estas dos wikis:

https://wiki.gentoo.org/wiki/Overlay

http://wiki.gentoo.org/wiki/Layman

pero no hay cosas que no entiendo.

Al parecer layman asigna por defecto una prioridad 50 a todo overlay que instala,

lo que se puede ver en /var/lib/layman/installed.xml

Efectivamente miro ese archivo y todos tienen prioridad 50. Por lo que teniendo el mismo valor no priorizan.

Yo creía que el orden en /var/lib/layman/make.conf determinaba la prioridad. Este es mi archivo:

```
PORTDIR_OVERLAY="

/var/lib/layman/xfce-dev

/var/lib/layman/mozilla

/var/lib/layman/ubuntu

$PORTDIR_OVERLAY

"
```

pero a su vez si hago la consulta de prioridades siguiente:

emerge --info --verbose

veo que:

```
[gentoo]

location = /usr/portage

masters = 

priority = -1000

sync-type = rsync

sync-uri = rsync://rsync.au.gentoo.org/gentoo-portage

[mozilla]

location = /var/lib/layman/mozilla

masters = gentoo

priority = 1

[ubuntu]

location = /var/lib/layman/ubuntu

masters = gentoo

priority = 2

[xfce-dev]

location = /var/lib/layman/xfce-dev

masters = gentoo

priority = 0
```

con lo que veo que el árbol de Portage tiene la mínima prioridad (-1000), eso es normal pues se supone que los overlays se instalan para consultarlos antes que al árbol principal.

Pero no me cuadran las prioridades 0, 1, 2, con el orden de mi /var/lib/layman/make.conf

¿Alguien me aclara un poco esto y cuál es la forma recomendada de establecer las prioridades?

gracias.

----------

## quilosaq

Esto es lo que saco en claro después de leer los artículos:

Las prioridades positivas simpre son mayores que las negativas.

Las prioridades positivas son mayores cuanto mayor es el número.

El orden de mayor a menor prioridad sería: ..., 4, 3, 2, 1, 0, -1, ..., -999, -1000, (no se hasta donde seguirá)

En cuanto a la forma de establecer prioridades creo que dependerá del uso que se haga de los overlays.

Un uso normal: sólo algunos overlay que son manejados por layman y que queremos que simpren tengan preferencia sobre el arbol oficial.

Lo mas práctico es manejar a mano la variable  PORTDIR_OVERLAY en /var/lib/layman/make.conf. Ordenar las rutas de los repositorios de abajo arriba según nuestra preferencia. Dejar al final $PORTDIR_OVERLAY.

Con esto los overlays, en el orden fijado, serán los primeros y luego estará el arbol oficial.

EDITO: Cambio lo que puse mal la primera vez.Last edited by quilosaq on Sat Nov 01, 2014 12:20 am; edited 1 time in total

----------

## essau

hola quilosaq

releyendo todo creo que sí son coherentes los datos de prioridad que había copiado.

PORTDIR_OVERLAY="

/var/lib/layman/xfce-dev   ---> prioridad 0

/var/lib/layman/mozilla     ---> prioridad 1

/var/lib/layman/ubuntu     ---> prioridad 2

$PORTDIR_OVERLAY         ---> esta es la variable por si tengo definido un overlay personal en mi /etc/portage/make.conf

"

Como mi francés en mucho mejor que mi inglés creo haber entendio todo en la versión francesa:

https://wiki.gentoo.org/wiki/Overlay/fr

```
Définir la priorité des arbres alternatifs

La priorité des arbres alternatifs est calculée d'après leur ordre d'apparition dans la variable PORTDIR_OVERLAY. Portage balaye cette variable de gauche à droite et incrémente la priorité en chemin. L'entrée la plus à gauche commence avec une priorité de 1, la suivante a une priorité de 2 et ainsi de suite.

Note

Il y a quelque temps, la priorité des arbres alternatifs pouvait être définie dans /etc/portage/repos.conf. Ceci n'a plus cours.

Sauf si PORTDIR_OVERLAY contient une entrée pour l'arbre de Portage, l'arbre de Portage se voit toujours assigner une priorité de -1000. On peut facilement changer cela en plaçant PORTDIR dans la variable PORTDIR_OVERLAY:

File/etc/portage/make.confFixer la priorité de l'arbre de Portage à la main

PORTDIR_OVERLAY="/home/user/overlay ${PORTDIR}"

Dans l'exemple précédent, l'arbre alternatif utilisateur aura une priorité de 1 et l'arbre de Portage une priorité de 2. 
```

resumiendo:

si no se cambia, el árbol de Portage tiene la prioridad mínima (-1000), si se tiene un overlay personal, este tendrá la prioridad máxima, por eso está al final en /var/lib/layman/make.conf corresponde a $PORTDIR_OVERLAY , el cual yo confundía con el árbol de Portage; no es el árbol principal, sino la variable que corresponde a un overlay propio si lo tengo en el sistema y que tendría que estar definido en /etc/portage/make.conf.

Y en medio están los overlays de layman cuya prioridad es: a mayor número positivo más prioridad, lo cual corresponde con el orden inverso en la lista de /var/lib/layman/make.conf (cuanto más abajo, o al la derecha, depende de como lo ponga, más prioridad). Por eso al final está la variable de overlay personal, para darle la máxima prioridad.

Finalmente, me parece interesante comentar, que una opción interesante (y de seguridad), podría ser darle la máxima prioridad al aŕbol de Portage así:

```
PORTDIR_OVERLAY="

/var/lib/layman/xfce-dev

/var/lib/layman/mozilla

/var/lib/layman/ubuntu

$PORTDIR_OVERLAY

${PORTDIR}

"
```

con lo que tendríamos:

1. los overlays de layman de menos a más prioridad.

2. $PORTDIR_OVERLAY (nuestro overlay personal, si lo tenemos, con más prioridad aún)

3. ${PORTDIR} el árbol de Portage con la máxima prioridad

en /etc/porteg/make.conf está definida la variable del árbol principal:

PORTDIR="/usr/portage"

esta opción, si no me equivoco, garantiza que en caso de un mismo paquete-versión, se instale la del árbol oficial de Portage.

Bien jodido todo esto de los overlays y sus prioridades. Pero así es Gentoo, y por eso me gusta.   :Rolling Eyes: 

Salvo que alguien me corrija algún error de todo esto, intentaré publicar un artículo en mi blog resumiendo e intentando aclarar todo este lío.

----------

## essau

me apostillo a mí mismo:

efectivamente, lo acabo de comprobar.

Con este /var/lib/layman/make.conf

```
PORTDIR_OVERLAY="

/var/lib/layman/mozilla

/var/lib/layman/xfce-dev

$PORTDIR_OVERLAY

${PORTDIR}

"
```

si hago en consola un: 

emerge --info -v

veo que responde:

```
Repositories:

mozilla

    location: /var/lib/layman/mozilla

    masters: gentoo

    priority: 0

xfce-dev

    location: /var/lib/layman/xfce-dev

    masters: gentoo

    priority: 1

gentoo

    location: /usr/portage

    sync-type: rsync

    sync-uri: rsync://rsync.au.gentoo.org/gentoo-portage

    priority: 2
```

ahora ya el árbol de Portage no tiene la última prioridad como antes (-1000), sino que tiene la primera, en este caso 2. Luego prioriza en orden inverso según la posición el el archivo /var/lib/layman/make.conf por lo que le asigna a mayor número positivo, mayor prioridad.  

la opción para aprender en Gentoo y en Linux es siempre la misma, leer y trastear. 

 :Wink: 

----------

## essau

tras todo el día, leyendo docu, investigando y haciendo pruebas, deseo compartir con vosotros mis aprendizajes de hoy:

Overlays y Layman en Gentoo:

http://rootsudo.wordpress.com/2014/10/31/overlays-y-layman-en-gentoo/

de nada,

aprendo para compartir.

 :Wink: 

----------

