
¿Que es Gentoo?
Gentoo es una metadistribución basada tanto en GNU/Linux como FreeBSD, la cual puede ser optimizada y personalizada automáticamente para cualquier aplicación o necesidad. Al contrario de las distribuciones binarias convencionales, el usuario compila el código fuente del programa localmente de acuerdo a una configuración establecida, todo ello de una manera automatizada. Gentoo (al igual que Arch Linux) se basa en el sistema de rolling release (sin versión de distro), y ofrece soporte para 10 arquitecturas: x86, amd64, alpha, arm, hppa, ia64, ppc, s390, sh y sparc.
La primera versión fue creada por Daniel Robbins bajo el nombre de Enoch Linux en diciembre del año 1999 para luego cambiar su nombre a Gentoo Linux y lanzar la versión 1.0 en marzo de 2002. El nombre Gentoo proviene del nombre en inglés del pingûino papúa el cual se le conoce como el nadador más veloz de toda la especie de pingûinos.
Características
Portage: es el corazón de Gentoo y desempeña las funciones del manejador de paquetes. Está escrito en python/bash y fue inspirado en el sistema de ports de FreeBSD, aunque cuenta con caracteristicas más avanzadas como lo son la gestión de dependencias, afinamiento preciso de los paquetes a gusto del administrador, instalaciones falsas al estilo OpenBSD, cajas de arena durante la compilación, desinstalación segura, perfiles de sistema, paquetes virtuales, gestión de los ficheros de configuración y múltiples ranuras para distintas versiones de un mismo paquete.
Con solamente hacer un emerge paquete, portage descargará las fuentes, contruirá e instalará el paquete adaptado sus especificaciones, optimizado para su hardware y con las funciones adicionales que desee estén activadas, y las que no, desactivadas. Si desea actualizar todo el sistema solo bastará con hacer emerge -uD world para que portage resuelva las dependencias y actualice el software que así lo requiera. Al hacer emerge –sync, portage se conectará a Internet para sincronizar el “árbol portage” el cual es una colección completa de scripts llamados de ahora en adelante ebuilds, utilizados para crear e instalar los paquetes. Actualmente existen más de 14.000 ebuilds disponibles y se agregan/actualizan más ebuilds de manera constante.
Adicionalmente a Portage existen otros manejadores de paquetes no oficiales los cuales pueden suplir a portage si no se está a gusto con el, ellos son paludis y pkgcore.
Parámetros USE: en Gentoo un parámetro USE es una representación de una opción para el sistema. Las USE afectan la manera en que los paquetes son construidos e instalados, y de igual manera afecta la cantidad de dependencias necesarias para que este funcione. Por ejemplo net-im/pidgin cuenta con 26 USE y algunas de ellas habilitan/desabilitan opciones en tiempo de compilación: por ejemplo desabilitando gstreamer probablemente pidgin no sea capaz de reproducir sonidos pero tambien se evita la dependencia de gstreamer y todas las dependencias asociadas a ese programa.
Escoger las USE es muy importante pero también es bastante sencillo. Se pueden declarar tanto de manera global para que todos los paquetes sean afectados o de manera individual para tener un mayor control sobre las opciones de cada paquete.
Overlays: así como en muchas distros es común el uso de repositorios de terceros, esto también es posible en gentoo gracias a los overlays. Un overlay no es más que una representación a menor escala del árbol de portage, pudiendo contener ebuilds para nuevos paquetes u actualizaciones del los ebuilds existentes que aún no han sido puestos en el árbol principal. Su uso es tan sencillo como ver los overlays existentes con layman -L (previa instalación del paquete layman) y agregarlo con layman -a <overlay> para ser usado desde portage de manera transparente. Cabe destacar que también es posible crear un overlay local con ebuilds mantenidos por uno mismo y ser utilizado por portage de la misma forma.
Instalación
Gentoo es una de las pocas distribuciones que no posee un instalador (GUI o CLI) para realizar la instalación del sistema base (llegó a tener uno pero fue abandonado al poco tiempo) por lo tanto se tiene que realizar totalmente a mano.
Medio de instalación: En Gentoo a diferencia de la mayoría de las distros, no necesitas tener el medio oficial para realizar la instalación. De hecho la mayoria de los live-cd se pueden utilizar para este proposito, lo unico a tener en cuenta es que este provea el kernel de la misma arquitectura que se piensa instalar (x86, amd64, etc), algunos ejemplos pueden ser:
Autobuilds de gentoo (livecd generado semanalmente que provee un entorno minimo con el cual comenzar la instalación)
http://www.gentoo.org/main/en/where.xml
SystemRescueCd (livecd basado en gentoo que contiene variadas herramientas de administración/reparación)
http://www.sysresccd.org/Download
Knoppix (livecd basado en Debian GNU/Linux)
http://www.knoppix.net/get.php
nota: no descargen el live-dvd 10.0 de gentoo pues este no esta pensado para hacer instalaciones.
Particionamiento y montaje: Una vez que se haya arrancado del livecd lo siguiente es particionar el/los discos. Dependiendo del livecd escogido se pueden tener varias herramientas para este proposito:
gparted:
disponible en SystemRescueCd, Knoppix y en la mayoria de los livecd con entorno gráfico. Es muy sencillo de usar y permite particionar y dar formato al mismo tiempo.
fdisk/cfdisk + mkfs.*:
- fdisk es una herramienta que permite crear/borrar particiones en el disco aunque su uso es algo complicado, aquí se puede ver como es su funcionamiento.
- cfdisk es otra herramienta parecida a fdisk con la diferencia de que cuenta con una interfaz en ncurses para el particionado lo cual lo hace muy sencillo de utilizar y la recomiendo sobre el uso de fdisk.
El número y tamaño de las particiones ya queda de parte del usuario pero un punto a tener en cuenta es que tamaño de los temporales al compilar un paquete grande (fuentes + codigo objeto) puede llegar a ocupar 1 GiB o más, es por ello que hay que tenerlo en cuenta al asignarle el espacio a "/" (o a /var/tmp si se decide hacer una partición separada). Como ejemplo coloco un esquema de particionado que he utilizado en otros equipos:/dev/sda1 ( /boot ) : 32MiB
/dev/sda2 ( / ) : 20 GiB
/dev/sda5 ( /home ) : generalemte uso el resto del espacio disponible para /home
/dev/sda6 ( swap ) : opcional si no se requiere, la mitad de la RAM o un poco más/menos en caso de contar con poca memoria, o del tamaño de la RAM del equipo en caso de que sea una portatil y se necesite suspender a disco.
nota: /home está en sda5 en vez de sda3 ya que he creado una partición extendida y sda5/sda6 están definidas como particiones lógicas. Esto es solo una *recomendación personal* ya que en caso de necesitarse más particiones simplemente bastaría con redimensionar /home y crear la partición en el espacio libre. No es necesario seguir este esquema de particionado e incluso se puede utilizar una sola partición "/" que contenga todo. - mkfs.*: luego de realizar el particionado hay que darles el formato adecuado, para ello está el mkfs: mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.reiserfs, etc (ya se entendió la idea
). Por ejemplo, tomando el esquema de particionamiento que coloqué anteriormente el formato se puede realizar de la siguiente forma:- Código: Seleccionar todo
mkfs.ext2 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.reiserfs /dev/sda5
mkswap /dev/sda6
nota: igual que en la nota anterior, el usuario es libre de escoger el sistema de archivos que mejor le convenga. La unica restricción es que si se va a utilizar grub-1 la partición que contiene /boot no puede ser ext4, para ello se puede crear una partición aparte para /boot con otro formato como ext2/ext3 o usar grub-2 (actualmente en estado hard-masked en portage)
nota: antes de continuar, si su livecd no ha ajustado la fecha/hora del sistema correctamente, este es el mejor momento para hacerlo y así evitar posibles problemas en el futuro.
- Código: Seleccionar todo
# ver la fecha
date
# poner la fecha del sistema, por ejemplo para poner "23:30 del 21 de febrero del 2010"
date 022123302010
Preparación del sistema base: Luego de terminar el particionado se crea un punto de montaje y se monta la partición para comenzar la "instalación", por ejemplo vamos a crear el punto en /mnt/gentoo, montar la partición definida por nosotros como "/" y movernos a ella.
- Código: Seleccionar todo
mkdir /mnt/gentoo
mount /dev/sda2 /mnt/gentoo
cd /mnt/gentoo
Ya que ninguno de los livecd contiene las herramientas para continuar la instalación deberemos descargar un stage3 de internet. El stage3 por decirlo de alguna manera es un tarball que contiene el sistema base ya preparado poder utilizar gentoo. Estos se actualizan constantemente cada pocos dias, es por ello que no es incluido en el livecd minimal de gentoo.
nota: historicamente tambien han existido los stages 1 y 2 con los cuales se podia partir de allí para crear un stage3, a dia de hoy este tipo de instalación ya no está soportada y se recomienda usar un stage3.
Para descargar un stage3, pueden hacerlo desde un navegador web desde la pagina de mirrors, links2 y wget son buenas opciones (tambien se puede hacer desde un navegador grafico pero deben asegurarse de guardar el tarball en /mnt/gentoo).
La ruta donde se encuentrán los stage3 en el mirror es "/releases/<arquitectura>/current-stage3/stage3-<arquitectura>-<fecha>.tar.bz2", por ejemplo:
Descargando un stage3 desde el listado de mirrors con links
- Código: Seleccionar todo
# asegurarse de que el directorio actual sea /mnt/gentoo (o el nombre que hayan escogido)
links http://www.gentoo.org/main/en/mirrors2.xml # usando links
Descargando un stage3 para amd64 de fecha 20100121 desde el mirror gentoo.arcticnetwork.ca
- Código: Seleccionar todo
# asegurarse de que el directorio actual sea /mnt/gentoo (o el nombre que hayan escogido)
wget http://gentoo.arcticnetwork.ca/releases/amd64/current-stage3/stage3-amd64-20100121.tar.bz2 #usando wget
Luego de esto solo queda descomprimir el tarball:
- Código: Seleccionar todo
# x=extraer, v=más info, j=descomprimir bzi2, p=conservar permisos (importante), f=archivo a extraer
tar xvjpf stage3-*.tar.bz2
Preparación del arbol portage: para obtener el tarball del arbol portage usaremos las mismas instrucciones del stage3 para descargarlo, solo que en este caso la ruta en el mirror seria "/snapshots/portage-latest.tar.bz2", por ejemplo:
Descargando el snapshot más reciente del arbol de portage desde el mirror gentoo.osuosl.net
- Código: Seleccionar todo
wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2
Luego se procede a descomprimir el tarball:
- Código: Seleccionar todo
#C = indica la ruta a la cual extraer el contenido del tarball
tar xjvf portage-latest.tar.bz2 -C /mnt/gentoo/usr
Entrando en Gentoo via chroot:: Antes de entrar a Gentoo debemos preparar el entorno para que nuestro chroot funcione correctamente, por ejemplo que funcione la red, tener acceso a los discos y al kernel, para ello necesitaremos copiar el fichero resolv.conf del livecd a nuestra partición además de montar /proc y /dev a nuestra partición:
- Código: Seleccionar todo
# L = para asegurarse de que no copie un enlace simbolico sino el fichero en si
cp -L /etc/resolv.conf /mnt/gentoo/etc/
# Aqui se está montando un nuevo /proc para el chroot
mount -t proc none /mnt/gentoo/proc
# En este caso bind hace que el contenido de dev esté
# disponible tanto fuera como dentro del chroot
mount -o bind /dev /mnt/gentoo/dev
Una vez que los preparativos esten listos, para entrar en el chroot solo bastan 3 comandos:
- Código: Seleccionar todo
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
El primer comando nos permite entrar en el chroot, mientras que los otros dos crean las variables del entorno y la cargan en memoria respectivamente.
nota: siempre que se ingrese a un sistema gentoo via chroot es importante ejecutar env-update y source /etc/profile para que se usen las variables del entorno del sistema interno y no del livecd/sistema externo.
nota: si estas instalando desde SystemRescueCD, existe un problema actualmente en el que algunas variables del entorno del livecd son pasadas al chroot resultando en compilaciones fallidas. Si este es el caso ejecute "unset path" luego de entrar al chroot y/o "SHELL=/bin/bash chroot /mnt/gentoo /bin/bash" como comando para entrar al chroot para así evitar futuros problemas durante la instalación. http://bugs.gentoo.org/show_bug.cgi?id=271942
Proximamente en [Hilo Oficial] Gentoo linux, episodio 4: Configuración de portage: つづく
TODO: recomendaciones a la hora de la instalación (in progress).
TODO: explicación de los ficheros de configuración.
Mantenimiento y uso
Como en todas las distribuciones, Gentoo trae por defecto un conjunto de herramientas y ficheros de configuración pensados para automatizar la configuración de portage así como de componentes clave del sistema. El fichero más importante de una instalación Gentoo vendría a ser el make.conf, en la cual esta definida toda la configuración de portage así como las diversas opciones de compilación para nuestros paquetes. En cuanto a las herramientas, emerge es el encargado de instalar y desinstalar paquetes, mientras que eselect es una herramienta de administración modular que se encarga de los daemons, variables de entorno y selección de aplicaciones por defecto.
TODO: configuraciónes recomendadas antes/despues del primer arranque (baselayout, openrc)
TODO: explicación de como usar portage correctamente (make.conf, /etc/portage/*, y demás)
TODO: explicación del uso de eselect
TODO: herramientas recomendadas y otras utilidades de gentoo (euse, qlop, revdep-rebuild, etc-update, dispatch-conf, eix, equery, eclean, etc)
Enlaces de interes:
Sitio web oficial: http://www.gentoo.org/
Planet Gentoo: http://planet.gentoo.org/
Foro oficial: http://forums.gentoo.org/
Gentoo Wiki (no oficial): http://en.gentoo-wiki.com/
Vista web de Portage(no oficial) http://gentoo-portage.com/
Gentoo Handbook http://www.gentoo.org/doc/en/handbook/
Manual del desarrollador http://devmanual.gentoo.org/
Kernel-seeds: explica de forma detallada como configurar un kernel, además de proveer archivos de configuración actualizados y preseleccionados para compilar un kernel x86/x86_64 para Gentoo http://kernel-seeds.org/

ololo.net mod 




. Si a lo del sistema funcionando te refieres a no necesitar del live-cd y arrancar Gentoo con su propio kernel pues diría que en menos de una hora se puede hacer sin ningún contratiempo, vamos que la instalación de gentoo visto sin mucho detalle es bajar y descomprimir 3 tarballs (stage3, portage y las fuentes del kernel), configurar 5-10 ficheros, compilar grub/cron/syslog/e2fsprogs, compilar el kernel, crearte un fstab y un menu.lst y reiniciar.