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.back
cat 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