Portage

Categorías: Distribuciones de Gnu/Linux | Gentoo

Imagen/borrador-avatar.png

Esta sección es un esbozo en construcción. Se aprecian tus aportes y paciencia ;)

Portage es la idea de usar un sistema de instalación, configuración y administración de paquetes en Gentoo GNU/Linux, nacio con el fundamento teórico usa los "ports" en "FreeBSD" compilando los programas en la maquina pero gestionados por un script, por eso optarón por buscar la funcionabilidad que tenian en esa época Apt en Debian(transcurria año 2001), sin embargo la programación de los ports eran escritos en Perl un lenguaje bastante practico pero que tornaba un poco enredado a la hora de leerlo, por eso adoptaron un lenguaje que fue tomando fuerza con el tiempo Python. La idea era pulir la maquina teniendo todos los paquetes compilador guiados por scripts y usando control de automatización(que incluye descarga, instalación o actualización de programas con dependencias resueltas) con calidad de software garantizada por QA(Quality Assegurance), además de tener a su favor utilizar la filosofia que usa Python.

Este administrador tiene 4 acompañantes que lo ayudan en su labor y esos son:

Emerge

Emerge es el corazón del portage es el programa en línea de comando de interacción con el usuario, reune todo el conjunto y lo hace funcionar según los parametros de configuración para la dependencia de programas, con la ayuda un arbol que describe todo esto escrito en xml. Usa un sandbox (caja de arena), para la configuración e instalación antes de grabarlo en el disco duro.

Las dependecias pueden ser alteradas por las banderas de configuración, por ejemplo se tiene un paquete X, un paquete Y y un paquete Z, en este caso Y es necesario para instalar X, sin embargo no depende de Z para que funcione, solo en caso de requerirlo para correr otro programa o simplemente para mejorar su funcionalidad o usabilidad se podria requerir Z se le configura las banderas de USE y que puede ser descrito en el fichero /usr/portage/packages.use.

Los Ebuilds

Los Ebuilds son los scripts de compilación, configuración e instalación de programas, en otras palabras son los ficheros que maneja los parametros de instalación, los cuales serán usados por el portage.

Estos Ebuilds son cambiados durante la sincronización de servidores para posterior actualización del sistema, en otras palabras cuando usted usa emerge --sync lo que hace es actualizar los ebuilds para determinado programa o en otros casos hace ingreso de nuevos paquetes al portage.

Banderas de USE

Como las describirmos antes son variables que acomplan con otros programas y viceversa, para identificar esas variables antes o inclusive después de compilado. Mirelas de la siguiente forma:

 ~ $ emerge -pv xterm   

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] x11-terms/xterm-229 [222] USE="unicode -Xaw3d -paste64 -toolbar -truetype" 822 kB 

Total: 1 package (1 upgrade), Size of downloads: 822 kB
 ~ $

En la pantalla aparecen de azul las precedidas por un menos (-), y las de rojo son las que no tienen nada, para modificar eso agregamos al archivo /usr/portage/packages.use

x11-terms/xterm-229 Xaw3d -unicode

En este caso quita la cualidad unicode y agrega que use librerias del Xaw3d o también se puede hacer a la hora de instalar modificando la varible USE:

 # USE="-unicode Xaw3d" emerge xterm

Enmascaramiento

El enmascaramiento de paquetes hace parte de sistema de calidad de los paquetes probados, en otras palabras programas completos o ciertas versiones de estos, los cuales estan restringidos al usuario normal, o por que no se le hecho suficientes pruebas a estos, o que podrían generar algun tipo de error o de problema a la hora de compilar

Este enmascaramiento no solo esta detallado en versiones, sino también en arquitecturas de computadores, debido a que puede variar la compilación de programas en otros computadores con diferente procesador.

Front-ends del Portage

A continuación algunos programas que facilitan el uso de emerge para el usuario que no le gusta línea de comando:

Opciones a la busqueda del Emerge

En ciertos procesos para la lectura del árbol de paquetes el emerge tiende hacer lento, incluso a la hora de buscar unicamente, es por eso que crearon eix o esearch un programa para buscar en el repositorio de forma rápida. Estos crean un cache del árbol de emerge, que se hace cada vez que se sincroniza el portage con los servidores de gentoo.

He aqui una comparativa:

 $ time emerge -s eterm > /dev/null 

real    0m3.624s
user    0m2.690s
sys     0m0.260s

 $ time esearch eterm > /dev/null 

real    0m0.649s
user    0m0.530s
sys     0m0.060s

$ time eix eterm > /dev/null 

real    0m0.301s
user    0m0.110s
sys     0m0.010s

Según las pruebas que hice eix es el más rápido de los tres aunque cada usuario puede variar prefieriendo estos u otros, ya que la salida de eix es más corta.

Referencias

Portage (last edited 2008-04-20 14:38:05 by localhost)