Desenmascarar paquetes en Portage (package.unmask y package.accept.keywords)

Fuente: https://rootsudo.wordpress.com/2014/10/11/desenmascarar-paquetes-en-portage-gentoo/

Portage permite una amplia gama de acciones para interactuar con los paquetes en Gentoo. Ningún otro gestor de paquetes (ni siquiera el magnífico Pacman de ARCH) permite tanta versatilidad y personalización de acciones con los paquetes. Veamos porqué.

El directorio principal de configuración de Portage está en:

/etc/portage/

este directorio contiene el principal archivo de configuración de Portage make.conf, pero además contiene otros 4 archivos muy importantes para manejar Portage. Es este artículo trataremos dos de ellos.

package.unmask

por diferentes motivos, a veces aparecen en el árbol de Portage paquetes enmascarados. Esto lo hace el mantenedor del paquete pues puede determinar que no es un paquete completamente confiable, o tal vez porque es una versión preliminar y desea de este modo avisar al usuario de Gentoo etiquetándolo como [ Masked ] en color rojo. Al intentar instalarlo con emerge, Portage nos dirá que no puede pues está enmascarado.

Nota muy importante.- Portage es muy locuaz, debemos disciplinarnos, como buenos usuarios de Gentoo, a leer todo de lo que nos informa Portage mediante su fiel amigo emerge. Cada acción de emerge es comentada y nos responde siempre con información pertinente. Además en colorines que nos ayudan mucho a fijarnos en lo importante.

Portage siempre informa de la solución, tan sólo hay que hacerle caso.

ejemplo:

al intentar instalar el editor de vídeo OpenShot, Portage responde que está enmascarado y él mismo propone la solución:

sudo emerge -a openshot

añadir al archivo package.unmask la siguiente línea para desenmascararlo:

#OPENSHOT (editor de vídeo):
media-video/openshot

[sólo es necesaria la línea de abajo, pero es una excelente costumbre ponerle arriba un comentario (con su # delante) para saber qué es eso.]

y ahora al volver a intentar emerger openshot, Portage ya nos permitirá hacerlo.

sudo emerge -a openshot


package.accept.keywords

este archivo es parecido al anterior, pues también nos desbloquea paquetes que en principio no podemos instalar. Pero tiene sus peculiaridades. En general se usa mucho más que el otro, pues la mayoría de los paquetes que aparecerán enmascarados en Portage es porque pertenecen a la rama “inestable” o “testing” de Gentoo. Como lo prudente (al menos al principio) es estar en la rama estable, podemos instalar paquetes inestables simplemente desenmascarándolos en package.accept.keywords.

ejemplo:

supongamos que queremos instalar el Kernel CK, este: sys-kernel/ck-sources

sudo emerge -a ck-sources

Portage responde:
**

The following keyword changes are necessary to proceed:
(see “package.accept_keywords” in the portage(5) man page for more details)
# required by sys-kernel/ck-sources (argument)
=sys-kernel/ck-sources-3.14.4 ~amd64
**

Tan sólo hay que hacerle caso al dios Portage, o sea, agregar esa línea al archivo package.accept_keywords para que nos permita instalar las fuentes CK. Vemos que incluso la línea de arriba es ya un comentario, por lo que lo más cómodo será copiar y pegar las dos líneas a package.accept_keywords:

# required by sys-kernel/ck-sources (argument)
=sys-kernel/ck-sources-3.14.4 ~amd64

Como la línea empieza por el signo igual (=) eso quiere decir que tan sólo se autorizará la instalación de esa versión concreta, en este caso la 3.14.4, la cual debe de ser detallada. En el caso de que quisiésemos autorizar cualquier versión de ck-sources pondríamos:

sys-kernel/ck-sources ~amd64

lo que permitiría a Portage la actualización a una nueva versión de las CK. Es recomendable, por seguridad, y por control de versiones, sobre todo en paquetes tan importantes como kernels, autorizar sólo una versión concreta.

¿y qué significa eso de “~amd64” que hay al final de la línea? buena pregunta, (si es que la has hecho; en Linux en general, y en Gentoo en particular, siempre hay que preguntar (o preguntarse) todo, pues si no, no aprenderemos nada de nada y para eso te quedas en Ubuntu.

Pues ~amd64 significa que para mi arquitectura de microprocesador, en este caso la de 64 bits, el paquete en cuestión se considera inestable y por eso Portage (tan prudente él) no me permite instalarlo sin una autorización expresa por mi parte. Esa autorización es precisamente de la que se encarga el archivo package.accept_keywords. Para la arquitectura tradicional x86 de 32 bits sería “~x86”

Tres entradas típicas en el archivo package.accept_keywords:

Por defecto, la versión estable de Gentoo, instala un kernel más antiguo, si queremos que Gentoo nos permita instalar el último kernel, tan sólo añadimos:

# KERNEL inestable:
sys-kernel/gentoo-sources ~amd64

Si deseamos que Gentoo nos permita actualizar a las últimas versiones de Firefox y Thunderbird, en las versiones binarias, cosa que recomiendo, pues estos programas se actualizan con mucha frecuencia y puede resultar muy pesado estar compilándolos constantemente, tan sólo hay que incluir:

#FIREFOX-BIN:
www-client/firefox-bin ~amd64

#THUNDERBIRD-BIN:
mail-client/thunderbird-bin ~amd64