Gentoo Logo

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 del Portage

Contenido:

3.a. DistCC

¿Qué es 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 mas detallada sobre distcc (y información de como tenerlo funcionando sobre Gentoo) en nuestra Documentación Gentoo de Distcc.

Instalando 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.

Instalar distcc es, como lo es con todo el software disponible a través del Portage de Gentoo, extremadamente fácil.

Nota: A partir de ahora, como conoce como instalar paquetes binarios si lo desea, omitiremos la opción --usepkg durante el resto del Gentoo Handbook.

Listado de Código 1.1: Instalando Distcc

# emerge distcc

Activando el soporte en el Portage

Bien, si la instalación fue fácil, el resto también debe serlo :) Así que vamos a activar rápidamente el soporte en el portage para distcc.

Primero, abra /etc/make.conf y edite la variable FEATURES de forma que contenga la palabra distcc. Hecho esto, edite la variable MAKEOPTS para que se lea -jX con X representando el número de CPUs que corren distccd (incluyendo el host local) mas uno:

Listado de Código 1.2: Definición posible de MAKEOPTS en /etc/make.conf

# Suponga que tiene 2 hosts con una sola CPU excluyendo el host
local:
MAKEOPTS="-j4"

Ahora, aún dentro de /etc/make.conf, descomente la linea PORTAGE_TMPDIR y añada la siguiente linea al final del fichero:

Listado de Código 1.3: Añadiendo una variable extra, específica de distcc al /etc/make.conf

# No olvide descomentar la variable PORTAGE_TMPDIR
DISTCC_DIR=${PORTAGE_TMPDIR}/portage/.distcc

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 1.4: Configurando 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 de ejecutar también el demonio distccd:

Listado de Código 1.5: Arrancando el demonio distcc

# /etc/init.d/distccd start

Felicidades, ¡su sistema usará ahora compilación distribuida! Para profundizar más sobre DistCC y Gentoo, por favor lea nuestra Documentación Gentoo de DistCC.

3.b. ccache

¿Qué es ccache?

ccache es un caché de compilación rápida. Cuando compila un programa, puede cachear resultados intermedios, de forma que, si usted recompilara el mismo programa, el tiempo de compilación se reduciría ampliamente. En las aplicaciones comunes, esto puede significar un aumento de velocidad entre 5 y 10 veces.

Si esta interesado en los pros y contras de ccache, por favor visite la página web de ccache.

Instalando ccache

Instalar ccache en Gentoo es coser y cantar. Tan solo emérgelo y ya está :)

Listado de Código 2.1: Instalando ccache

# emerge ccache

Activando el Soporte en el Portage

Primero, edite el /etc/make.conf y cambie la variable FEATURES de forma que contenga la palabra clave ccache:

Listado de Código 2.2: Editando las FEATURES en el /etc/make.conf

FEATURES="ccache"

Después, edite (o cree) la variable CCACHE_SIZE (también en el /etc/make.conf) que contiene la cantidad de espacio de disco que quiere sacrificar para el ccache:

Listado de Código 2.3: Editando CCACHE_SIZE en el /etc/make.conf

CCACHE_SIZE="2G"

A partir de ahora, Portage usará ccache para acelerar la compilación donde sea posible. Si dudas del funcionamiento de ccache, puedes ejecutar ccache -s para ver las estadísticas de ccache:

Listado de Código 2.4: Visualizando las estadísticas de ccache

# ccache -s

3.c. Paquetes Binarios

Creando paquetes binarios

Hemos discutido anteriormente como trabajar con paquetes precompilados, pero como creas tus propios paquetes precompilados?

Si el paquete ya está instalado, puedes usar el comando quickpkg que hará un tar de los ficheros instalados. ¡Es muy interesante para los backups!

Listado de Código 3.1: Usando quickpkg

# quickpkg gnumeric

Si el paquete no está instalado aún, puede instalarlo usando emerge y especificándole crear un paquete binario. emerge usa el argumento --buildpkg (-b en su versión corta) para esto:

Listado de Código 3.2: Instalando gnumeric y creando paquetes binarios

# emerge --buildpkg gnumeric

Si quieres que el Portage haga esto por defecto, debería poner la palabra clave buildpkg en la variable FEATURES declarada en el /etc/make.conf.

Listado de Código 3.3: Creando automáticamente paquetes binarios

FEATURES="buildpkg"

Si no quiere instalar el software, pero si compilar el paquete, puede usar el argumento --buildpkgonly (-B en su versión corta):

Listado de Código 3.4: Compilando un paquete binario de gnumeric

# emerge --buildpkgonly gnumeric

3.d. Características de Seguridad

Sandbox

Mientras se compilan y instalan paquetes, el Portage usa una sandbox (caja de arena) para proteger tu sistema en funcionamiento. Esto significa que, mientras el paquete no se instale en tu sistema, este no tocará ningún fichero fuera de la "caja de arena" Esto asegura que el Portage sabe que ficheros se crearon y se modificaron por el paquete.

Cuando la compilación de un paquete se completa, el Portage "preinstalará" el paquete en la "caja de arena", registrando que ficheros se han puesto y donde. Entonces moverá estos ficheros desde la "caja de arena" a tu sistema en funcionamiento.

Privilegios de usuario

El Portage también soporta la compilación de paquetes como usuario no privilegiado (para ser mas exactos, como usuario "portage", dentro del grupo "portage"). Esto aumenta la seguridad durante el proceso de compilación. Puede optar por usar los privilegios de usuario con o sin "sandboxing". Por supuesto, ni que decir que los privilegios de usuario y el "sandboxing" es el método más preferible :)

Activando sandbox y/o userpriv

Portage usará sandbox por defecto. Si desea userpriv, deberá agregarlo a la variable FEATURES. Fíjese en que activando userpriv descartará el soporte sandbox, a menos que también active usersandbox:

Listado de Código 4.1: Activando userpriv y usersandbox

FEATURES="userpriv usersandbox"

Aviso: No quite sandbox de la variable FEATURES

Chequeo estricto

El Portage puede prepararse para reaccionar a las posibles condiciones de peligro (como ficheros Manifest perdidos o incorrectos). Para activar este chequeo estricto agregue la palabra clave strict a la variable FEATURES:

Listado de Código 4.2: Activando el chequeo estricto

FEATURES="strict"

Permisos Inteligentes del Sistema de Ficheros

Portage puede ser configurado para tratar con permisos de ficheros potencialmente peligrosos que representen un riesgo de seguridad. Lo hace quitando los bits de lectura "grupo" y "otros" en los ficheros "setuid" y quitando el bit de lectura "otros" en los ficheros "setgid" en la fase de preinstalación. Para activar los permisos de ficheros inteligentes, agregue la palabra clave sfperms a la variable FEATURES:

Listado de Código 4.3: Activando los permisos inteligentes del sistema de ficheros

FEATURES="sfperms"

3.e. Otras características

Ayuda del Portage

Existen muchas otras palabras clave que puede introducir en la variable FEATURES. Muchas de ellas están dirigidas a los desarrolladores y son menos interesantes para los usuarios comunes. Si está interesado en aprender más sobre estas características (o del Portage en general), no olvide leer la pagina del manual del make.conf que le proporcionamos.

Listado de Código 5.1: Más información sobre el Portage

# man make.conf

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 21 de octubre, 2004

Esta traducción ha dejado de tener soporte

Sumario: Descubra las características de Portage, como el soporte para la compilación distribuida, ccache y aún más.

Daniel Robbins
Autor

Sven Vermeulen
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desarrollador Gentoo x86

Tavis Ormandy
Desarrollador Gentoo Alpha

Jason Huebel
Desarrollador Gentoo AMD64

Guy Martin
Desarrollador Gentoo HPPA

Pieter Van den Abeele
Desarrollador Gentoo PPC

Joe Kallar
Desarrollador Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Contribuidor

José Alberto Suárez López
Editor-Es

John Christian Stoddart
Editor-Es Adjunto

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.