Renuncia de responsabilidad:
Este manual ha sido sustituido por una versión más reciente y no tendrá
soporte de aquí en adelante.
|
[ << ]
[ < ]
[ Inicio ]
[ > ]
[ >> ]
3. Características de Portage
Contenido:
3.a. 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
Listado de Código 1.1: Consultar la página de ayuda sobre make.conf |
$ 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:
Listado de Código 1.2: Conociendo que características están configuradas |
$ emerge --info | grep FEATURES
|
3.b. 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 nuestra Documentación Gentoo de Distcc.
Instalar distcc
Distcc se distribuye con un monitor gráfico para monitorizar las tareas que su
computador está enviando para compilar. Si usa Gnome entonces ponga 'gnome' en
su configuración USE. De todas formas, si no usa Gnome pero sigue
deseando disponer de un monitor, entonces debería poner 'gtk' en su
configuración USE.
Listado de Código 2.1: Instalar distcc |
# emerge 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 conforme a sus necesidades. Una pauta conocida para
configurarla es poner -jX con X representando 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"):
Listado de Código 2.2: Configurar distcc para usar los tres servidores DistCC disponibles |
# 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:
Listado de Código 2.3: Arrancar el demonio distcc |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Compilación utilizando caché
Acerca de ccache
ccache es un caché de compilación rápida. Cuando compila un programa,
puede cachear 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.
Si esta interesado en los pros y los contras de ccache, por favor
visite la página web de ccache.
Aviso:
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 de una incidencia bug. A menos que esté
realizando trabajo de desarrollo, no active ccache.
|
Instalar ccache
Para instalar ccache, ejecute emerge ccache:
Listado de Código 3.1: Instalar ccache |
# emerge ccache
|
Activar el Soporte en Portage
Primero, edite el fichero /etc/portage/make.conf y añada
a la variable FEATURES la palabra clave ccache. A
continuación, añada una nueva variable llamada CCACHE_SIZE y dele el
valor "2G":
Listado de Código 3.2: Editar CCACHE_SIZE en /etc/portage/make.conf |
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 esto:
Listado de Código 3.3: Observar las estadísticas de ccache |
# 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 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 las variables PATH.
Listado de Código 3.4: Editar .bash_profile |
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
|
3.d. 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 (excepto para
las imágenes GRP) Portage puede funcionar perfectamente con paquetes
precompilados.
Para crear un paquete precompilado puede utilizar quickpkg si el paquete
está instado en su sistema, o 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:
Listado de Código 4.1: Configurar PORTAGE_BINHOST en /etc/portage/make.conf |
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:
Listado de Código 4.2: Instalar el paquete precompilado gnumeric |
# emerge --usepkg --getbinpkg gnumeric
|
Más información sobre las opciones para utilizar paquetes precompilados con
emerge puede consultarse en la página de la ayuda:
Listado de Código 4.3: Leyendo la página de ayuda sobre emerge |
$ man emerge
|
3.e. Descargar los Ficheros
Parallel fetch
Al hacer emerge a una serie de paquetes, Portage puede obtener las
fuentes para el siguiente paquete en el lista aún mientras está
compilando otro paquete, acortando los tiempos de instalación. Para
hacer uso de esta opción agregue "parallel-fetch" a su variable
FEATURES. Observe que está activada por defecto de modo que no
necesitaría activarla explícitamente.
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.
3.f. Obteniendo instantáneas validadas del árbol Portage
Como administrador, puede optar por actualizar únicamente su árbol
Portage local con una instantánea del árbol validada criptográficamente
tal y como publica el equipo de infraestructura de Gentoo. Con esto
se asegura que ningún otro servidor réplica falso está añadiendo
código no deseado u otros paquete en el árbol que está descargando.
Para configurar Portage, en primer lugar cree un almacén de confianza
en el cual pueda descargar y aceptar las claves del equipo de
infraestructura de Gentoo responsable del firmado de las instantáneas
del árbol Portage. Desde luego, si lo desea puede validar esta clave
GPG tal y como muestran estas instrucciones
(por ejemplo comprobar la huella digital). Puede encontrar una
lista de las claves GPG usadas por el equipo en ingeniería de
lanzamientos en su página de
proyecto.
Listado de Código 6.1: Crear un almacén de confianza para Portage |
# mkdir -p /etc/portage/gpg
# chmod 0700 /etc/portage/gpg
# gpg --homedir /etc/portage/gpg --keyserver subkeys.pgp.net --recv-keys 0x239C75C4 0x96D8BF6D
# gpg --homedir /etc/portage/gpg --edit-key 0x96D8BF6D trust
|
A continuación, edite el fichero /etc/portage/make.conf
y active el soporte para la validación de las instantáneas del árbol
Portage firmadas (usando FEATURES="webrsync-gpg") y deshabilite
la actualización del árbol Portage usando el método común
emerge --sync.
Listado de Código 6.2: Actualizar Portage para la validacón del árbol firmado |
FEATURES="webrsync-gpg"
PORTAGE_GPG_DIR="/etc/portage/gpg"
SYNC=""
|
Eso es todo. La próxima vez que ejecute emerge-webrsync, únicamente
las instantáneas con una firma válida se expandirán en su sistema de
ficheros.
[ << ]
[ < ]
[ Inicio ]
[ > ]
[ >> ]
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|