Manual de Gentoo: X86/Trabajando/Características

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:X86/Working/Features and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
X86 Manual
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


Características de Portage

Portage tiene varias características adicionales que hacen de su experiencia con Gentoo algo mucho mejor. Muchas de estas características residen en ciertas herramientas software que mejoran el rendimiento, la estabilidad, la seguridad, ...

Para activar o desactivar ciertas características de Portage necesita editar la variable FEATURES del archivo /etc/portage/make.conf. Esta variable contiene una lista con las palabras clave de cada característica separadas por un espacio en blanco. En algunos casos necesita además instalar la herramienta que implementa la característica.

No todas las características que soporta Portage están aquí reflejadas. Para una consulta completa por favor revise la página de la ayuda referente a make.conf

user $man make.conf

Para conocer qué características están siendo utilizadas por defecto, ejecute emerge --info y busque la variable FEATURES o utilice grep:

user $emerge --info | grep ^FEATURES=

Compilación Distribuida

Usar distcc

distcc es un programa para distribuir un trabajo de compilación a través de muchas, no necesariamente idénticas, máquinas en una red. Los clientes de distcc envían toda la información necesaria a los servidores DistCC disponibles (corriendo distccd) así pueden compilar trozos de código fuente para el cliente. El resultado final, es un tiempo de compilación más rápido.

Puede encontrar información más detallada sobre distcc (e información de como tenerlo funcionando sobre Gentoo) en el artículo sobre Distcc.

Instalar distcc

Distcc se distribuye con un monitor gráfico para monitorizar las tareas que su computador está enviando para compilar. Esta herramienta es instalada automáticamente si activa USE=gnome o USE=gtk.

root #emerge --ask sys-devel/distcc

Activar el soporte en Portage

Añada distcc a la variable FEATURES dentro de /etc/portage/make.conf. Hecho esto, edite la variable MAKEOPTS e incremente a la cantidad de trabajos de compilación en paralelo que su sistema permite. Una pauta conocida para configurarla es poner -jN donde N es el número de CPUs que ejecutan distccd (incluyendo la máquina local) más uno, pero quizá obtenga mejores resultados con otros números.

Ahora ejecute distcc-config y cree una lista de los servidores distcc disponibles. Para un ejemplo simple, supondremos que los servidores DistCC son 192.168.1.102 (el host local), 192.168.1.103 y 192.168.1.104 (los dos hosts "remotos"):

root #distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Por supuesto, no se olvide ejecutar también el demonio distccd:

root #rc-update add distccd default
root #/etc/init.d/distccd start

Compilación utilizando caché

Acerca de ccache

ccache es un caché de compilación rápida. Cuando compila un programa, puede guardar resultados intermedios, de forma que, si recompila el mismo programa, el tiempo de compilación se reducirá ampliamente. La primera vez que se ejecuta ccache, ésta será más lenta que una compilación normal. Recompilaciones posteriores deberían ser más rápidas. La herramienta ccache solo es útil si va a recompilar la misma aplicación muchas veces; por lo tanto en la mayoría de los casos es útil únicamente para los desarrolladores de software.

Para mas información sobre ccache, visite su página principal.

Advertencia
ccache puede causar numerosos fallos de compilación. Algunas veces ccache mantendrá objetos con código obsoleto o ficheros corruptos que pueden llevar a que no se pueda hacer emerge de ciertos paquetes. Si esto ocurre (Si obtiene errores como "File not recognized: File truncated"), intente recompilar la aplicación con ccache deshabilitado (FEATURES="-ccache" en /etc/portage/make.conf) antes de informar del error.

Instalar ccache

Para instalar ccache, ejecute la siguiente orden:

root #emerge --ask dev-util/ccache

Activar el soporte ccache en Portage

Primero, edite el fichero /etc/portage/make.conf y añada ccache a los valores definidos en la variable FEATURES. Si no existe FEATURES, entonces deberá crearla. A continuación, añada una nueva variable llamada CCACHE_SIZE y dele el valor 2G:

ARCHIVO /etc/portage/make.confHabilitar el soporte de ccache en Portage
FEATURES="ccache"
CCACHE_SIZE="2G"

Para comprobar si ccache funciona, pídale a ccache que te muestre las estadísticas. Ya que Portage utiliza un directorio diferente para guardar los datos, se necesita fijar la variable CCACHE_DIR para reflejar ésto:

root #CCACHE_DIR="/var/tmp/ccache" ccache -s

La ruta /var/tmp/ccache/ es el directorio por defecto que emplea Portage para ccache; si quiere cambiar esta variable, configure CCACHE_DIR en /etc/portage/make.conf.

Sin embargo, si ejecuta simplemente ccache, empleará como directorio por defecto ${HOME}/.ccache/, que es la razón por la cual necesita configurar la variable CCACHE_DIR cuando se le pide a Portage que muestre las estadísticas de ccache.

Utilizar ccache para compilaciones de C sin relación con Portage

Si quiere utilizar ccache para compilaciones que no tengan que ver con Portage, añada /usr/lib/ccache/bin/ al principio de su variable PATH (antes de /usr/bin). Esto puede llevarse a cabo editando el fichero ~/.bash_profile de su directorio home de usuario. ~/.bash_profile es una de las maneras de definir variables PATH.

ARCHIVO ~/.bash_profilePoner la ruta de ccache delante de cualquier otra
PATH="/usr/lib/bin:${PATH}"

Soporte para Paquetes Binarios

Crear paquetes binarios

Portage soporta la instalación de paquetes precompilados. A pesar de que Gentoo no proporciona paquetes precompilados por sí mismo, Portage puede funcionar perfectamente con paquetes precompilados.

Para crear un paquete precompilado puede utilizar la orden quickpkg si el paquete está instalado en su sistema, o hacer emerge con las opciones --buildpkg o --buildpkgonly.

Si quiere que Portage cree paquetes precompilados de cada paquete individual que instale, añada buildpkg a la variable FEATURES.

Puede encontrar mayor soporte para la creación de conjuntos de paquetes precompilados con catalyst. Para más información sobre catalyst, por favor lea las Preguntas frecuentes sobre Catalyst (en inglés).

Instalar Paquetes Precompilados

A pesar de que Gentoo no proporciona uno, puede crear un repositorio central donde almacene paquetes precompilados. Si quiere utilizar este repositorio, necesita que Portage lo conozca a través de la variable PORTAGE_BINHOST que debe apuntar al repositorio. Por ejemplo, si los paquetes precompilados están en ftp://buildhost/gentoo:

ARCHIVO /etc/portage/make.confAñadir la localización de PORTAGE_BINHOST
PORTAGE_BINHOST="ftp://buildhost/gentoo"

Cuando quiera instalar un paquete precompilado, añada la opción --getbinpkg a la orden emerge junto a la opción --usepkg. La primera le indica a emerge que descargue el paquete precompilado del servidor definido previamente, mientras que el segundo indica a emerge que intente instalar el paquete precompilado antes de buscar el código fuente y compilarlo.

Por ejemplo, para instalar gnumeric a través de paquetes precompilados:

root #emerge --usepkg --getbinpkg gnumeric

Más información sobre las opciones para utilizar paquetes precompilados con emerge puede consultarse en la página man de ayuda:

user $man emerge

Distribuir paquetes precompilados a otros

Si distribuye paquetes precompilados a otros, asegúrese que eso está permitido. Compruebe los términos para la distribución del desarrollador del paquete. Por ejemplo, para un paquete publicado bajo GNU GPL, las fuentes deben estar disponibles junto con los binarios.

Los ebuilds pueden definir una restricción bindist en su variable RESTRICT si los binarios construidos no son distribuibles. En algunos casos esta restricción está condicionada a uno o mas ajustes USE.

Por defecto, Portage no enmascara ningún paquete debido a esta restricción. Esto puede cambiarse globalmente configurando la variable ACCEPT_RESTRICT en /etc/portage/make.conf. Por ejemplo, para enmascarar paquetes que tengan una restricción bindist añada la siguiente línea a make.conf:

ARCHIVO /etc/portage/make.confAceptar paquetes distribuibles en binario
ACCEPT_RESTRICT="* -bindist"

También es posible modificar el valor de la variable ACCEPT_RESTRICT añadiendo la opción --accept-restrict al comando emerge. Por ejemplo, --accept-restrict=-bindist temporalmente enmascarará paquetes con restricción bindist.

Considere también ajustar la variable ACCEPT_LICENSE cuando distribuya paquetes. Vea la sección Licencias para ello.

Importante
Es exclusiva responsabilidad de cada usuario cumplir con los términos de licencia de los paquetes y con las leyes del pais de cada usuario. Las variables de metadatos definidas por los ebuilds (RESTRICT o LICENSE) pueden proporcionar indicaciones cuando la distribución de binarios no esté permitida, de manera que la obtención desde Portage o cuestiones respondidas por los desarrolladores de Gentoo no son declaraciones legales, y como tales, no debe confiarse en ellas. Sea cuidadoso de respetar las leyes de su ubicación física.

Descargar los Ficheros

Userfetch

Cuando Portage se ejecuta por el usuario root, FEATURES="userfetch" permitirá que Portage ejecute sin los privilegios de superusuario mientras obtiene las fuentes. Este es una pequeña mejora en la seguridad.

If userfetch is set in FEATURES be sure to change the owner of all the files beneath /usr/portage using the chown command with root privileges:

root #chown --recursive --verbose portage:portage /usr/portage

Obtener instantáneas validadas del repositorio Gentoo

Administrators can opt to update the local Gentoo ebuild repository with a cryptographically validated snapshot as released by the Gentoo infrastructure. This ensures that no rogue rsync mirror is adding unwanted code or packages to the repositories the system will be downloading.

Nota
Lo siguiente es un método actualizado para poner en marcha y utilizar la forma de sincronizar con emerge-webrsync usando repos.conf.

Las claves OpenPGP de los medios publicados por Gentoo están ahora disponibles como un llavero de claves binario. Estas se puede instalar a través del paquete app-crypt/gentoo-keys.

root #emerge --ask app-crypt/gentoo-keys

Esto instalará el llavero en la localización /var/lib/gentoo/gkeys/keyrings/gentoo/release.

ARCHIVO /etc/portage/make.confHabilitar soporte GPG en Portage
FEATURES="webrsync-gpg"
PORTAGE_GPG_DIR="/var/lib/gentoo/gkeys/keyrings/gentoo/release"
ARCHIVO /etc/portage/repos.conf/gentoo.confLimpiar la variable sync-uri
[DEFAULT]
main-repo = gentoo
 
[gentoo]
# Deshabilitar la sincronización limpiando los valores o asignando auto-sync = no
# ¡No definir los valores de las variables en este fichero de configuración utilizando comillas ('' o "")!
# Para portage-2.2.18 utilice 'websync'
# Para portage-2.2.19 y superior utilice 'webrsync' (websync se renombró a webrsync)
sync-type = webrsync
sync-uri = 
auto-sync = yes

Asegúrese de que ha instalado app-crypt/gnupg:

root #emerge --ask app-crypt/gnupg

Utilice gpg para verificar que las claves del llavero son las correctas:

root #gpg --homedir /var/lib/gentoo/gkeys/keyrings/gentoo/release --with-fingerprint --list-keys

Verifique las huellas digitales de la(s) clave(s) comparándolas con las listadas en la página oficial de proyecto de ingenieria de lanzamientos de Gentoo.

Importante
If any of the keys installed from app-crypt/gentoo-keys should expire, run gkeys from app-crypt/gkeys to refresh them from the key server:
root #emerge --ask app-crypt/gkeys
root #gkeys refresh-key -C gentoo

Repita la siguiente orden para cada clave que quiera verificar. (Sustituya el idendificador de clave '0x...' por la clave que quiera verificar.)

root #gpg --homedir /var/lib/gentoo/gkeys/keyrings/gentoo/release --edit-key 0xDB6B8C1F96D8BF6D trust

Debe aparecer un menu GPG en línea de comandos, verifique la clave completa y finalice el programa tecleando lo siguiente:

gpg>4
gpg>quit

El sistema está ahora preparado para sincronizar utilizando únicamente instantáneas verificadas mediante OpenPGP/gpg.
Algunas opciones de las órdenes están disponibles para realizar la sincronización.

Nota
Únicamente una de las siguientes órdenes es necesaria para sincronizar. Le el Only one of the following commands is needed to sync. Lea el See the artículo wiki de la sincronización de Portage para más información.
root #emerge --sync
root #emaint sync -a
root #emaint sync --repo gentoo
root #emerge-webrsync

Verify distfiles

To re-verify the integrity and (potentially) re-download previously removed/corrupted distfiles for all currently installed packages, run:

root #emerge --ask --fetchonly --emptytree @world