Base de Conocimiento:Aceptar una keyword para un solo paquete

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Knowledge Base:Accepting a keyword for a single package and the translation is 100% complete.
Other languages:

No todo el software que se encuentra en el repositorio de Gentoo podrá ser instalable inmediatamente por el comando emerge. Todo software que esté pasando por una fase de pruebas (también llamada fase de estabilización) es escondido tras una keyword y debe ser explícitamente aceptado para poder ser instalado (excepto en el caso de que se esté utilizando la rama de pruebas de forma global). Tenga en cuenta que usar software que se encuentra en la rama de pruebas podría provocar problemas de estabilidad. No es recomendada a usuarios/as sin experiencia.

Esta guía se centra en un tema en particular. Para ver información completa y precisa a la hora de trabajar con Portage, vea la página del manual de emerge y el Manual Gentoo.

Intento de instalar un paquete de la rama de pruebas

A la hora de intentar instalar un paquete que se encuentra en la rama de pruebas del repositorio de Gentoo, el comando de Portage emerge se detendrá tras mostrar un aviso. Por ejemplo, al intentar instalar games-kids/gcompris, que actualmente solo tiene versiones en la rama de pruebas:

root #emerge --ask games-kids/gcompris
                                                                                                                                        
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
 
!!! All ebuilds that could satisfy "games-kids/gcompris" have been masked.
!!! One of the following masked packages is required to complete your request:
- games-kids/gcompris-1.0::gentoo (masked by: ~amd64 keyword)
 
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

Portage inferió que la única manera de cumplir con la petición sería instalando la versión en la rama de pruebas ("~<arquitectura>") del paquete solicitado. En el ejemplo de arriba, la rama de pruebas utiliza la keyword ~amd64 ya que el sistema del ejemplo utiliza la arquitectura amd64 (x86_64).

Portage avisará de que se está solicitando la versión en la rama de pruebas de un paquete para el que no existe una versión en la rama estable, pero cuya versión en la rama de pruebas sí se encuentra en el repositorio de Gentoo. También informará sobre si una versión específica de un paquete es solicitada pero dicha versión del paquete se encuentra en la rama de pruebas.

Se mostrará el mismo error en pantalla si una dependencia del paquete solicitado solo se encuentra disponible en la rama de pruebas.

Cómo hacer que los paquetes de la rama de pruebas estén disponibles

Siempre son preferibles los paquetes que se encuentren en la rama estable si sus características fuesen suficiente. Los/as usuarios/as deberán estar preparados ante el riesgo de inestabilidad que supone el usar paquetes de la rama de pruebas, y se debe recordar que no se recomienda que estos/as instalen paquetes de dicha rama.

En el caso de encontrar bugs, se motiva encarecidamente que sean publicados adecuadamente y donde toca.

Uso de la opción --autounmask-write en emerge

Probablemente el método más sencillo para instalar paquetes de la rama de pruebas.

Ejecute el comando emerge con la opción --autounmask=y --autounmask-write para solicitar la alteración de archivos de texto requerida para desenmascarar un paquete de la rama de pruebas. Por ejemplo:

root #emerge --ask --autounmask=y --autounmask-write games-kids/gcompris
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[...]
[ebuild  N    ~] games-kids/gcompris-1.0  USE="handbook -debug -kiosk -test" 
 
The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by games-kids/gcompris (argument)
=games-kids/gcompris-1.0 ~amd64
 
Would you like to add these changes to your config files? [Yes/No] y
 
Autounmask changes successfully written.
 
 * IMPORTANT: 2 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.

Nótese que la virgulilla ("~") en la sección justo antes del nombre del paquete indica que el paquete se encuentra en la rama de pruebas.

Para revisar y aplicar los cambios a los archivos protegidos que fueron modificados por el comando anterior, ejecute dispatch-conf.

root #dispatch-conf
--- /etc/portage/package.accept_keywords        2021-04-01 09:12 +0200
+++ /etc/portage/._cfg0000_package.accept_keywords      2021-04-24 00:29 +0200
@@ -11,3 +11,5 @@
[...]
+# required by games-kids/gcompris (argument)
+=games-kids/gcompris-1.0 ~amd64
 
>> (1 of 2) -- /etc/portage/package.accept_keywords
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge: 

Dependiendo de la configuración del sistema, los cambios pueden ser aplicados automáticamente, o una pantalla de paginador puede ser mostrada, que tendrá que ser cerrada para continuar (q en el paginador predeterminado, less). Si los cambios no son aplicados automáticamente, dispatch-conf pedirá confirmación. Si las modificaciones propuestas son correctas, presione u para aplicar los cambios.

Vea la entrada del manual sobre dispatch-conf para información detallada.

Una vez los cambios de autounmask hayan sido revisados y fusionados, el paquete debería estar disponible para Portage y puede ser instalado:

Translations:Knowledge Base:Accepting a keyword for a single package/22/es

root #emerge --ask games-kids/gcompris
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[...]
[ebuild  N    ~] games-kids/gcompris-1.0  USE="handbook -debug -kiosk -test" 
 
Would you like to merge these packages? [Yes/No] 

Configuración manual

Un paquete puede ser establecido como disponible al editar los archivos de configuración de Portage. Esto depende de las preferencias del/la usuario/a. Un paquete puede ser instalado con las opciones autounmask del comando emerge, como ya hemos visto, o en su lugar editando manualmente opciones de configuración, ya sea en un archivo de texto plano en el directorio de configuración de Portage o dentro de un directorio (en lugar de dicho archivo) para dividir la configuración en archivos individuales.

Archivo de texto plano

Tener un archivo que contenga entradas para cada paquete puede permitir una mayor flexibilidad para algunos/as usuarios/as que el uso de la opción autounmask.

Si el directorio /etc/portage no existe aún, debe ser creado primero:

root #mkdir --parents /etc/portage

Añada las líneas relevantes para establecer el paquete deseado como disponible. Por ejemplo, para instalar el paquete games-kids/gcompris de la rama de pruebas:

root #echo "games-kids/gcompris ~amd64" >> /etc/portage/package.accept_keywords

Para instalar una versión del paquete específica:

root #echo "=games-kids/gcompris-1.0 ~amd64" >> /etc/portage/package.accept_keywords

Usando directorios

Tener un directorio para organizar esta configuración puede ofrecer más beneficios en cuanto a flexibilidad.

Para organizar la configuración en archivos separados, cree la carpeta /etc/portage/package.accept_keywords en vez de un archivo. Si aún no existe:

root #mkdir --parents /etc/portage/package.accept_keywords

Como ejemplo de cómo usar la estructura de directorio como manera de organizar la configuración, supongamos que se quiere instalar el paquete Term-ScreenColor como dependencia, pero dicho paquete solo se encuentra en la rama de pruebas del repositorio.

Un archivo llamado Term-ScreenColor (por ejemplo) se utilizará para contener las configuraciones relevantes al paquete Term-Screen, y servirá de referencia para entender cómo se estableció el paquete Term-Screen como disponible desde la rama de pruebas:

root #echo "=dev-perl/Term-Screen-1.30.0 ~amd64" >> /etc/portage/package.accept_keywords/Term-ScreenColor

Notas adicionales

Para permitir revisiones de paquetes -r#, que podrían contener actualizaciones beneficiosas inmediatas, reemplace el caracter previo = (signo de igualdad) con una virgulilla (~):

~dev-perl/Term-Screen-1.30.0 ~amd64

La keyword como tal se suele poder omitir:

~dev-perl/Term-Screen-1.30.0

Para siempre instalar la última versión en la rama de pruebas, suprima el signo = o ~ precedentes y la versión al final:

dev-perl/Term-Screen

Si el enmascaramiento surge por una falta de definición de KEYWORDS, utilice la notación **:

~sys-apps/portage-9999 **

Cómo los paquetes son marcados como pertenecientes a la rama de pruebas

Todo ebuild (paquete) en Gentoo tiene un conjunto de valores KEYWORDS que referencia a la hora de compilarse. Estas keywords identifican en qué arquitecturas puede ser instalado el ebuild, y si el ebuild es estable (sin prefijo) o está aún en la fase de pruebas (con el prefijo ~).

En ciertos casos el paquete se define sin contenido de KEYWORDS. En este caso específico, Portage sugerirá usar el codigo especial ** para volverlo disponible.

Véase también