Manual:AMD64/Trabajo/USE

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Working/USE and the translation is 100% complete.
Manual AMD64
Instalación
Acerca de la instalación
Elegir los medios
Configurar la red
Preparar los discos
Instalar el stage3
Instalar el sistema base
Configurar el núcleo
Configurar el sistema
Instalar las herramientas
Configurar el cargador de arranque
Terminar
Trabajar con Gentoo
Introducción a Portage
Ajustes USE
Características de Portage
Sistema de guiones de inicio
Variables de entorno
Trabajar con Portage
Ficheros y directorios
Variables
Mezclar ramas de software
Herramientas adicionales
Repositorios personalizados de paquetes
Características avanzadas
Configuración de la red
Comenzar
Configuración avanzada
Configuración de red modular
Conexión inalámbrica
Añadir funcionalidad
Gestión dinámica


La idea que hay detrás de los ajustes USE

Al instalar Gentoo, los usuarios toman decisiones según el entorno con el que están trabajando. Una configuración para un servidor difiere de una configuración para una estación de trabajo. Una estación de trabajo de juegos difiere de una estación de trabajo de renderizado 3D.

Estas diferencias no solo dependen de los paquetes instalados, si no también de las características para las que ciertos paquetes tienen soporte. Si no necesita OpenGL, ¿para qué molestarse en instalar OpenGL y construir la mayoría de sus aplicaciones con soporte OpenGL? Si no quiere usar KDE, ¿para qué molestarte en compilar paquetes con soporte para KDE si podrían funcionar perfectamente sin él?

Para ayudar a los usuarios a decidir qué instalar/activar o no, necesitamos que el usuario especifique su entorno de una manera sencilla. Esto obliga al usuario a decidir que es lo que realmente quiere; además de facilitar a Portage, nuestro sistema de gestión de paquetes, la tarea de tomar decisiones útiles.

Definición de ajuste USE

Ingrese los ajustes USE. Una ajuste de este tipo es una palabra clave que incorpora información de soporte y dependencia para un determinado concepto. Si un determinado ajuste USE está habilitado, Portage sabrá que el administrador del sistema desea soporte para la palabra clave elegida. Por supuesto, esto puede alterar la información de dependencia de un paquete. Según el ajuste USE, ésto puede requerir la incorporación de "muchas" más dependencias para cumplir con los cambios de dependencia solicitados.

Eche un vistazo a un ejemplo concreto: el ajuste USE kde. Si este ajuste no está establecido en la variable USE (o si el valor tiene un prefijo con un signo menos: -kde), entonces todos los paquetes que tienen soporte opcional para KDE serán compilado sin soporte KDE. Todos los paquetes que tengan una dependencia opcional de KDE se instalarán "sin" instalar las bibliotecas de KDE (como dependencia).

Cuando el ajuste kde está habilitado, esos paquetes se compilarán "con" soporte para KDE, y las bibliotecas de KDE "si" se instalarán como dependencia.

Al definir correctamente los ajustes USE, el sistema se adaptará específicamente a las necesidades del administrador del sistema.

Usando los ajustes USE

Declarar ajustes USE permanentes

Todos los ajustes USE se declaran dentro de la variable USE. Para simplificar al usuario la tarea de buscar y escoger ajustes USE, ya proporcionamos una configuración predeterminada. Esta configuración es un compendio de ajustes que creemos se utilizan frecuentemente por los usuarios de Gentoo. Dicha configuración predeterminada se declara en los ficheros make.defaults que forman parte de su perfil.

El perfil al que atiende su sistema lo indica el enlace simbólico /etc/portage/make.profile. Cada perfil funciona sobre otro, más extenso, y el resultado final es una suma de todos ellos. El perfil más alto es el perfil base (/var/db/repos/gentoo/profiles/base)..

Para ver los ajustes USE activados (permanentemente), use emerge --info:

root #emerge --info | grep ^USE
USE="a52 aac acpi alsa branding cairo cdr dbus dts ..."

Esta variable contiene bastantes palabras clave. No modifique el fichero make.defaults para ajustar la variable USE a sus necesidades: ¡Los cambios en estos ficheros se perderán al actualizar el repositorio de Gentoo!

Para modificar esta configuración predeterminada, necesita añadir o eliminar palabras clave a la variable USE. Para llevarlo a cabo, se define la variable USE en /etc/portage/make.conf. En esta variable añada los ajustes USE que necesite o elimine los que no quiera. Para eliminarlos coloque el símbolo menos (-) delante.

Por ejemplo, para eliminar el soporte para KDE y Qt además de añadir soporte para LDAP, puede definirse el siguiente ajuste USE en /etc/portage/make.conf:

ARCHIVO /etc/portage/make.confActualizar USE en make.conf
USE="-kde -qt5 ldap"

Declarar ajustes USE para paquetes específicos

En algunas ocasiones, los usuarios quieren declarar un determinado ajuste USE para una (o un par) de aplicaciones pero no de forma general para todo el sistema. Para conseguir esto, edite /etc/portage/package.use. Normalmente package.use es sólo un archivo, sin embargo también puede ser un directorio lleno de archivos subordinados; lea el consejo de abajo y man 5 portage para obtener más información acerca de cómo usar esta convención. Los siguientes ejemplos asumen que package.use es sólo un archivo.

Por ejemplo, para disponer únicamente de soporte para Blu-ray en el paquete VLC media player:

ARCHIVO /etc/portage/package.useHabilitar soporte de Blu-ray para VLC
media-video/vlc bluray
Consejo
Si package.use ya existe como un directorio (a diferencia de un único fichero), los paquetes pueden modificar sus ajustes USE simplemente creando ficheros dentro del directorio package.use/. Cualquier convención acerca del nombrado de ficheros debería funcionar, sin embargo es prudente implementar un esquema de nombrado coherente. Una convención es simplemente utilizar el nombre del paquete como título del fichero hijo. Por ejemplo, se puede definir el ajuste USE bluray para el paquete media-video/vlc de la forma siguiente:

root #echo "media-video/vlc bluray" >> /etc/portage/package.use/vlc

Por supuesto también puede desactivar el empleo específico de un ajuste USE para una aplicación en concreto. Por ejemplo si no quiere soporte para bzip2 en PHP (pero lo quiere para otros paquetes al declarar ese ajuste USE en make.conf):

ARCHIVO /etc/portage/package.useDeshabilitar soporte bzip2 para PHP
dev-lang/php -bzip2

Declarar ajustes USE temporales

A veces necesitará utilizar una cierta configuración de USE tan solo una vez. En lugar de editar /etc/portage/make.conf dos veces (una para hacer y otra para deshacer los cambios) puede declarar la variable USE como una variable de entorno. Recuerde que, si utiliza este método, cuando vuelva a emerger o actualice este aplicación (tanto si es particular como si forma parte de una actualización del sistema) ¡Perderá los cambios!

En el siguiente ejemplo se elimina temporalmente el valor pulseaudio de la variable USE durante la instalación de SeaMonkey:

root #USE="-pulseaudio" emerge www-client/seamonkey

Precedencia

Por supuesto, hay una determinada precedencia respecto a qué configuración tiene prioridad sobre la configuración del USE. La precedencia para la configuración del USE es (el primero tiene la mínima prioridad):

  1. Configuración predeterminada de USE declarada en los archivos make.defaults de su perfil.
  2. Configuración definida por el usuario en /etc/portage/make.conf
  3. Configuración definida por el usuario en /etc/portage/package.use
  4. Configuración definida por el usuario como variable de entorno

Para ver el valor final de USE tal y como lo verá Portage, ejecute emerge --info. Se listarán una serie de variables importantes (incluyendo la variable USE) con sus valores actuales tal como los conoce Portage.

root #emerge --info

Adaptar su sistema completamente a los nuevos ajustes USE

Si ha cambiado sus ajustes USE y desea actualizar todo su sistema para que utilice el nuevo ajuste, utilice la opción de emerge llamada --newuse:

root #emerge --update --deep --newuse @world

A continuación, ejecute una limpieza completa de Portage para eliminar las dependencias que habían sido instaladas en su "antiguo" sistema pero que han quedado obsoletas por los nuevos ajustes USE.

Importante
Compruebe la lista proporcionada de paquetes "obsoletos" para asegurarse de que no elimine paquetes necesarios. En el siguiente ejemplo, el indicador --pretend (-p) hace que depclean solo enumere los paquetes sin eliminarlos:
root #emerge --pretend --depclean

Cunado depclean haya terminado, emerge puede que solicite reconstruir las aplicaciones que se han enlazado dinámicamente a objetos compartidos ofrecidos por paquetes que probablemente se hayan desinstalad. Portage conservará las bibliotecas necesarias hasta que esta acción se realice para evitar romper las aplicaciones. Portage almacena lo que necesita ser reconstruido en el conjunto preserved-rebuild. Para reconstruir los paquetes necesarios, se puede lanzar:

root #emerge @preserved-rebuild

Cuando todo esto haya terminado, su sistema estará utilizando la nueva configuración de los ajustes USE.

Ajuste USE específicos de un paquete

Viendo los ajustes USE disponibles

Veamos el ejemplo de seamonkey: ¿Qué ajustes USE influyen sobre él? Para averiguarlo, usamos emerge con las opciones --pretend (simula llevar a cabo la acción) y --verbose (obtener una salida más detallada):

root #emerge --pretend --verbose www-client/seamonkey
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[ebuild  N     ] www-client/seamonkey-2.48_beta1::gentoo  USE="calendar chatzilla crypt dbus gmp-autoupdate ipc jemalloc pulseaudio roaming skia startup-notification -custom-cflags -custom-optimization -debug -gtk3 -jack -minimal (-neon) (-selinux) (-system-cairo) -system-harfbuzz -system-icu -system-jpeg -system-libevent -system-libvpx -system-sqlite {-test} -wifi" L10N="-ca -cs -de -en-GB -es-AR -es-ES -fi -fr -gl -hu -it -ja -lt -nb -nl -pl -pt-PT -ru -sk -sv -tr -uk -zh-CN -zh-TW" 216,860 KiB
 
Total: 1 package (1 new), Size of downloads: 216,860 KiB

emerge no es la única herramienta disponible para esta labor. De hecho, tenemos una herramienta llamada equery dedicada a obtener información sobre los paquetes; la cual se encuentra en el paquete app-portage/gentoolkit. En primer lugar, instale gentoolkit:

root #emerge --ask app-portage/gentoolkit

Ahora ejecute equery con el argumento uses para ver los indicadores USE de un determinado paquete. Por ejemplo, para el paquete app-portage/portage-utils:

user $equery --nocolor uses =app-portage/portage-utils-0.93.3
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-portage/portage-utils-0.93.3:
 U I
 + + nls       : Add Native Language Support (using gettext - GNU locale utilities)
 + + openmp    : Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp"
 + + qmanifest : Build qmanifest applet, this adds additional dependencies for GPG, OpenSSL and BLAKE2B hashing
 + + qtegrity  : Build qtegrity applet, this adds additional dependencies for OpenSSL
 - - static    : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically

Satisfacer condiciones REQUIRED_USE

Algunos ebuilds obligan o prohíben ciertas combinaciones en los ajustes USE para funcionar correctamente. Estas se expresan mediante un conjunto de condiciones que forman una expresión dentro de REQUIRED_USE. Estas condiciones aseguran que, todas las funciones y dependencias están completas y que la construcción tenga éxito y que todo funcione como se espera. Si alguna condición no se cumple, emerge le avisará y le pedirá que corrija el problema.

Ejemplo Descripción
REQUIRED_USE="foo? ( bar )" Si se activa foo, se debe activar bar
REQUIRED_USE="foo? ( !bar )" Si se activa foo, no se debe activar bar
REQUIRED_USE="foo? ( || ( bar baz ) )" Si se activa foo, se debe activar bar o baz
REQUIRED_USE="^^ ( foo bar baz )" Se debe activar exactamente uno de los ajustes foo bar o baz
REQUIRED_USE="|| ( foo bar baz )" Se debe activar al menos uno de los ajustes foo bar o baz
REQUIRED_USE="?? ( foo bar baz )" Se puede activar no mas de uno de los ajustes foo bar o baz