038-042_GentooLinux11
13.10.2005
9:58
Uhr
Página
38
PRÁCTICO • Gentoo Linux
Instalación y administración de Gentoo Linux
EN LA COCINA CON GENTOO Gentoo es una potente y flexible distribución de Linux que podemos configurar para que se ajuste perfectamente a nuestro entorno. En este artículo describiremos cómo configurar Gentoo. Veremos también cómo instalar y administrar software en nuestro sistema Gentoo con la popular herramienta de administración Portage. POR ALEXANDER REITERER
P
ara algunos usuarios, el poderoso Gentoo es el sistema Linux ideal. Pero para muchos otros representa una distribución inaccesible, sólo para expertos. Independientemente de si la encontramos un poco desalentadora al principio, una vez nos hagamos con ella descubriremos que Gentoo proporciona muchas herramientas útiles que lo hacen tan fácil como cualquier otro sistema Linux.
La Instalación en 12 Pasos Muchos usuarios consideran a Gentoo Linux como sinónimo de “difícil de instalar”, “un sistema para geeks” o “nada amistoso para novatos”. Es complicado negar que hay algo de cierto en estos prejuicios, pero incluso si somos novatos en Linux, merece la pena investigar esta joven distribución. En este artículo, trataremos de perderle el miedo a Gentoo [1]. Comenzamos con las nociones básicas de Gentoo centrándonos en la instalación, que es completamente diferente a cualquier otra distribución que conozcamos. Luego exploraremos el modo de administrar el software de nuestro sistema Gentoo.
Peculiaridades Gentoo A pesar de que podemos instalar Gentoo desde paquetes precompilados, lo más
38
Número 11
habitual es compilar directamente desde el código fuente. Esto nos ofrece la ventaja de adaptar el sistema perfectamente a nuestras necesidades. Además de ser la razón por la cual muchas veces se llama a Gentoo la meta-distribución. Tanto la configuración del sistema como la instalación de programas nuevos, normalmente, es muy diferente al resto de las distribuciones. Antes de centrarnos en la instalación, comentar algunas ventajas y desventajas de Gentoo. Una de las ventajas es muy evidente: como usuarios, mantenemos el control total del sistema. Recordemos que en los inicios de Linux los usuarios estaban más o menos forzados a investigar sus propios sistemas, editando archivos de configuración y buscando en foros respuesta a los problemas que encontraban. Hoy día, los asistentes de instalación basados en interfaz gráfica y las herramientas de administración centralizada (como Yast de Suse Linux, por ejemplo) han tomado el control en la instalación, configuración y administración de los sistemas Linux. Pero, al mismo tiempo, estas herramientas ocultan los procesos subyacentes. Gentoo aporta algo de luz entre las tinieblas. Por supuesto, esta flexibilidad tiene un precio. Si estamos decididos a abordar Gentoo, tendremos que prepararnos
WWW.LINUX- MAGAZINE.ES
para leer extensos manuales y perderle el miedo a abrir nuestro editor de texto para modificar archivos de configuración. En el día a día, estas aparentes desventajas frecuentemente se tornan menos molestas de lo que podamos pensar.
Etapas para la Instalación La instalación de Gentoo Linux comienza descargando una imagen Live CD. Hay dos soportes para la instalación disponibles en la versión actual (la 2005.0 en el momento de escribir este artículo): una imagen mínima y una imagen universal. No deberíamos usar la instalación universal si queremos evitarnos compilar el sistema desde cero. El proceso de instalación en sí mismo se divide en tres etapas. Desde qué etapa necesitamos comenzar dependerá de qué proporción de todo el sistema vamos a compilar partiendo de cero, y qué componentes precompilados usaremos. La etapa 1 nos proporciona todo el espectro de opciones de optimización. Como desventaja, que la instalación llevará bastante tiempo en completarse. Una instalación desde etapa 2 nos proporciona menos opciones de optimización, pero el proceso completo es mucho más rápido. Desde etapa 3 es el método más rápido para instalar Gentoo: sólo tenemos que aceptar las opciones por
038-042_GentooLinux11
13.10.2005
9:58
Uhr
Página
39
Gentoo Linux • PRÁCTICO
trabaja en una red con servidor DHCP, Gentoo configurará por regla general la red correctamente. Tecleamos ping -c 3 www.google.com para verificar si tenemos conexión a Internet. Si no es así, tendremos que ejecutar net-setup (añadiendo el nombre de nuestra interfaz de red) o adsl-setup (para Figura 1: Arranque de nuestro sistema Gentoo Linux. conexiones ADSL) para configurar defecto para optimizar el sistema base. nuestro entorno de red. Podemos instalar Además, este método cumple los requisiGentoo sobre una WLAN si es necesario. tos para usar paquetes precompilados. Para ello, podemos consultar la docuEn las siguientes secciones, se supondrá mentación en línea [2]. que usamos la imagen mínima para los Preparación del Disco Duro pasos de instalación restantes y que El siguiente paso a realizar es configuhemos optado por una instalación desde rar las particiones del disco duro para etapa 1. Gentoo. Supondremos que nuestro Únicamente necesitamos el Live CD disco duro es /dev/hda. Tecleamos para arrancar el sistema, detectar el fdisk/dev/hda para iniciar la herrahardware, y configurar una conexión de mienta de particionado. Podemos prered. Para tener una mejor perspectiva del sionar la tecla p para mostrar la tabla proceso, hemos dividido la instalación de particiones actual o d para eliminar en 12 pasos. todas las particiones del disco. Comienza la Instalación Creamos una partición de arranque pulDescargamos la imagen mínima desde sando n, y luego p. Le asignamos a esta [1], quemamos un CD con la imagen partición el número 1 y fijamos el (podemos usar k3b para esto) y arrancatamaño (por ejemplo, 32M para 32 mos el sistema desde el CD. MB). Lo siguiente será crear una partición de swap. Para ello, tecleamos lo Configuración de Red siguiente en este orden (pulsamos Después de arrancar (véase Figura 1), Enter después de cada entrada): n, 2, deberíamos ver una línea de comandos. +512M, t, 2, 82. Ahora configuramos Estamos automáticamente logeados una partición raíz pulsando p y 3. como root y podemos empezar a fijar la Cuando se nos pregunte por el tamaño configuración de red. Si nuestro equipo de la partición, pulsamos Enter para
Tabla 1: Principales Comandos Portage Comando emerge -sync emerge nombre_programa emerge --pretend nombre_programa emerge --fetchonly nombre_programa
emerge unmerge nombre_programa emerge --update world emerge --update --deep world emerge --usepkg --getbinpkg nombre_programa
Función Actualiza la rama Portage. Instala un programa Verifica dependencias Descarga el código fuente del programa Desinstala un programa Actualiza el sistema completo Actualiza el sistema y todas las dependencias Instala un programa precompilado
WWW.LINUX- MAGAZINE.ES
aceptar la configuración por defecto (así usaremos el espacio restante del disco duro para esta partición raíz). Una vez hayamos acabado, pulsamos [W] para guardar la tabla de particiones.
Formateo Ahora formateamos las recién creadas particiones con el sistema de archivos que deseemos, por ejemplo, tecleamos el comando mke2fs /dev/hda1 (partición de arranque usando ext2) o el comando mke2fs -j /dev/hda3 (partición raíz usando ext3). Por último, creamos y habilitamos una partición swap tecleando mkswap /dev/hda2 y swapon /dev/hda2. Con mount /dev/hda3 /mnt/gentoo, mount /dev/hda3 /mnt/gentoo y mount /dev/hda1 /mnt/gentoo/boot montamos las particiones que acabamos de crear en nuestro árbol de directorios.
Descargamos los Archivos Con cd /mnt/gentoo nos movemos del directorio por defecto al punto de montaje, y tecleamos links2 http://www.gentoo.org para seleccionar un servidor de descarga. Hay una lista de mirrors en la barra de navegación, en la parte izquierda bajo Resources: | Download Mirrors. En el servidor elegido, nos situamos en el directorio releases/x86/2005.0/stages/x86, seleccionamos el archivo Stage 1 y presionamos [D] para descargarlo. Luego nos vamos al directorio snapshots y descargamos el archivo Portage más reciente (en el momento de escribir estas líneas es el portage-20050331.tar.bz2.
Stage 1 y Portage Descomprimimos el archivo Stage tecleando tar -xvjpf stage?-*.tar.bz2. La opción -p es de suma importancia aquí, ya que indica a tar que mantenga los permisos del archivo al descomprimirlos. Una vez haya terminado, extraemos la rama Portage en el directorio adecuado tecleando tar -xvjpf portage-20041022.tar.bz2 -C /mnt/gentoo/usr.
Opciones del Compilador Como hemos mencionado anteriormente, Gentoo tiene un gran variedad de opciones para la optimización del sistema. Sólo vamos a ver de pasada lo más importante, por lo que podemos acudir a [2] si necesitamos una información en
Número 11
39
038-042_GentooLinux11
13.10.2005
9:58
Uhr
Página
40
PRÁCTICO • Gentoo Linux
línea más detallada. Para realizar los cambios, tecleamos en primer lugar nano -w /mnt/gentoo/etc/make.conf para abrir el archivo make.conf. Sin entrar en detalles diremos que este archivo contiene todas las opciones de optimización del sistema. La variable CHOST especifica el tipo de procesador, i686-pc-linux-gnu por ejemplo, o x86_64-pc-linux-gnu (si tenemos un AMD64). Las variables CFLAGS y CXXFLAGS definen las optimizaciones para los compiladores de C y C++. Las siguientes configuraciones deben funcionar en los procesadores AMD AthlonXP: CFLAGS="-march=athlon-xp U -pipe -O2" CXXFLAGS="${CFLAGS}"
Podemos también usar MAKEOPTS para especificar cuántos procesadores tiene nuestro equipo. Si es un único procesador, tecleamos MAKEOPTS="-j2".
Instalar el Sistema Básico Antes de compilar el sistema básico, necesitamos seleccionar un servidor desde el que descargaremos los paquetes Gentoo necesarios. Las siguientes órdenes nos ayudan a hacer esto automáticamente: mirrorselect -a -s4 -o | grep U 'GENTOO_MIRRORS=' >> U /mnt/gentoo/etc/make.conf
El sistema necesitará la información del DNS, y tendremos que montar el sistema de archivos proc: cp -L /etc/resolv.conf U /mnt/gentoo/etc/resolv.conf mount -t proc none U /mnt/gentoo/proc
Podemos ahora entrar en el entorno y actualizar la rama de Portage. Usamos las siguientes órdenes para ello: chroot /mnt/gentoo /bin/bash env-update source /etc/profile emerge -sync
Una vez hayamos terminado, continuamos realizando más cambios utilizando la variable USE, que contiene algunas opciones generales de compilación. Para
40
Número 11
para registrar las particiones. Y luego tendremos que configurar las conexiones de red. Como ninguno de estos dos puntos presenta particularidades específicas de Gentoo, probablemente ya sepamos cómo hacer esto. En caso contrario podemos acudir al how-to en [4], por ejemplo.
Instalar el Bootloader Figura 2: Resultado de la función de búsqueda de emerge.
ello, abrimos make.conf de nuevo. La variable USE para un sistema KDE debe tener esta pinta. USE="-gtk -gnome qt U kde dvd alsa cdr"
Y continuamos con las siguientes órdenes para compilar el sistema básico Gentoo: cd /usr/portage scripts/bootstrap.sh emerge system
Configuración del Kernel Para compilar el kernel, en primer lugar tenemos que descargar las fuentes del kernel actualizadas: tecleamos emerge gentoo-sources para ello. Además de esta variante, existen algunas otras fuentes del kernel, como gentoo-dev-sources o vanilla-sources. Tecleamos ahora /usr/src/kernelsource y make menuconfig para la configuración. En lugar de “kernelsource” en los siguientes comandos, especificamos el nombre de la fuente del kernel que estamos usando. Podemos entonces compilar e instalar el kernel: make && make modules_install cp arch/i386/boot/bzImage U /boot/kernelsource cp System.map U /boot/System.map-kernelsource
Configurar el Sistema Antes de usar nuestro sistema, aún tenemos que completar dos importantes pasos en la configuración. En primer lugar tendremos que modificar /etc/fstab
WWW.LINUX- MAGAZINE.ES
El bootloader se asegura de cargar el kernel al arrancar nuestro sistema. En este ejemplo, usaremos el bootloader Grub [5]. Tecleamos emerge grub para compilar el bootloader antes de seguir configurando e instalando: nano -w /boot/grub/grub.conf cp /proc/mounts /etc/mtab grub-install U --root-directory=/boot /dev/hda
Reinicio del Sistema Esto completa los pasos necesarios para iniciar el sistema por primera vez. Tecleamos los siguientes comandos para arrancarlo: exit cd umount /mnt/gentoo/boot ßß /mnt/gentoo/proc /mnt/gentoo reboot Nuestro sistema debería arrancar limpiamente, y deberíamos poder entrar como root. Con esto hemos completado la instalación de nuestro sistema básico Gentoo.
Administración del Sistema Una vez hayamos instalado Gentoo, podemos hacer uso del software de mantenimiento Portage para instalar paquetes adicionales (como KDE, OpenOffice.org, etc…). La herramienta Portage es el centro de control de todas las tareas de administración en Gentoo Linux. Portage tiene un increíble número de opciones y es considerado por muchos (no sin razón) como la mejor herramienta de administración para Linux. Cuando nos referimos a programas que están disponibles para Gentoo, nos referimos a programas que están disponibles en la rama Portage. En lenguaje Gentoo estos programas son también conocidos como ebuilds. Un ebuild contiene toda la información que necesita Portage para manipular el programa en cuestión (rama, versión, etc.). Los ebuilds se almacenan en /usr/portage en nuestro sistema, y podemos esperar que
038-042_GentooLinux11
13.10.2005
9:58
Uhr
Página
41
Gentoo Linux • PRÁCTICO
Figura 3: Búsqueda de programas a través de la interfaz web de la página del proyecto Gentoo.
cambie el contenido continuamente a medida que las nuevas versiones van apareciendo. Antes de empezar a trabajar con Portage, siempre deberíamos actualizar la rama de Portage. Hacemos esto con: emerge --sync. Tras completar la descarga, podemos instalar cualquier programa tecleando emerge nombre_programa (por ejemplo emerge kde). Para desinstalarlo, tecleamos emerge unmerge nombre_programa. Para buscar en la rama Portage un paquete específico, tecleamos emerge search nombre_programa. Obtenemos una lista de las últimas versiones de los programas disponibles para nuestra rama Portage y detalles de las versiones instaladas en nuestro sistema en ese momento (véase Figura 2). Como alternativa, podríamos usar la interfaz web de la página de Gentoo (véase Figura 3) para buscar programas. Esto nos permite conocer las etapas de desarrollo de un proyecto: desde masked (versión en desarrollo), pasando por testing hasta stable. Encontraremos también útiles enlaces para los programas en cuestión (página del proyecto, licencia, etc.).
Administración con Portage Como se mencionó anteriormente, Gentoo normalmente no usa paquetes precompilados, sino los llamados ebuilds, los cuales poseen toda la información necesaria para administrar el programa en cuestión (rama, versión, etc.). Para no complicar la cosa, decir que la rama Portage es la suma de todos
los ebuilds disponibles para Gentoo. La herramienta de administración Portage es extremadamente flexible y ofrece al administrador un increíble rango de opciones. Antes de usarlo debemos saber que todo lo que hagamos se basará en la rama de Portage almacenada en nuestro sistema, por lo que debemos asegurarnos de actualizar nuestros ebuilds con regularidad (o al menos antes de instalar un programa nuevo). El comando emerge -sync actualiza nuestros ebuilds. emerge nombre_programa instala un programa. Para saber qué programas instalará Portage para resolver las dependencias, tecleamos: emerge --pretend U program_name
La Figura 4 muestra la pinta que tiene el resultado de ejecutar este comando. El programa lista detalles de los paquetes que se instalarían (entre corchetes). A continuación listamos una ayuda para entender las abreviaturas: *B (Bloqueo): El paquete de la izquierda bloquea la instalación del paquete de la derecha. *N (Nuevo): emerge reinstalará el paquete. *R (Reemerge): El paquete no es nuevo, pero ha de ser reinstalado. *F (Fetch): Tenemos que descargar manualmente el código fuente de este paquete. *U (Update): El paquete ya está en nuestro sistema, sin embargo existe una actualización disponible.
WWW.LINUX- MAGAZINE.ES
*UD (Downgrade): El paquete ya está en nuestro sistema, sin embargo emerge necesita instalar una versión más antigua. *U- (slot warning): El paquete no funcionará con una actualización de nuestro sistema. emerge se encargará de la instalación y desinstalará la versión antigua en el proceso. Cuando le indicamos a Portage que configure un programa, la herramienta descarga cualquier fuente necesaria de Internet justo antes de pasar a compilar e instalar el paquete. Si no disponemos de una conexión permanente a Internet o no es tarifa plana, puede que queramos descargar primero los paquetes y posponer la compilación y la instalación. La siguiente orden le indica a emerge que descargue sin instalar: emerge --fetchonlyU nombre_programa
Podemos entonces iniciar la compilación e instalación cuando queramos tecleando emerge nombre_programa. En ocasiones puede que necesitemos actualizar todo el sistema, en lugar de un único programa. El siguiente comando se encarga de la tarea de actualizar nuestro sistema Gentoo: emerge --update world
Este comando actualiza todos los programas instalados en nuestro sistema, pero sin actualizar las dependencias. Para actualizar las dependencias también, tecleamos la siguiente orden: emerge --update --deep world
Portage tiene también la capacidad de eliminar los paquetes huérfanos. El siguiente comando se encarga de ello: emerge --update --deep U --newuse world emerge depclean revdep-rebuild
Necesitaremos instalar el Gentoolkit para ejecutar el comando revdep-rebuild. Además de tener la habilidad de instalar los programas directamente desde el código fuente, Gentoo también nos permite instalar paquetes precompilados. Lo podemos hacer con la siguiente orden:
Número 11
41
038-042_GentooLinux11
13.10.2005
9:58
Uhr
Página
42
PRÁCTICO • Gentoo Linux
emerge --usepkg U --getbinpkg nombre_programa
Podemos desinstalar un programa con emerge unmerge nombre_programa. Nótese que Portage no verificará si el programa en cuestión es requerido por otros programas. Para más información concerniente al uso de emerge, podemos leer las páginas man (tecleando man emerge para ello). La documentación Gentoo en [2] tiene también una descripción detallada de esta herramienta. La Tabla 1 muestra un resumen de los comandos más habituales con Portage.
Opciones de Optimización Al comienzo de este artículo mencionamos que la capacidad de Gentoo para optimizar más o menos cualquier sistema es una de sus puntos fuertes. Gentoo proporciona las llamadas “use flags” para este propósito. El uso de “use flags” puede ser global o local. Como sugiere el nombre, las use flags globales optimizan parámetros de sistema para todos los programas, mientras que las locales optimizan un solo programa. Tenemos una lista de use flags globales en /usr/portage/profiles/use.desc. Gentoo define un valor por defecto para muchas use flags. Los valores por defecto se listan en el archivo /etc/make.profile/make.defaults. Podemos cambiar las configuraciones por defecto añadiendo o eliminado palabras clave de las use flags. Las variables se definen en /etc/make.conf. Para eliminar una variable, simplemente añadimos un guión antes de la variable. Por ejemplo: -gnome. Si estamos definiendo use flags para programas específicos, tendremos que editar el archivo /etc/portage/package.use. Esto implica especificar tanto el paquete del programa, como la use flag que queremos definir, por ejemplo dev-php/php -java. Para declarar una use flag temporal para usarla en una sola operación de emerge, la especificamos antes de la sentencia emerge: USE="-java" emerge php
emerge info muestra las configuraciones actuales de las use flags de nuestro sistema. Se mostrarán detalles de la versión del compilador, versión del kernel, use flags, etc. de nuestro sistema.
42
Número 11
Figura 4: Este ejemplo de ejecución de emerge muestra qué dependencias han de ser resueltas para instalar un paquete.
Tenemos asimismo la opción de mostrar las use flags de un programa específico con la siguiente orden: emerge --pretend U verbose nombre_programa
etcat uses nombre_programa nos muestra un resultado más detallado. Nótese que debemos instalar Gentoolkit para ejecutar este comando.
Mapa de Ruta Gentoo En 2004 vimos la introducción de un nuevo formato para la notación, que comprende el año y la versión (por ejemplo 2004.3, 2005.0, etc.). El proyecto tiene un ciclo de lanzamientos trimestral, pero estos lanzamientos son relevantes únicamente en cuanto a la imagen CD. Una vez tengamos instalado nuestro sistema Gentoo, Portage nos ayudará a mantenerlo actualizado. Es digna de alabanza la rapidez con la que se añaden los nuevos lanzamientos en la rama de Portage. Por ejemplo, normalmente les lleva menos de un mes introducir una release de KDE en la rama estable de Portage. El software nuevo pasa por tres etapas de integración en Gentoo: masked, testing y stable. Un programa se marca como masked al entrar en la rama Portage. Más tarde pasa por la etapa testing hasta que los mantenedores deciden qué puede pasar a stable. Por supuesto, esto no impide que podamos instalar programas de cualquiera de las tres etapas de desarrollo. En estos momentos, los desarrolladores de Gentoo trabajan en un asistente
WWW.LINUX- MAGAZINE.ES
que simplificará el proceso de instalación y lo hará más accesible a los neófitos en Linux. Aunque es desarrollo esperado por muchos, ciertos usuarios notables de Linux recelan de él. La instalación actual fuerza realmente al usuario a adquirir cierto conocimiento del sistema. Tras la instalación, los nuevos usuarios se han familiarizado con muchos de los comandos básicos de Gentoo. Por contra, las interfaces gráficas de Suse o Fedora, por ejemplo, impiden que el usuario adquiera estas importantes enseñanzas. Los usuarios que utilicen este nuevo instalador no tendrán la necesidad de adentrarse en las profundidades del sistema Gentoo para poner sus sistemas en funcionamiento.
Conclusiones Esperamos que este vistazo detrás de las bambalinas de la fascinante distro Gentoo os haya abierto el apetito para afrontar con ganas más y más Gentoo. Hemos de recordar que este ha sido sólo un repaso por encima. Si queremos realmente conocer esta distro en detalle, las técnicas descritas en este artículo nos ayudarán a saber por dónde comenzar en nuestro viaje. A pesar de tener una instalación un poco enrevesada, la popularidad de Gentoo está creciendo como la espuma, y prueba de ello es el creciente número de participantes en los diversos foros de Gentoo. Esperemos que usted también atrape el espíritu Gentoo y se divierta ■ migrando su sistema a esta distro.
RECURSOS [1] Página de Gentoo: http:// www. gentoo. org. [2] Documentación de Gentoo: http:// www.gentoo.org/doc/es [3] Foro Gentoo: http://forums.gentoo. org [4] Linux Installation, Configuration and Use, por Michael Kofler; AddisonWesley, 2004. [5] Grub: http://www.gnu.org/software/ grub [6] Planet Gentoo: http://planet.gentoo. org [7] Linux Installation and Getting Started, por Welsh, Dalheimer, Dawson, y Kaufman; O’ Reilly, 2003.