Este artículo es una continuación de mi  intento anterior  de armar una técnica para alentar a Sabayon a dejar de usar paquetes que están enmascarados para pruebas y usar paquetes estables en su lugar. Publiqué un enlace al original en los foros de http://www.sabayonlinux.org, y  voxiac señaló lo obvio : si desea llegar a un entorno estable, entonces el objetivo debería ser cambiar ACCEPT_KEYWORDS para que no acepte todas las pruebas enmascaradas paquetes al uso de establos. El resto puede seguir desde allí. Así que así es como se hace.

Nota: Todas las referencias a ~ amd64 deben cambiarse para reflejar su arquitectura, probablemente x86 si no amd64

Lo primero es lo primero, edite  /etc/make.conf  y comente, elimine o cambie la línea ACCEPT_KEYWORDS a:

ACCEPT_KEYWORDS=amd64

Si hace esto,  debe  hacer el resto, de lo contrario, podría tener problemas la próxima vez que surja algo. Esta línea le dice a  emerge  que todos los paquetes deben ser estables a menos que se indique explícitamente en /etc/portage/package.keywords

A continuación, necesitamos obtener la lista de paquetes que actualmente están enmascarados como paquetes de prueba y crear un archivo que podamos usar para agregar al  package.keywords  para que  emerge  sepa que pueden permanecer como paquetes de prueba.

Usamos tres comandos interconectados para hacer esto. Puede probarlos etapa por etapa para que pueda ver exactamente lo que está sucediendo. La primera parte es:

equery -i -N list

Esto muestra una lista de paquetes instalados, como:

[I--] [ ~] x11-wm/twm-1.0.3 (0)

La segunda columna contendrá una tilde '~' si el paquete está enmascarado. Estos son los paquetes que necesitamos, por lo que canalizaremos la salida a grep para extraer solo aquellas líneas que contienen una tilde:

equery -i -N list | grep \~

La salida ahora solo contendrá los paquetes enmascarados. Necesitamos manipular un poco cada línea para extraer solo el nombre del paquete, y luego agregar el prefijo y el sufijo que necesitamos listos para el  package.keywords archivo:

equery -i -N list | grep \~ | sed 's/.* \(.*\) (.*/=\1 ~amd64/'

Esto transforma la línea anterior:

[I--] [ ~] x11-wm/twm-1.0.3 (0)

dentro:

=x11-wm/twm-1.0.3 ~amd64

Esto significa “permit use of a masked package for x11-wm/twm, for version 1.0.3 only.”

Solo necesitamos enviar los resultados de eso a un archivo y agregarlo a /etc/portage/package.keywords

Salida a un archivo:

equery -i -N list | grep \~ | sed 's/.* \(.*\) (.*/<=\1 ~amd64/' > testpackages

Agregue al final de  /etc/portage/package.keywords  (primero haga una copia de seguridad):

cp /etc/portage/package.keywords /etc/portage/package.keywords.backcat testpackages >> /etc/portage/package.keywords

Este último comando deberá realizarse con privilegios de root. Si siguió el enfoque del artículo anterior, tendrá un montón de entradas antiguas del método anterior. Estos deberán eliminarse primero.

Una vez que haya hecho esto, puede dejarlo en paz. A medida que se publiquen nuevos paquetes en el árbol estable, reemplazarán a los que haya instalado y las  package.keywords entradas se ignorarán. voxiac sugirió un trabajo CRON que limpiaría el  package.keywords archivo con el tiempo. Intentaré armar algo más adelante, dependiendo del nivel de molestia que sea la limpieza.

Por cierto, este comando le dará un recuento de los paquetes de prueba actuales que ha instalado:

equery -i -N list | grep \~ | wc -l

Versus total instalado:

equery -i -N list | grep \/ | wc -l

Mi cuenta es:

Total: 1347, de los cuales inestables: 852.

Todo un camino por recorrer….



Jueves, Febrero 7, 2008

« Atrás