User:Roizheim/Complete Handbook/Installing Gentoo/es

From Gentoo Wiki
Jump to: navigation, search

Fecha última revisión

Actualizada:
2016-04-12

Advertencia

Declinación de responsabilidad:
  • Esta es una traducción para mi uso personal, de modo que, no está, en modo alguno, ni sancionada ni mantenida oficialmente.
  • Si decides seguirla, hazlo bajo tu exclusivo riesgo y responsabilidad.
  • Para una guía de instalación de Gentoo, traducida oficialmente, fiable, completa y actualizada, acude aquí.

Instalar Gentoo

Instalación de Gentoo Linux >>

Contents

Preparar el soporte de instalación

Versión original inglesa: Complete Handbook/Versions media installation concerns

Acerca de las liberaciones de Gentoo

Versiones de Gentoo

Una de las principales ventajas de Gentoo es que no conoce realmente de versiones. Una vez instalado, el usuario dispone de una instalación de Gentoo, no de una instalación de Gentoo 2005.1 o 2004.3. Por lo tanto, los usuarios seguirán beneficiándose del desarrollo de Gentoo con cada actualización realizada del sistema —no hay necesidad de ejecutar un procedimiento de actualización específico cada vez que Gentoo hace una nueva versión—.

Esto también se refleja en el ritmo en el que Gentoo libera nuevas imágenes de instalación: a través de un proceso de autocompilación, la nuevas imágenes se proporcionan sobre una base semanal (para arquitecturas activas). Estas compilaciones contienen todas las medios necesarios para instalar Gentoo, y es también el procedimiento que utilizaremos en este manual.

Las liberaciones DVD live de Gentoo

De vez en cuando, Gentoo creará un DVD live desde el que se puede probar un sistema operativo Gentoo antes de instalarlo. Estas liberaciones se anuncian en el sitio web principal de Gentoo.

Importante
Hay que entender que el proceso de instalación de Gentoo es un procedimiento «manual», que requiere gran cantidad de intervenciones por parte del administrador.

La estructura de una instalación de Gentoo Linux

Es importante tener presente que el proceso de instalación de Gentoo es muy diferente al de la mayoría de las distribuciones de Linux: donde otras distribuciones intentan realizar la mayoría de los pasos por sí mismas en lugar del usuario, Gentoo Linux pide al usuario educadamente (pero con firmeza) que intervenga de manera activa.

Conseguir poner en marcha el hardware, configurar la red, particionar el disco(s), copiar los ficheros iniciales, compilar el software adicional (incluyendo el núcleo), ..., todas estas operaciones son pasos que deben realizarse antes de que el usuario pueda finalmente arrancar un entorno mínimo de Gentoo. Esto no significa que todos estos pasos no puedan ser automatizados (Gentoo incluso ofrece herramientas para automatizar algunas de esas medidas y, de hecho, puede que haya algunos instaladores no oficiales que automatizan más pasos —si no todos—), pero al documentar estos pasos con gran detalle, Gentoo obliga así al usuario a aprender diversos procedimientos relacionados con Linux.

La estructura de una instalación de Gentoo es la siguiente:

  1. Descargar e iniciar un sistema con capacidad de arranque a partir del cual se puede instalar Gentoo.
  2. Preparar el disco(s) y las particiones para alojar a Gentoo.
  3. Descargar y extraer el fichero comprimido más reciente (fichero stage) que crea un entorno mínimo de Gentoo como base para instalar posteriormente más cosas.
  4. Efectuar chroot en este entorno mínimo de Gentoo e instalar un núcleo de Linux, las utilidades core y el gestor de arranque.
  5. Reiniciar en el sistema Gentoo recién instalado.

Una gran ventaja de permitir al usuario realizar todos los pasos po sí mismo es que se le permite decidir cómo quiere instalar Gentoo —las opciones están ahí, el usuario tiene que hacer su elección, una y otra vez—. Al identificar claramente las opciones y documentar los posibles caminos, Gentoo espera que el usuario no solo no tenga miedo, sino más bien que quede impresionado.

Descargar, grabar y arrancar el soporte de instalación

Para arrancar un soporte de instalación desde el cual poder instalar Gentoo, lo primero que debe saber es a qué arquitectura de dirige la instalación.

Nota
Una arquitectura es una familia de CPU (procesadores) que soportan las mismas instrucciones. Las dos arquitecturas más destacados en el mundo de los entornos de escritorios son la arquitectura x86 y la arquitectura x86_64 (para la que Gentoo usa la notación amd64). Pero existen otras muchas arquitecturas, tales como sparc, ppc (la familia PowerPC), mips, arm, ...

Gentoo soporta cierto número de arquitecturas, a saber:

Arquitectura Notación de Gentoo Información Ejemplo de sistemas o CPU
x86 x86 Una arquitectura de 32 bits utilizada por las CPU que a menudo se dice que son «Intel compatible». Fue, hasta hace poco, la arquitectura más popular para los PC de escritorio. Gentoo ofrece compilaciones para i486 (soporta todas las familias) y i686 (soporta Pentium y superior o compatible). i486, i686, Intel Core, AMD Athlon, Intel Atom
x86_64 amd64 Una arquitectura de 64 bits que es compatible con la arquitectura x86. Fue utilizada por primera vez por AMD (bajo el nombre AMD64) e Intel (bajo el nombre EM64T) y ahora es la arquitectura más prominente para la gama media y alta de escritorios de PC. También se encuentra comúnmente en el segmento de servidores. AMD Athlon 64, AMD Opteron, AMD Sempron processors, AMD Phenom, Intel Pentium 4, Intel Pentium Core i3, Intel i5, Intel i7
IA64 ia64 Una arquitectura de 64 bits diseñada por Intel y utilizada en su serie de procesadores Intel Itanium. Esta arquitectura no es compatible con x86 o x86_64 (denominada en Gentoo amd64) y se encuentra principalmente en la serie de servidores de gama media y alta. Intel Itanium
Sparc sparc La arquitectura SPARC es mejor conocida por sus productores más comunes, Sun (ahora Oracle) y Fujitsu. Se utiliza en sistemas de servidores, aunque existe en unas pocas estaciones de trabajo también. En Gentoo, solo son soportadas CPU compatibles con SPARC64. E3000, Blade 1000, Ultra 2
PowerPC ppc Una arquitectura de 32 bits utilizada por muchos procesadores de Apple, IBM y Motorola. Se encuentra más comúnmente en sistemas integrados. Apple OldWorld, Apple NewWorld, generi Pegasos, Efika, older IBM iSeries y pSeries
PowerPC 64 ppc64 La variante de 64 bits de la arquitectura PPC, conocida tanto integrada en sistemas como en servidores de alto rendimiento. IBM RS/6000s, IBM pSeries, IBM iSeries
Alpha alpha La arquitectura Alpha es una arquitectura de 64 bits desarrollada por Digital Equipment Corporation (DEC). Todavía está en uso por algunos servidores de gama media y alta, pero la arquitectura está siendo lentamente desatendida. ES40, AlphaPC, UP1000, Noname
PA-RISC hppa Conocida como HPPA, la arquitectura PA-RISC es un conjunto de instrucciones desarrollado por Hewlett-Packard y fue utilizado en su serie de servidores de gama media y alta, y hasta cerca de 2008 (fecha en la de que HP comenzó a usar Intel Itanium) HP 9000, PA-8600
MIPS mips Desarrollado por MIPS Technologies, la arquitectura MIPS conlleva múltiples subfamilias (llamadas revisiones) como MIPS I, MIPS III, MIPS32, MIPS64 y más. MIPS es más común en sistemas integrados. MIPS32 1074K, R16000
ARM arm Esta arquitectura de 32 bits es una arquitectura muy popular para sistemas integrados y pequeños. Las subarquitecturas van desde ARMv1 a ARMv7 (Cortex) y, a menudo, se encuentran en los teléfonos inteligentes, tabletas, consolas portátiles, sistemas de navegación GPS para el usuario final, etc. StrongARM, Cortex-M

En este manual, nos centramos en la arquitectura amd64.

Descargar la imagen

La imagen de instalación predeterminada que utiliza Gentoo Linux sirve para crear un CD de instalación mínima (u otro soporte, como una memoria USB), que alberga un entorno de arranque muy pequeño de Gentoo Linux, con las herramientas adecuadas para instalar Gentoo Linux desde él. Las imágenes pueden ser descargadas desde uno de los muchos servidores de réplica disponibles.

En dichos servidores de réplicas, las imágenes para la instalación mínima se pueden encontrar de la siguiente manera:

  1. Ir al directorio releases/.
  2. Seleccionar la arquitectura adecuada, tal como amd64/.
  3. Seleccionar el directorio autobuilds/.
  4. Seleccionar el directorio current-iso/.

Dentro de esta ubicación, la imagen de instalación será el fichero con el sufijo .iso. Como ejemplo, eche un vistazo a la siguiente lista:

CODE Ejemplo de lista de ficheros descargables de releases/amd64/autobuilds/current-iso/
[DIR] hardened/                                          05-Dec-2014 01:42    -   
[   ] install-amd64-minimal-20141204.iso                 04-Dec-2014 21:04  208M  
[   ] install-amd64-minimal-20141204.iso.CONTENTS        04-Dec-2014 21:04  3.0K  
[   ] install-amd64-minimal-20141204.iso.DIGESTS         04-Dec-2014 21:04  740   
[TXT] install-amd64-minimal-20141204.iso.DIGESTS.asc     05-Dec-2014 01:42  1.6K  
[   ] stage3-amd64-20141204.tar.bz2                      04-Dec-2014 21:04  198M  
[   ] stage3-amd64-20141204.tar.bz2.CONTENTS             04-Dec-2014 21:04  4.6M  
[   ] stage3-amd64-20141204.tar.bz2.DIGESTS              04-Dec-2014 21:04  720   
[TXT] stage3-amd64-20141204.tar.bz2.DIGESTS.asc          05-Dec-2014 01:42  1.5K

En el ejemplo anterior, el fichero install-amd64-minimal-20141204.iso servirá para crear el propio soporte de instalación mínima. Pero, como se puede ver, existen otros ficheros presentes allí, a saber:

  • Un fichero denominado .CONTENTS, que es un fichero de texto que contiene una relación de todos los ficheros disponibles en la imagen de instalación. Este fichero puede ser útil para verificar si el firmware o controladores para su caso particular están disponibles en la imagen de instalación antes de descargarla.
  • Un fichero denominado .DIGESTS, que contiene el hash del propio fichero, en diferentes formatos de hash/algoritmos. Este fichero puede ser utilizado para verificar si el fichero ISO descargado está dañado o no.
  • Un fichero denominado .DIGESTS.asc, que no solo contiene el hash del fichero ISO (como el fichero .DIGESTS), sino también una firma criptográfica de ese fichero. Esto puede ser usado tanto para verificar si el fichero ISO descargado está dañado o no, como para verificar que el fichero descargado es proporcionado efectivamente por el equipo de ingenieros de lanzamientos de Gentoo y no ha sido manipulado.

Ignore los otros ficheros disponibles en este lugar por ahora —va a volver sobre ellos cuando la instalación se encuentre más avanzada—. Descargue el fichero .ISO y, si desea verificar la imagen, descargue el fichero .DIGESTS.asc que acompaña al fichero ISO en cuestión. El fichero .CONTENTS no necesita ser descargado, dado que las instrucciones de instalación no se remitirán a este fichero ya, y el fichero .DIGESTS debe contener la misma información que el fichero .DIGESTS.asc, con la salvedad de que este último contiene además una firma en la parte superior del mismo.

Verificar los ficheros descargados

Nota
Este es un paso opcional y no necesario para instalar Gentoo Linux. Sin embargo, se recomienda, ya que nos aseguramos que el fichero descargado no está dañado y, de hecho, ha sido proporcionado por el equipo de infraestructura de Gentoo.

A través de los ficheros .DIGESTS y .DIGESTS.asc, la validez del fichero ISO se puede confirmar mediante un conjunto adecuado de herramientas. Esta verificación se realiza generalmente en dos pasos:

  1. En primer lugar, la firma criptográfica es validada para asegurarnos de que el fichero de instalación es proporcionado por el equipo de ingenieros de lanzamientos de Gentoo.
  2. Si la firma criptográfica queda validada, entonces la suma de comprobación es verificada para asegurarnos de que el fichero descargado no está dañado.

Cómo verificar en Microsoft Windows

En un sistema Microsoft Windows, es poco probable que disponga de un conjunto adecuado de herramientas para verificar las sumas de comprobación y las firmas criptográficas.

Para verificar primero la firma criptográfica, se pueden usar herramientas como GPG4Win. Después de la instalación, deben ser importadas las claves públicas del equipo de ingeniería de lanzamientos de Gentoo. La lista de claves está disponible en el sitio release engineering. Una vez importadas, el usuario puede comprobar la firma del fichero .DIGESTS.asc.

Importante
Esto no verifica que el fichero .DIGESTS es correcto, solo que el fichero .DIGESTS.asc lo es. Esto también implica que la suma de comprobación debe ser verificada confrontándola con los valores del fichero .DIGESTS.asc, por lo que las instrucciones anteriores solo se refieren a la descarga del fichero .DIGESTS.asc.

La suma de comprobación en sí puede ser verificada con la aplicación Hashcalc, aunque existen otras muchas también. En la mayoría de los casos, estas herramientas mostrarán al usuario la suma de comprobación calculada, y se le pedirá que verifique esta suma de comprobación con el valor que se encuentra dentro del fichero .DIGESTS.asc.

Cómo verificar en Linux

En un sistema Linux, el método más común para la verificación de la firma criptográfica es utilizar el software app-crypt/gnupg. Con este paquete instalado, se pueden utilizar las siguientes órdenes para verificar la firma criptográfica del fichero .DIGESTS.asc.

En primer lugar, descargue el conjunto adecuado de claves, según datos facilitados en el sitio release engineering:

user $gpg --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net
gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   3  signed:  20  trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1  valid:  20  signed:  12  trust: 9-, 0q, 0n, 9m, 2f, 0u
gpg: next trustdb check due at 2018-09-15
gpg: Total number processed: 1
gpg:         new signatures: 1

A continuación, verifique la firma criptográfica del fichero .DIGESTS.asc:

user $gpg --verify install-amd64-minimal-20141204.iso.DIGESTS.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET
gpg:                using RSA key 0xBB572E0E2D182910
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD  B1BA BB57 2E0E 2D18 2910

Para estar absolutamente seguro de que todo es válido, verifique que la huella digital mostrada se corresponde con la huella digital del sitio Gentoo Release Engineering.

Con la firma criptográfica validada, procederemos a verificar la suma de comprobación para asegurarnos de que el fichero ISO descargado no está dañado. El fichero .DIGESTS.asc contiene múltiples algoritmos hash, por lo que uno de los métodos para validar uno de ellos, es, a bote pronto, mirar la suma de comprobación registrada en el fichero .DIGESTS.asc. Por ejemplo, para obtener la suma de verificación de SHA512:

user $grep -A 1 -i sha512 install-amd64-minimal-20141204.iso.DIGESTS.asc
# SHA512 HASH
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024  install-amd64-minimal-20141204.iso
--
# SHA512 HASH
0719a8954dc7432750de2e3076c8b843a2c79f5e60defe43fcca8c32ab26681dfb9898b102e211174a895ff4c8c41ddd9e9a00ad6434d36c68d74bd02f19b57f  install-amd64-minimal-20141204.iso.CONTENTS

En la salida anterior, se muestran dos sumas de verificación SHA512 —una para el fichero install-amd64-minimal-20141204.iso y otra para su fichero de acompañamiento .CONTENTS—. Solo la primera suma de comprobación es de interés, ya que tiene que ser comparada con la suma de comprobación de SHA512 calculada, que puede ser generada como sigue:

user $sha512sum install-amd64-minimal-20141204.iso
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024  install-amd64-minimal-20141204.iso

Cuando ambas sumas de comprobación coincidan, ello significará que el fichero no está dañado y podrá continuar con la instalación.

Grabar la imagen de instalación

Por supuesto, con solo un fichero ISO descargado, la instalación de Gentoo Linux no se puede iniciar. El fichero ISO necesita grabarse en un soporte (cd o usb) para arrancar desde él, de tal manera que se grabe el «contenido» de la imagen ISO en el soporte y no solo el fichero ISO en sí. A continuación se describen algunos de los métodos más comunes —un conjunto más elaborado de instrucciones se puede encontrar en Our FAQ on burning an ISO file— para grabar la imagen de instalación, concretamente en un CD.

Cómo grabar en Microsoft Windows

En Microsoft Windows, dispone de una serie de herramientas que le permitirán grabar imágenes ISO en CD.

  • Con EasyCD Creator, seleccione File, Record CD from CD image. A continuación, cambie el Files of type a ISO image file. Luego, localice el fichero ISO y haga clic en Open. Después de hacer clic en Start recording la imagen ISO será correctamente grabada en el CD-R.
  • Con Nero Burning ROM, cancele el asistente que emerge automáticamente y seleccione Burn Image desde el menú File. Seleccione la imagen para grabar y haga clic en Open. Ahora pulse el botón Burn y espere a que el nuevo CD se grabe.

Cómo grabar en Linux

En Linux, el fichero ISO se puede grabar en un CD utilizando la orden cdrecord, que forma parte del paquete app-cdr/cdrtools.

Por ejemplo, para grabar el fichero ISO en el CD montado en el dispositivo /dev/sr0 (este es el primer dispositivo de CD del sistema —sustitúyalo por el correcto en su caso, si es necesario—):

user $cdrecord dev=/dev/sr0 install-amd64-minimal-20141204.iso

Los usuarios que prefieren una interfaz gráfica pueden utilizar K3B, parte del paquete app-cdr/k3b. En K3B, vaya a Herramientas y después a Grabar imagen de CD. A continuación, siga las instrucciones proporcionadas por K3B.

Arrancar el soporte de instalación

Una vez que la imagen de instalación ha sido grabada en el CD, la instalación de Gentoo Linux puede ahora comenzar. Coloque el CD en su unidad de lector óptico y reinicie el sistema, asegurándose de que el sistema ahora arranca desde el CD.

En la mayoría de los sistemas, es posible cambiar el orden de arranque en el momento de encender el equipo, por ejemplo, pulsando F5, F8 o Esc (Escape), antes de que el equipo inicie el arranque del sistema operativo. Cómo lograr esto, es específico de cada ordenador, así que consulte la documentación de su equipo si no está seguro de como hacer esto.

Una vez arrancado, el CD de instalación dará la bienvenida al usuario con un prompt de root, lo que le indicará que el sistema está a la espera de recibir órdenes:

root # 

Este es el prompt de línea de órdenes que se utilizará para instalar Gentoo Linux, como se explica en las siguientes secciones.

El entorno live del soporte de instalación

Versión original inglesa: Complete Handbook/Starting from minimal environment

El prompt que ahora está viendo es muy poderoso, pero un poco intimidante al principio. Si sabe cómo funciona la línea de órdenes de Linux, este capítulo no le pillará por sorpresa y se puede saltar fácilmente al siguiente capítulo: Preparar la conexión de red.

Navegación básica

Trabajar en la línea de órdenes

En el prompt se pueden introducir órdenes que se ejecutarán en el entorno de Gentoo Linux. Las órdenes básicas son solo palabras sencillas, como ls o ps. La mayoría de las órdenes, sin embargo, requieren, a menudo, ir acompañadas de palabras adicionales, como cd /var o man ls. Estos caracteres adicionales se llaman argumentos.

Lo más normal es que estos argumentos representen ciertas opciones en la orden. Por ejemplo, la orden ls (utilizada para mostrar el contenido de un directorio) puede tener varias opciones, como l (para una descripción amplia de cada fichero encontrado), -a (para incluir en el listado los ficheros ocultos), etc.

En el siguiente listado de código verá esta terminología explicada. La orden mostrada enumerará el contenido del directorio /var/tmp (una ubicación temporal), que muestra información adicional acerca de cada fichero encontrado, incluyendo los ficheros ocultos.

root # ls -la /var/tmp
<-+--><+> <+> <---+-->
  |    |   |      `- Argumento, en este caso, el directorio de destino a listar
  |    |   `- Argumento, con dos opciones: descripción amplia + mostrar ficheros ocultos
  |    `- Orden (listar, en este caso)
  `- Prompt

Después de haber construido una orden, puede ejecutarla pulsando la tecla intro o retorno. Su shell, esto es, el entorno de la línea de órdenes «en» el que se encuentra actualmente, interpreta las órdenes y le ayuda a navegar por el entorno Linux. A continuación, ejecute la orden y le mostrará los resultados.

La siguiente sección le dará un curso intensivo de ciertas órdenes de Linux que le ayudarán a explorar su entorno mínimo actual de Gentoo. No entraremos en mucho detalle —dispone de muchas guías y manuales en línea que le informarán acerca de las herramientas básicas de Linux—.

Moverse en el entorno

Ya hemos visto cómo se presenta un sistema de ficheros de Linux (su estructura jerárquica, ¿recuerda?). Para ayudarle a salir airoso le daremos una visión rápida de las herramientas más comunes que pueda necesitar para navegar en su entorno de Gentoo Linux:

Orden Descripción
ls Lista el contenido de un directorio dado, o el directorio actual si no se indica el directorio.
user $ls /mnt/cdrom
pwd Muestra el directorio de trabajo actual; esto es, el nombre de la ruta completa del directorio en el que se encuentra actualmente.
user $pwd
cd Cambia el directorio de trabajo actual a una ubicación diferente. Si no se indica el directorio, se cambia al directorio home del usuario.
user $cd /mnt/gentoo
less Muestra en la pantalla el contenido de un fichero determinado. Puede navegar a través del fichero con las flechas arriba y abajo, y salir de la aplicación pulsando q.
user $less install.txt
rm Elimina un fichero del sistema (si tiene los privilegios necesarios). Para eliminar un directorio con todos los ficheros presentes en él, utilice la opción -r. Sin embargo, tenga cuidado con esta orden, ya que no le avisará cuando se está a punto de destruir todos sus datos.
user $rm portage.tar

Terminales concurrentes

El CD de instalación de Gentoo le permite usar varios terminales simultáneamente. Esto significa que puede trabajar en uno, navegar por internet en otro y charlar en un tercero. Para cambiar entre terminales, escriba Alt + F# (con la F# de una de las teclas de función). Se dará cuenta de que la sesión actual se encuentra en F1.

También puede trabajar en un terminal y luego poner su sesión de trabajo en segundo plano mediante una potente herramienta llamada screen. Con screen, incluso, puede dejar que otras personas trabajen en su terminal mientras está viendo cada paso que realizan.

Iniciar una sesión de screen:

user $screen -S mySession

Para separar una sesión de screen, escriba Ctrl + A seguido de una d.

Reconectar a una sesión de screen:

user $screen -x mySession

Para salir de una sesión de screen, basta con escribir 'exit':

user $exit

Utilidades para la red

Gentoo ofrece ciertas herramientas en los CD de instalación que puede utilizar para navegar por Internet, descargar ficheros, chatear en la red IRC, etc. Vamos a tratar algunos de ellos en esta sección, pero tenga en cuenta que dichos recursos no se podrán utilizar hasta que haya configurado su red (y la conexión a Internet), lo cual se describe en el capítulo siguiente.

Navegar por Internet

Debido a que se no dispone de una documentación perfecta y a que no hay dos entornos iguales, a menudo se agradece la posibilidad de buscar información adicional y de obtener ayuda en Internet. Sitios web como el Gentoo documentation repository o poderosos motores de búsqueda como Google son un recurso bienvenido para resolver las dudas que puedan aparecer durante la instalación.

Para navegar a través de estos sitios necesita un navegador. Debido a que los CD de instalación de Gentoo no contienen un entorno gráfico, necesitará utilizar un sistema diferente, un medio de instalación diferente o un navegador no gráfico. Los CD de instalación de Gentoo ofrecen, al menos, uno de los siguientes navegadores de consola:

  • lynx, un navegador web de propósito general que opera con el uso de las teclas (por ejemplo D para descargar, G para ir a un sitio diferente, ...).
  • links2, un navegador con carácterísticas completas con soporte para marcos, JavaScript limitado, svgalib/framebuffer, descarga de imágenes de fondo, ..., que opera tanto por menú (pulse Esc para abrir el menú), como dirigido por teclas.

Ambos navegadores son compatibles con servidores proxy, aunque el primero utiliza la forma estándar (ajustando una variable de entorno HTTP_PROXY), mientras que el segundo requiere que introduzca el servidor proxy en el navegador.

Para lynx - ignorar la orden export si no se necesita proxy:

user $export HTTP_PROXY="http://myproxy.server.tld:8080"

Para links2 - ignorar la opción -http-proxy si no se necesita proxy:

Conversar en una red IRC

Cuando no se puede encontrar información útil en Internet, siempre puede hacer su pregunta en los canales IRC de #gentoo-install o de #gentoo en FreeNode. Gentoo ofrece un cliente de chat, basado en terminal pero extremadamente potente, llamado irssi.

Su uso es muy sencillo. En primer lugar, conéctese a la red IRC. Después, únase al canal(s) en el que desee participar. Puede utilizar Alt + F# para cambiar entre los canales (o escriba /window # si la combinación de teclas falla). Para salir de la aplicación, escriba /quit.

user $irssi -c irc.freenode.net YourNickName
## (Wait until the connection is made)
[irssi #] /join #gentoo

Acceder a una shell remota

El CD de instalación Gentoo contiene un demonio SSH, que es una herramienta que permite a otros conectarse de forma segura a su sistema para que puedan ayudarle a instalar Gentoo. Este servicio no se inicia de forma predeterminada, por lo que si quiere usarlo debe:

  • Conseguir conexión a Internet funcional.
  • Crear una cuenta de usuario.
  • Dar a la cuenta de root una contraseña.
  • Iniciar el demonio SSH.

Si confía en la otra persona, se le puede dar la contraseña de root, pero es recomendable dar solo acceso limitado a la otra persona —persona que debe ayudarle a identificar los errores y a resolverlos usted, no a corregirlos ella misma—. De lo contrario no va a aprender :)

En primer lugar, obtenga conexión a Internet funcional, agregue el usuario 'myuser' y dele una contraseña:

root #useradd -m -G users myuser
root #passwd myuser

Ahora de al usuario 'root' una contraseña (diferente):

root #passwd

En este punto se puede iniciar el servicio sshd:

root #rc-service sshd start

Las contraseñas que defina aquí se limitan al entorno del CD de instalación de Gentoo y solo hasta que se reinicie. ¡No se utilizan para su instalación final de Gentoo!

Preparar la conexión de red

Versión original inglesa: Complete Handbook/Preparing the network

Introducción

¿Por qué se necesita la conexión de red...?

No se necesita una conexión a Internet para todo, pero si puede disponer de una, mejor que mejor —esta parte del manual solo tratará de las instalaciones que dispongan de una conexión a Internet, por las ventajas que ofrece—. No solo se pueden instalar inmediatamente las últimas versiones de todos los paquetes de Gentoo, sino que también le permite acudir a Internet para buscar ayuda y apoyo, o chatear mientras se está instalando Gentoo.

En este capítulo nos ocuparemos de un tipo de red específico: Ethernet. Una conexión de red Ethernet es referida a menudo como red cableada, utilizando una clavija de red RJ-45. Las redes inalámbricas, también conocidas como WiFi o IEEE 802.11x, también tienen soporte en los CD de instalación de Gentoo, pero no están tratadas en este capítulo (encontrará más información al respecto más adelante en este manual).

Reconocer el hardware de red

Detectar automáticamente el hardware de red

Primero tiene que configurar el sistema para dar soporte a su tarjeta de red. Lo más probable es que la tarjeta ya haya sido encontrada y tenga soporte. Para comprobar esto, utilice el herramienta ifconfig. Esta herramienta le dirá las interfaces de conexión que están disponibles en su sistema. Las interfaces de conexión son a las que Linux puede asignar la dirección IP. Puede representar un dispositivo de red, pero no tiene por qué: hay interfaces de conexión para el sistema local (localhost, que no necesita una tarjeta de red), túneles de red, puentes de red, etc.

root #ifconfig -a

La orden anterior mostrará información sobre cada interfaz que se encuentra en su sistema. Las interfaces de conexión que comienzan con eth son las que más nos interesan. Esas interfaces de conexión representan las tarjetas de red. Si tiene una tarjeta de red, es probable que se llame eth0. Si tiene dos, serían llamadas eth0 y eth1, etc.

Si tiene varias tarjetas de red, no se podría decir en este momento qué interfaz representa a cada tarjeta de red. Hay varias maneras de discernir esto, pero el método más fácil es suponer que eth0 es en la que está interesado —y si resulta que su red no funciona, pruebe cambiando el cable— :)

Ahora, si ha visto las interfaces eth entonces su hardware las ha detectado y tienen soporte, y se puede continuar con la siguiente sección. De lo contrario, necesita saber qué chipset usa su tarjeta de red y cargar el soporte de hardware necesario.

Descubir manualmente el hardware de red

Con lspci se puede obtener una visión general de todos los dispositivos PCI que se encuentran en su sistema. La parte interesante de esta herramienta es que muestra la función del dispositivo y la marca y tipo, por lo que es excelente para descubrir lo que tiene bajo el capó de su sistema.

Estamos interesados en el controlador Ethernet o controlador de red, por lo que vamos a filtrar la salida de la orden lspci usando la herramienta grep, de modo que solo nos dará las líneas que contienen 'Ethernet controller' o 'Network controller ' en ella:

root #lspci | grep 'Ethernet controller'

Sustituir con 'Network controller' si no se obtiene el resultado deseado:

root #lspci | grep 'Ethernet controller'
0000:06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 
  Gigabit Ethernet (rev 10)

Con esta información, se puede iniciar la búsqueda del módulo del núcleo que ofrece soporte para su tarjeta Ethernet. En el ejemplo anterior, el módulo es r8169.ko. Aunque hay una manera bastante eficiente para averiguar la existencia del módulo del núcleo para el chipset en cuestión (esto es, buscar a través de la información de configuración del menú del núcleo de Linux) dicho método no lo podemos utilizar aquí desde el CD de instalación de Gentoo dado que no se dispone de esta información de configuración todavía.

Sin embargo, no se sienta desamparado. Puede tratar de sondear a través de todos los módulos del núcleo disponibles que admiten tarjetas de red, con la esperanza de encontrar cualquier referencia al conjunto de chips que tiene. Un método fácil es 'volcar' una lista de todos los módulos del núcleo y filtrar aquellos que contienen un buen identificador en su nombre.

Por ejemplo, en el caso anterior, podría conducirle al descubrimiento del módulo r8169.ko usando el siguiente método:

root #find /lib/modules | grep -i '8169'

El parámetro -i le dice a la herramienta grep que diferencie entre mayúsculas y minúsculas. Para el ejemplo que nos ocupa no importa, ya que estamos pidiendole a grep que filtre un número —que no está afectado por la distinción de mayúsculas y minúsculas— pero no deja de ser importante para el resto de filtros.

También puede puede probar varios términos que estén presentes en el nombre del chipset, ya sea trabajando independientemente con cada término, o proporcionando a grep una lista completa de las palabras para filtrar. Esto último se puede lograr mediante la adición de la opción -E, seguida del listado de los términos de búsqueda, términos separados por barras verticales «|» y encerrados todos ellos entre paréntesis «(» y «)». El parámetro -E indica a grep que interprete el filtro como una expresión regular:

root #find /lib/modules | grep -iE '(8169|realtek|rtl)'

Una vez que haya encontrado un posible módulo del núcleo para su tarjeta de red, se puede probar cargándolo en la memoria usando modprobe. Esta herramienta buscará el módulo, consultando posibles dependencias con otros módulos (algunos módulos requieren que otro módulo se cargue primero) y luego cargará el módulo en la memoria. Por ejemplo, para el módulo r8169.ko:

root #modprobe r8169

Nótese que hemos descartado el sufijo «.ko»

Si esta orden tuvo éxito, pruebe ifconfig -a de nuevo para ver si tiene una interfaz funcional. Si no es así, siga intentándolo...

¿DHCP o dirección IP estática?

Configurar la información de la dirección IP

Ahora tenemos que configurar la interfaz para obtener una dirección IP (siglas en inglés de Internet Protocol address), una etiqueta numérica única que identifica su sistema dentro de una red . En la mayoría de los entornos, esto se puede obtener de forma automática mediante DHCP (siglas en inglés de Dynamic Host Configuration Protocol, —protocolo de configuración dinámica del equipo—). Este protocolo permite a las interfaces de conexión enviar una solicitud para obtener una dirección IP en la red, y recibir la dirección IP y la información de enrutamiento del servidor DHCP (que a menudo se encuentra en los routers domésticos o en entornos empresariales como un servicio autónomo).

Nota
TCP (siglas en ingés de de Transfer Control Protocol, —Protocolo de Control de Transmisión—), la otra parte del tándem TCP/IP, es el responsable de la comunicación de aplicaciones entre dos sistemas. Este protocolo no tiene ninguna recopilación de direcciones del sistema (que es el trabajo de IP), pero utiliza puertos de red en su lugar, para distinguir una sesión de comunicación de otra.

Si tiene un servicio DHCP para su red, es necesario ejecutar un cliente DHCP para la interfaz de conexión. Con Gentoo, tiene dhcpcd a su disposición. Existen también otros clientes como dhclient y pump. Para obtener automáticamente una dirección IP para la interfaz eth0, ejecute dhcpcd eth0, después de lo cual puede continuar con comprobar la conexión de red.

root #dhcpcd eth0

Si su tarjeta de red es detectada automáticamente por Gentoo y su red tiene soporte para DHCP, es probable que reciba una advertencia que indica que una instancia de dhcpcd ya se está ejecutando. Eso está bien, significa que la instalación ya tenía la red configurada en su sistema.

Si necesita configurar la red con una dirección IP estática, hay que saber:

  • qué dirección IP puede utilizar,
  • qué dirección IP de su puerta de enlace es la que escuha, y
  • qué parte de la dirección IP se reserva para la identificación de la red.

La puerta de enlace es un sistema que actúa como la conexión entre su red y el mundo exterior. Si tiene un PC que comparte una conexión a Internet (que a menudo utiliza NAT (siglas en inglés de Network Address Translation —Traducción de direcciones de internet—) lo más probable es que su dirección IP sea la dirección IP de la puerta de enlace.

La parte de red de la dirección IP es la que separa su dirección IP de una dirección IP expuesta públicamente. Por ejemplo, si su dirección IP es 192.168.1.12 y todas las direcciones IP en su red están en el rango de 192.168.1.1 a 192.168.1.255, entonces la parte de red de la dirección IP son los tres primeros bloques de números. Este es identificado por una máscara de red 255.255.255.0.

Para configurar la interfaz de conexión con una dirección IP estática puede utilizar la aplicación ifconfig, que ya hemos visto cuando intentamos descubrir las interfaces de conexión que estaban disponibles en su sistema.

La herramienta ifconfig necesita que le pasemos la interfaz de conexión, la dirección IP y la máscara de red. Supongamos que 192.168.1.12 es su dirección IP y su máscara de red 255.255.255.0:

root #ifconfig eth0 192.168.1.12 netmask 255.255.255.0 up

A continuación, tenemos que configurar el sistema para transmitir las solicitudes de Internet a la puerta de enlace. Con la orden route puede configurar la puerta de enlace por defecto, esto es, la ubicación predeterminada por donde pasan las peticiones que son para una red desconocida. Suponiendo que 192.168.1.1 es la dirección IP de la puerta de enlace:

root #route add default gw 192.168.1.1

Casi hemos acabado. Debería ser capaz de obtener conexiones con Internet... siempre que supiera todas las direcciones IP de todos los servidores de memoria. Para ser capaz de utilizar los nombres de equipos (o de servidor) como si fueran direcciones IP, tiene que decirle al sistema dónde están los servidores de nombres: estos son sistemas que pueden traducir los nombres de equipos en direcciones IP. Su proveedor de servicios de Internet o administrador de red debe ser capaz de decirle qué direcciones IP se corresponden con los servidores de nombres.

Es necesario colocar estas direcciones IP en el fichero /etc/resolv.conf cuyo único propósito es definir todo lo relacionado con la configuración de los nombres de equipos, incluyendo donde se encuentran los servidores de nombres.

Para editar este fichero, puede utilizar nano, un simple editor de texto para la línea de órdenes. Podría disponer de otros editores, tales como vi y emacs, sin embargo, nano, ciertamente lo tiene disponible, por lo que vamos a utilizar nano como ejemplo. Suponiendo que los servidores de nombres son 123.45.67.89 y 123.45.67.90:

root #nano /etc/resolv.conf
## (Cambiar el contenido del fichero que contiene los servidores de nombres:)
nameserver 123.45.67.89
nameserver 123.45.67.90

Ahora que esto se ha hecho, debería probar la conectividad de su red.

Comprobar la conexión

Con el herramienta ping puede enviar pequeñas solicitudes a los servidores de todo Internet (pero también en su red) y pedirles que devuelvan una respuesta. Esto hace que ping sea una herramienta perfecta para comprobar si un sistema es accesible. Vamos a utilizar esta herramienta para comprobar la conectividad de red.

En primer lugar, vamos a tratar de llegar al servidor web de Google. Le enviaremos tres peticiones, si son devueltas, su red (y conexión a Internet) está funcionando y podemos seguir con el próximo capítulo.

root #ping -c 3 www.google.com

Si no puede hacer ping a este sistema por su nombre, puede tratar de hacer ping a un servidor de Internet por su dirección IP. En el siguiente ejemplo, le enviamos tres solicitudes a 66.249.93.104, que es una dirección IP de un servidor de Google. Sin embargo, las direcciones IP pueden cambiar, por lo que es más fácil si se verifica primero que esta dirección IP es realmente funcional en un sistema diferente que tenga una conexión activa a Internet.

root #ping -c 3 66.249.93.104

Si esto funciona, entonces el problema es con la resolución de nombres. Compruebe que su fichero /etc/resolv.conf contiene las direcciones IP correctas para los servidores de nombres. Esas direcciones IP deben ser alcanzables (puede hacer ping a las mismas también para verificarlo). Compruebe también que /etc/nsswitch.conf tiene una línea que comienza con 'hosts' y contiene 'dns' como palabra clave. Este fichero le dice a su sistema dónde buscar los diversos recursos, tales como la información para resolver nombres. La palabra clave 'dns' le dice al sistema qué servidores de nombres de /etc/resolv.conf debe utilizar. La palabra clave 'files' le dice al sistema que /etc/hosts contiene algunas direcciones IP con nombres de equipos que se deben utilizar también.

root #grep -E '^hosts' /etc/nsswitch.conf
hosts:       files dns

Supongamos que no hemos podido acceder a 66.249.93.104, entonces, es posible que tenga un problema de mala configuración con la puerta de enlace. Verifique si su puerta de enlace está ajustada correctamente, ejecutando route -n: la dirección IP de la puerta de enlace es la que se menciona junto al destino 0.0.0.0. En el siguiente ejemplo, se utiliza la herramienta awk para filtrar la salida de la orden route: de la línea que comienza con 0.0.0.0 solo mostrará la segunda «palabra» de dicha línea (que, en este caso, es la dirección IP de la puerta de enlace):

root #route -n | awk '/^0.0.0.0/ {print $2}'

Si la dirección IP de la puerta de enlace parece correcta, intente hacer ping a ver si se puede acceder a ella. Si obtiene respuesta de la puerta de enlace (pero no puede acceder a Internet), entonces es la propia puerta de enlace la que está bloqueando las conexiones de Internet (tal vez por un problema con el cortafuegos) o el sistema no es la puerta de enlace para todos los servidores de la red, sino tan solo para algunos.

Si no puede acceder a la dirección IP de la puerta de enlace, pero está seguro de que la dirección IP es correcta y no tiene un cortafuegos que esté descartando todas sus solicitudes (incluidas las solicitudes de ping), debemos concluir que su interfaz de conexión está funcionando mal. Asegúrese de que el cable de red está conectado y el cable es para el tipo de conexión que está utilizando (the straight versus crossed UTP cable debacle).

Preparar el alojamiento para la instalación de Gentoo

Versión original inglesa: Complete Handbook/Putting the minimal environment in place

Preparar los dispositivos de almacenamiento

Introducción

Un trabajo difícil de cualquier instalación de Linux es preparar las particiones para albergar el sistema operativo. Cada persona tiene un criterio diferente en cuanto a lo que debería estar en una partición separada y lo que no, o qué sistema de ficheros usar.

El concepto que subyace en la idea de partición es hacer algún tipo de separación entre un conjunto de datos y otro. Por ejemplo, la gente tiene su sistema de ficheros /boot separado del sistema de ficheros root, porque quieren ser capaces de ocultar el contenido de /boot respecto del contenido del sistema durante las operaciones regulares. O se quiere tener un directorio /home separado porque eso les permitirá almacenar toda la información, configuraciones y datos específicos del usuario en un disco diferente, de modo que serán capaces de recuperar fácilmente los datos después de una reinstalación del sistema operativo.

También se puede optar por tener una partición separada porque se quiera mejorar el rendimiento, utilizando un sistema de ficheros diferente que se ajuste al uso que se quiere dar a los datos almacenados en la partición.

Decidir sobre el esquema de partición requiere un profundo conocimiento del sistema de ficheros:

  • ¿Qué ficheros se almacenan y dónde?
  • ¿Con qué frecuencia se utilizan los ficheros (lectura y escritura)?
  • ¿Cuál es la función del sistema que está construyendo?
  • ¿Qué características tienen los diversos sistemas de ficheros?

Debido a que este conocimiento es algo que se adquire con el tiempo (los errores, la experiencia;) su primer, segundo, tercer,... intento para crear un esquema perfecto, sin duda, fallará. Hay mucha gente que, por tanto, optan por un esquema de particionado sencillo (como, por ejemplo, poner todo en una sola partición, con una partición separada para la información swap1). Otros intentan utilizar un enfoque y un uso más dinámico con, por ejemplo, Volume Management.

Con LVM, se crea una capa intermedia entre las particiones presentes en el disco y los sistemas de ficheros que contienen sus datos. Esta capa se puede utilizar para combinar múltiples particiones como si fueran una sola, o utilizar varias divisiones lógicas en una sola partición. Por supuesto, la gestión de volúmenes es mucho más que eso: permite mas fácilmente mover los datos a través de particiones, reducir o aumentar sistemas de ficheros, etc.

Nota
1 El espacio de intercambio o swap es una ubicación específica en el disco en el que el núcleo de Linux puede almacenar páginas de memoria (esto es, regiones de datos en la memoria, asignadas para ser usadas por procesos o por el propio núcleo) que, lo más probable, no se van a utilizar durante un tiempo. El núcleo de Linux, una vez que su memoria se llena por completo (¡no antes!), mueve esas páginas de memoria a la ubicación de intercambio, liberando así memoria interna en favor de otras páginas de memoria más importantes.

Diseñar un esquema de particionado

Se debe comenzar por diseñar un esquema de particionado para el sistema. Decirle qué esquema de particiones es mejor para cada cual es imposible, pero he aquí algunos consejos:

  • Para cada partición que desee crear, pregúntese por la cantidad de espacio que la partición puede necesitar en función de las herramientas y servicios que desea instalar en ella. Asegúrese de que el diseño de cada partición sea más grande que el tamaño previsto para aquellos recursos: la ampliación de un sistema de ficheros no está exenta de peligros.
  • No todas las ubicaciones de sistema de ficheros de Linux son particionables, de modo que...
  1. Los directorios /etc, /lib, /bin y /sbin deben permanecer en el sistema de ficheros root, ya que necesitan estar disponible para el sistema operativo bajo cualquier circunstancia. Esto se debe a que son necesarios para poder montar otras particiones en el sistema de ficheros.
  2. Solo los directorios pueden ser separados desde un sistema de ficheros. Cada separación incluye automáticamente todos los subdirectorios.
  3. No se pueden separar dos directorios diferentes y pretender almacenarlos en una partición única (salvo en volúmenes lógicos, es decir, con particiones físicas de LVM se pueden alojar varios volúmenes lógicos en una), tampoco se pueden poner tanto /usr como /opt en un directorio único.

Algunos directorios también requieren una atención especial:

  1. El directorio /dev ya viene separado del sistema de ficheros principal por el administrador de dispositivos, por lo que no es necesario dedicar una partición específica para /dev.
  2. El directorio /tmp y /var/tmp se utilizan para el almacenamiento de ficheros temporales. Aunque el contenido de estos lugares es pequeño en la mayoría de las situaciones, puede crecer de forma exponencial. Por ejemplo, durante la instalación de software a través de Portage, se utiliza /var/tmp/portage y puede requerir hasta unos cuantos gigabytes (!) de espacio.
  • Pregúntese si realmente necesita esa característica hábil del sistema de ficheros en cuestión: el uso de la gestión de volúmenes o RAID (Software) requiere más trabajo. Sin mucha orientación, es posible que pierda demasiado tiempo indagando la solución de problemas relacionados con dichos sistemas de almacenamiento.
  • Muchas de las soluciones de copias de seguridad o backup pasan por ser sistemas de ficheros independientes, pero algunos de ellos no lo son. Si el almacenamiento de las copias de seguridad es limitado, pero está utilizando uno como solución dependiente del sistema de ficheros, asegúrese de que la cantidad total de datos que se respalda no excede del tamaño del almacenamiento dedicado para guardar la copia de seguridad.

Vamos a discutir las soluciones de almacenamiento más avanzadas con más detalle en otra parte de este manual, pero para hacerle consciente de las posibilidades disponibles, vamos a dar un rápido resumen de sus características primero. No vamos a integrar estas soluciones en el procedimiento de instalación, dado que complicaría las cosas demasiado.

Matrices RAID

RAID significa conjunto redundante de discos independientes (siglas en inglés de Redundant Array of Independent Disks) y es una forma bien conocida de juntar discos. Hay varios niveles de RAID definidos:

  • RAID-Lineal, se colocan dos (o más) discos anexos entre sí que permiten al usuario verlos como si esos discos fueran uno solo. Al principio, todos los datos se escriben en el primer disco. Una vez que dicho disco está lleno, se utiliza el segundo disco, y así sucesivamente.
  • RAID-0, también llamado striping: a diferencia de RAID-lineal, los datos, primero se dividen, para después escribir cada 'fragmento' de datos en los diferentes discos. Por lo tanto, los datos escritos en una matriz RAID-0 se reparten equitativamente entre todos los discos que la integran.
  • RAID-1, también conocido como mirroring, coloca todos los datos escritos en la matriz en los restantes discos. En otras palabras, cada disco integrante de la matriz RAID-1 es una copia exacta de los otros.
  • RAID-5 requiere al menos tres discos. Vamos a explicar su funcionamiento interno para tres discos, pero es perfectamente posible también con más de tres. Cuando se envían datos a la matriz, se reparten. Por cada dos partes de datos, se crea un simple checksum, así que tenemos tres segmentos de datos. Estos tres segmentos se almacenan en un disco. Si se pierde uno de los segmentos, su contenido se puede recuperar de los otros dos segmentos, si es necesario.

Existen otros niveles de RAID pero se utilizan con menos frecuencia.

Las matrices RAID son interesantes cuando se necesita una alta disponibilidad de sus datos. Por ejemplo, con RAID-1, si uno de los discos se daña, el otro se hace cargo. Algo similar ocurre con RAID-5: si uno de los discos falla, los otros discos pueden trabajar juntos para generar los datos que se almacenan en el disco que funciona mal.

Si se tiene una verdadera tarjeta de RAID por hardware, usando RAID en Linux (o cualquier otro sistema operativo para el caso) este no requiere ninguna entrada en absoluto: el sistema operativo no maneja nada relacionado con RAID. Solo ve el resultado, la tarjeta RAID por hardware se encarga de todo lo demás.

Las tarjetas RAID pseudo-hardware ofrecen diversos servicios relacionados con RAID —pero estas si requieren algunas (o muchas) entrada del sistema operativo—. Por tanto, tales tarjetas requieren un controlador que funcione bien y, tal vez, incluso algunas herramientas. Aunque no son tan transparentes como las verdaderas tarjetas RAID por hardware, todavía aventajan a RAID por software.

El RAID por software permite que los usuarios se benefician de la mayor parte de la funcionalidad RAID sin requerir ningún hardware específico. En cambio, este necesita que el sistema operativo maneje todas las tareas relacionadas con RAID, lo que hace que su funcionamiento nos exija un poco de dedicación.

La información sobre el uso del RAID por software se tratará más adelante en este manual.

Gestionar volúmenes lógicos

A diferencia de RAID, que se utiliza preferentemente para la redundancia de datos, LVM permite al usuario maximizar la flexibilidad de su almacenamiento. Básicamente LVM (en realidad, LVM2) debe ser visto como una capa abstracta entre el almacenamiento físico (los discos) y la vista lógica (el sistema de ficheros).

Con LVM, se crean volúmenes lógicos (particiones) que alojan los sistemas de ficheros. Uno o más volúmenes lógicos se almacenan en un grupo de volumen que no es más que una colección de volúmenes físicos (particiones). Un volumen físico es un disco completo o una partición, controlado por LVM.

El software LVM ofrece servicios en la parte superior de esta capa intermedia. Por ejemplo, se pueden extender datos en varias particiones (como en RAID-Lineal o RAID-0), o tener varias particiones lógicas en un solo disco físico. Pero eso no es todo. LVM permite añadir (o eliminar) volúmenes físicos de un grupo de volúmenes sin afectar a los volúmenes lógicos (a menos que, por supuesto, los volúmenes lógicos requieran más espacio que el que puede ofrecer el grupo de volúmenes), mover datos de un disco a otro sin necesidad de ningún procedimiento manual de copiado o tomar una instantánea de un sistema de ficheros sin realmente tener que hacer una copia completa del sistema.

Estas (y más) características hacen de LVM una poderosa herramienta utilizada por muchos administradores de sistemas.

La información sobre LVM2 se tratará más adelante en este manual.

Conocer los dispositivos

Antes de que pueda empezar a crear las particiones necesarias, es preciso asegurarse de que el sistema operativo Linux puede funcionar con su hardware. Si el CD de instalación, que ha utilizado para el arranque, no detectó automáticamente el hardware, tendrá que cargar el soporte correspondiente de manera manual.

Aunque podemos empezar por ilustrar cómo el núcleo de Linux trata los discos (como /dev/hd* para IDE, /dev/sd* para SCSI y Serial ATA, ... ) y la lógica que hay detrás de esto, vamos a dejar esto para otro documento (o tal vez un capítulo posterior :) y, de momento, comentaremos cómo descubrir qué tipo de discos tiene.

Si sus discos son SCSI o Serial ATA (aunque algunos discos SATA se tratan como si fuesen discos IDE nativos, la mayoría de ellos están utilizando un controlador similar a SCSI), ejecute dmesg y filtre cualquier presencia de 'disk'. Los usuarios de discos IDE deben filtrar las salidas 'ide' y 'hd':

Para SCSI o SATA:

root #dmesg | grep -i disk
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

Su sistema Linux puede decirle qué controladoras tiene y qué chipset utiliza. Esta información es vital si se necesita cargar controladores adicionales. La combinación de la herramienta lspci y del filtro grep han demostrado ser bastante eficientes.

Por ejemplo, si se tiene una controladora IDE que no ha sido cargada por defecto, pruebe el filtrado para 'ide'. Acciones similares se deben realizar para Serial ATA ('sata') o SCSI ('scsi'):

root #lspci | grep -iE '(ide|sata)'
0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) 
  IDE Controller (rev 04)
0000:00:1f.2 Class 0106: Intel Corporation 82801FBM (ICH6M) SATA Controller 
  (rev 04)

En base a esta información, puede intentar la búsqueda de los controladores de apoyo adecuados. Un rápido lanzamiento de grep sobre el contenido del directorio /lib/modules (que almacena todos los módulos adicionales) nos lo dirá:

root #find /lib/modules | grep -iE '(82801|ich6)'

Si ha encontrado un módulo del núcleo que coincida, cárguelo en memoria y descubra qué tipo de discos tiene:

root #modprobe elnombredelmódulodelkérnel

Particionar los dispositivos

Arquitecturas específicas

El particionamiento depende de la arquitectura, de modo que las particiones van a ser generalmente etiquetadas para alguna función. Por tanto, el tipo de una distribución es un ajuste muy importante. Hay dos tipos importantes, que son:

  • 82 (Linux Swap) - La partición contiene información de intercambio.
  • 83 (Linux) - La partición contiene un sistema de ficheros de Linux.

La estructura de la partición es también dependiente de la arquitectura. Algunas arquitecturas solo permiten una pocas particiones (a veces también llamadas slices) disponibles, otras ofrecen alguna solución rara para superar la limitación de particiones, causando confusión en el esquema de numeración de las particiones. Hay, incluso, arquitecturas donde ciertos números de particiones están reservados para un uso específico.

Se encontrará información para el particionado, según su arquitectura específica, en el primer apéndice de este manual, junto con un esquema de particionado de ejemplo que puede utilizar para empezar con Gentoo Linux.

Crear las particiones, ¡ahora!

Lea la información de particionado para su arquitectura ahora y cree las particiones que utilizará para almacenar Gentoo Linux.

Los sistemas de ficheros

Descripción

Las particiones por sí solas no son suficiente para almacenar datos (a menos que la partición tenga un propósito específico, como servir de acceso raw (en crudo) para las bases de datos). Es necesario aplicar algún tipo de estructura a la partición para que Linux sepa dónde se almacenan los ficheros y directorios, los permisos que se establecen para los ficheros, qué atributos de seguridad se les aplica, etc.

Esta es la tarea del sistema de ficheros. Un sistema de ficheros es una forma estándar de almacenar y recuperar información desde una partición. Dicta donde se almacenan los datos de los ficheros y cómo obtener acceso a los metadatos de los ficheros (todo sobre un fichero, excepto el contenido, como el nombre, la fecha de creación, el propietario, ...).

Linux da soporta a un conjunto de sistema de ficheros bastante amplio, pero no todos ellos son lo suficientemente funcionales como para almacenar ficheros de Linux. Por ejemplo, la familia FAT (FAT12 para disquetes, FAT16 para particiones pequeñas y FAT32 para los más grandes) no conoce el concepto de permisos, mientras que la familia NTFS (todas las docenas de versiones que Microsoft ha publicado hasta el momento) es demasiado compleja (en parte debido a su naturaleza de código cerrado) y no totalmente compatible.

Vamos a describir los sistemas de ficheros más conocidos que se pueden utilizar para mantener su sistema operativo Linux, junto con alguna información sobre las herramientas asociadas con el sistema de ficheros.

Extended 3

Extended 3 es la versión journaled de Extended 2, el antiguo sistema de ficheros (pero probado) que es el primer sistema de ficheros de Linux verdadero que se haya desarrollado para Linux (antes de ext2, se utilizó el sistema de ficheros Minix —pero eso fue hace mucho, mucho tiempo—). Extended 3 es actualmente el sistema de ficheros más utilizado también.

Como «sistema de ficheros» por journaled, ext3 puede asegurarse de que todo el sistema de ficheros permanezca consistente en todo momento. En otras palabras, si el sistema sufre una caida (por ejemplo debido a un corte de energía), el sistema de ficheros nunca contendrá datos ilegibles —si tuviera datos escritos en el disco, o bien los datos antiguos estarían ahí, o bien los nuevos datos, pero no una parte de la escritura—.

Se puede elegir entre un sistema de ficheros sin journaling (que básicamente significa que el sistema de ficheros debe ser visto como un Extended 2), con journaling de metadatos (donde solo los metadatos son consistente en el tiempo), el cual, a su vez, puede ser writeback (primero, escritura de metadatos, después los datos) y ordered (primero, escritura de datos, a continuación, los metadatos); y, por último, con journaling full (completo). El journaling de metadatos ordered es el valor predeterminado.

Extended 3 soporta listas de control de acceso y, por lo tanto, es un sistema de ficheros candidato para mejorar la seguridad de los kérnels de Linux, que requieren que ACL esté disponible para el sistema de ficheros.

Para escribir un sistema de ficheros ext3 en un dispositivo, utilice la herramienta mke2fs con la opción -j (para journaling):

root #mke2fs -j /dev/hda3

La orden mke2fs tiene algunas opciones interesantes, como:

  • La escritura de un sistema de ficheros en el disco se realiza bastante rápida. Si desea comprobar los posibles bloques dañados durante la escritura del sistema de ficheros en el dispositivo, añada la opción -c. Si se especifica esta opción dos veces, se realizará una prueba de lectura-escritura completa, en lugar de una prueba de solo lectura.
  • Para agilizar las búsquedas en directorios grandes, puede activar la indexación de directorios mediante la adición de -O dir_index.
  • De los sistemas de ficheros grandes se puede liberar más espacio añadiendo la opción -O sparse_super. Esto disminuirá el porcentaje de bloques destinados a realizar copias de seguridad para los metadatos de ficheros.

El sistema de ficheros swap

Aunque no se puede «utilizar» el espacio de intercambio directamente, este hace uso de un sistema de ficheros específico para almacenar las páginas de memoria. Para crear un sistema de ficheros de intercambio en la partición swap, use mkswap:

root #mkswap /dev/hda2

A diferencia de las otras herramientas de creación de sistema de ficheros, mkswap apenas tiene opciones adicionales para fines de ajuste.

Crear los sistemas de ficheros

Cree los sistemas de ficheros en sus particiones en este paso y no se olvide de crear el sistema de ficheros de intercambio también.

Preparar un entorno mínimo para la instalación de Gentoo

Montar las particiones

El siguiente paso es montar los sistemas de ficheros según la jerarquía del sistema de ficheros de Linux, para que pueda utilizarlos. Como hemos dicho en el apartado anterior, el montaje asocia el sistema de ficheros a la jerarquía actual en una ubicación especificada.

En el CD de instalación de Gentoo, un directorio /mnt/gentoo está disponible para montar el sistema de ficheros root. Supongamos que el sistema de ficheros está en la partición /dev/hda3, entonces la orden mount sería::

root #mount /dev/hda3 /mnt/gentoo

También necesitará montar los demás sistemas de ficheros en el lugar correcto. Debido a que su sistema de ficheros root no contiene ningún directorio, tendrá que crearlos por tanto. Por ejemplo, si tiene sistemas de ficheros separados /boot (en /dev/hda1) y /usr (en /dev/hda4), escriba:

root #mkdir /mnt/gentoo/boot /mnt/gentoo/usr
root #mount /dev/hda4 /mnt/gentoo/usr
root #mount /dev/hda1 /mnt/gentoo/boot

Y también tendrá que activar la partición swap. Esto se logra mediante la orden swapon  :

root #swapon /dev/hda2

Obtener el fichero comprimido stage

Un fichero comprimido stage contiene el entorno mínimo de Gentoo. Puede descargar uno de uno de nuestros servidores de réplicas. Se almacenan en el directorio de la versión correspondiente, con el nombre releases/<arquitectura>/autobuilds/current-stage3-<arquitectura>/.

Un tarball es un fichero, normalmente comprimido utilizando codificación Lempel-Ziv (LZ77 - gzip), o compresión Burrows-Wheeler con codificación Huffman (bzip2). Descomprimido, obtendrá un solo fichero (un fichero tar2) que contendrá todos los ficheros presentes en el tarball, perfectamente anexados uno después de otro.

Para descargar un fichero comprimido stage, primero muévase al directorio /mnt/gentoo. Esto es necesario para que, una vez que comience la descarga del fichero, este se almacene en el disco y no en la memoria (el CD de instalación de Gentoo crea un «disco» virtual en la memoria para que pueda utilizar el CD sin necesidad de tener ningún sistema Linux preinstalado).

root #cd /mnt/gentoo

A continuación, descomprima el fichero tarball en el directorio /mnt/gentoo. Utilice la herramienta tar, con xjpf como opciones (de descompresión), y el fichero tarball como argumento (el objeto de la descompresión):

  • extraer los ficheros del fichero comprimido,
  • utilizar bunzip2 para descomprimir el fichero (j debido a la escasez de opciones disponibles :),
  • preservar los permisos que estaban guardados en el fichero tarball,
  • utilizar el siguiente fichero como el fichero a descomprimir.
root #tar xjpf nombredelfichero

Si el stage se almacena en el CD, basta con utilizar la ruta de acceso al fichero para el argumento <nombredelfichero>.

Nota
2: El nombre de tar proviene de Tape ARchive. La herramienta tar fue (y sigue siendo) comúnmente utilizada para realizar copias de seguridad de ficheros en grabaciones a las que solo se tiene acceso lineal (a diferencia de los medios digitales, donde se puede saltar rápidamente de un lugar a otro). Debido a esta limitación, todos los ficheros están alineados unos tras otro con una tabla de contenidos almacenada al comienzo de la grabación. La herramienta tar sigue siendo una herramienta muy popular para la creación de ficheros comprimidos.

Extraer una instantánea de Portage

Tenemos que obtener y extraer otro tarball, a saber, una instantánea de Portage. Portage es el sistema de gestión de paquetes que utiliza Gentoo. La información del paquete en sí se almacena en lo que llamamos el árbol de Portage. Una instantánea de Portage es un árbol de Portage tomada en un momento determinado.

Siempre se puede descargar una instantánea a través de Internet. Vaya a uno de nuestros repositorios de réplicas y localice la imagen más reciente de Portage en el directorio snapshots/.

No necesitamos ninguna información sobre los permisos específicos de la instantánea, por lo que la orden tar solo requiere xjf como opciones. Sin embargo, la instantánea debe descomprimirse en el interior de /mnt/gentoo/usr. Podríamos hacer lo mismo que hicimos con el stage y movernos primero al directorio /mnt/gentoo/usr antes de ejecutar la orden de extracción, pero también se puede usar -C <ubicación> (con C mayúscula) para informar a tar que la ubicación /mnt/gentoo/usr es el directorio de destino de la descompresión:

root #tar xjf <instantánea> -C /mnt/gentoo/usr

Crear el entorno mínimo de Gentoo

Como ya habrán adivinado, estamos tratando que /mnt/gentoo contenga un entorno Linux completamente funcional. Para conseguir esto, tenemos que montar un pseudo sistema de ficheros específico llamado proc en /mnt/gentoo/proc. Este no es un sistema de ficheros almacenado en un disco, sino más bien una interfaz para el núcleo de Linux que muestra la información del núcleo como ficheros normales. Esto le permite al núcleo (y al sistema) recuperar la información con solo leer los ficheros, en lugar de requerir herramientas específicas.

root #mount -t proc none /mnt/gentoo/proc

Para poder utilizar la conexión de red que se ha definido previamente (si fuera el caso), tiene que copiar el fichero /etc/resolv.conf presente al nuevo entorno Linux:

root #cp /etc/resolv.conf /mnt/gentoo/etc

Cambiar root desde el soporte de instalación al nuevo entorno

El paso final ahora es cambiar la raíz del sistema de ficheros desde el proporcionado por el CD al otro que acaba de configurar, es decir, /mnt/gentoo. Utilizando la herramienta chroot, su sesión de terminal no verá nada fuera de /mnt/gentoo, a menos que salga del entorno chroot en sí. Dado que necesitaremos una shell para navergar, ejecutaremos /bin/bash (el Bourn Again SHell) justo a continuación de ordenar cambiar root:

root #chroot /mnt/gentoo /bin/bash

Compilar el sistema

Versión original inglesa: Complete Handbook/Building the system

Configurar el entorno de Gentoo

El fichero de configuración de compilación

Como Gentoo es ante todo una distribución que compila el software, se requieren ciertas directivas de configuración adicionales con respecto al resto de distribuciones. El primero y mas importante fichero de configuración es /etc/portage/make.conf (recordemos que ahora estamos en el entorno de Gentoo enjaulado con chroot —fuera del mismo sería /mnt/gentoo/etc/portage/make.conf—). Abra el fichero con nano, un editor fácil de utilizar. Añadimos la opción -w para apagar el ajuste de texto, ya que de otro modo podríamos dañar accidentalmente la configuración del propio fichero.

root #nano -w /etc/portage/make.conf

Dentro de este fichero de configuración se pueden definir varias directivas de configuración que afectarán el comportamiento de Portage o al proceso de compilación del software. Solo vamos a discutir algunas directivas aquí —existen más, por supuesto, pero no son tan importantes en este comienzo del proceso de instalación—.

Cada directiva es una variable con un contenido específico. Las variables se utilizan a menudo en Linux (y esto es aún más cierto cuando hablamos de Gentoo). Para establecer una determinada variable, se define su nombre seguido de un signo igual y a continuación el contenido de la variable.

CODE
MiVARIABLE="valor de la variable"

Directivas del compilador

Las opciones del compilador

Las primeras directivas que vamos a discutir son los parámetros (flags, en la terminología de Gentoo) del compilador. Un compilador es una herramienta que construye código ejecutable a partir del código fuente, y una de las ventajas de usar Gentoo es que el usuario puede definir cómo debe comportarse el compilador. Más concretamente, se le puede decir al compilador que utilice determinadas optimizaciones en el sistema. Aunque un compilador puede admitir muchas más opciones que las simples opciones de optimización, la mayoría de los usuarios de Gentoo solo utilizan las opciones de optimización.

La colección de compiladores GNU, la cadena de herramientas del compilador utilizada por la mayoría de las arquitecturas, los soportes con más de un centenar de opciones de optimización. Algunas de ello as son interesantes, otras apenas se utilizan. Algunas de ellas son inofensivas, otras bastante agresivas. Debemos advertir que usar cualquier parámetro de optimización, más alla de los recomendados por Gentoo, no tiene soporte.

CFLAGS y CXXFLAGS

Las directivas CFLAGS y CXXFLAGS son pasadas inmediatamente a los compiladores C y C++, respectivamente, como argumentos de la línea de órdenes. A menudo se utilizan para informar al compilador acerca de la arquitectura de destino y de los ajustes de optimización.

Normalmente, CXXFLAGS tendrá asignado el mismo valor como la variable CFLAGS :

FILE /etc/portage/make.confConfigurar la variable CXXFLAGS
CXXFLAGS="${CFLAGS}"

La colección de compiladores GNU tiene muchas posibles directivas. La primera directiva que la mayoría de los usuarios querrán establecer es el tipo de CPU de destino. Esto es configurable con el ajuste -march=<TIPO-CPU>. Para la mayoría de la gente, descubrir qué TIPO-CPU tiene es todo un reto y, de hecho, no es posible documentar la que se debe usar. Lo que podemos decir es que es seguro indicar un tipo más antiguo, mientras que indicar un tipo más reciente puede causar malformación del software en su sistema.

Para obtener una lista de ajustes válidos para -march=, consulte el manual de GCC o las páginas de información GCC:

root #info gcc

Seleccione GCC Command Options, Submodel Options, y escoja su arquitectura.

Una segunda configuración del compilador usada a menudo es el ajuste de optimización. Consiste en añadir -O, seguido de un número, que indica al compilador que optimice el código en varios grados. Gentoo recomienda -O2 (es decir, «O» para la «optimización», no «0» como en «007»). El valor más alto posible es -O3 —si quiere ajustes de optimización más fuertes necesitará añadirlos a la variable—.

Si no desea optimizar el código por la velocidad, pero si por el tamaño, use -Os.

La tercera opción que añadimos es -pipe que le dice a GCC que puede utilizar tuberías para los procesos, en lugar de ficheros temporales, para la comunicación entre las diferentes etapas de compilación. Esto mejora considerablemente el rendimiento de compilación en sistemas con memoria suficiente.

CHOST

La variable CHOST es un identificador para el equipo de destino, para el que el compilador debe compilar el software. Es vital que esta variable identifique su sistema, pero es aún más vital que no edite esta variable si no está realizando una instalación bootstrap. En caso de alterar esta variable, cualquier recompilación de la cadena de herramientas hará que la cadena de herramientas quede en un estado intermedio (¿a medio acabar?), posiblemente produciendo bibliotecas que funcionan mal.

Así que sus ajustes serían...

Al final de este manual encontrará capítulos específicos sobre la arquitectura. Para cada arquitectura, hay ejemplos precisos (y válidos) para diversos sistemas, que se enumeran de manera que pueda escoger una, si la explicación anterior no es suficiente.

Directivas de Gentoo

USE

La variable USE es probablemente el ajuste más importante de todos en /etc/portage/make.conf. Con esta variable se define a qué fines sirve su sistema. Cada indicador establecido en la variable USE, activa o desactiva el soporte específico para uno o más paquetes.

La idea es bastante simple: si el sistema tiene un lector de DVD, es previsible que se establezca dvd como uno de los ajuste USE para añadir soporte para los lectores de DVD. Los DVD regrabables requerirán el ajuste dvdr. Del mismo modo, si el sistema está pensado para ser la sede de un servidor DB2 de IBM (o cualquier aplicación que va a utilizar para conectarse a un servidor de este tipo), probablemente querrá db2 como ajuste USE.

Una lista de todos los posibles parámetros USE se puede encontrar en /usr/portage/profiles/use.desc. Este es un fichero de texto plano que también se reproduce en línea en el sitio web de Gentoo. Pero empezar por la exploración de tantos parámetros USE a través de esta lista puede ser engorroso sin que su descripción consiga aclararnos mucho (decimos sin, porque seguiremos teniendo una idea vaga sobre el tema, debido a que el parámetro USE o bien se utiliza para diferentes aplicaciones con fines ligeramente distintos, o bien porque el tema en sí es demasiado técnico).

Para resolver este problema, Gentoo proporciona un ajuste USE por defecto. Para saber cuál es la configuración por defecto, ejecute emerge --info y filtre la salida de la línea que empiece con USE:

root #emerge --info | grep -E ^USE

Cualquier ajuste que realice en /etc/portage/make.conf será añadido al parámetro USE —no sustituya la configuración por defecto, sino, por el contrario, acéptela y extiéndala—. Por lo tanto, es necesario colocar un guion delante de los ajustes USE que no desee. Por ejemplo, el ajuste arts de USE (que activa el soporte para el demonio de sonido aRts) puede estar configurado de forma predeterminada. Para anular la selección, utilice -arts. Como ejemplo, seleccionaremos soporte para el Enlightened Sound Daemon y desactivaremos el soporte para aRts:

FILE /etc/portage/make.confConfigurar variable USE
USE="-arts esd"

También hay parámetros USE que son específicos para un solo paquete. Tales parámetros USE se llaman local USE flags. Aunque puede establecer los parámetros USE en /etc/portage/make.conf, es más diligente activar o desactivar los parámetros USE en función de cada paquete. Nos abstenemos de explicar cómo hacer esto aquí —no es necesario ajustar los parámetros USE durante la instalación, Portage es lo suficientemente inteligente como para manejar los cambios de los parámetros USE después de una instalación—.

Antes de continuar con la siguiente configuración hay cuatro observaciones que queremos hacer con respecto a los parámetros USE:

  1. Cambiar el parámetro USE en esta etapa de la instalación podría dar como resultado descargar herramientas de Portage no deseadas para instalar en esta estapa todavía. Un problema que ocurre con frecuencia es cuando una combinación de parámetros USE desencadena la instalación de kde-base/kdebase, que es una compilación enorme. Debe considerar la posibilidad de modificar los parámetros USE en cualquier momento posterior, y pedirle a Portage que se limite a recompilar las herramientas que se vean afectadas por el cambio del parámetro USE en cuestión.
  2. Los ajustes USE permiten a Gentoo tomar decisiones con respecto a soportes y características opcionales. Si alguna de las características o soportes no es opcional, sino obligatoria o inherente al paquete, se ignoran los parámetros USE respectivos. Un buen ejemplo es el USE qt. Si un paquete puede (pero no tiene por qué) apoyar la biblioteca Qt Graphical Widget, Portage utilizará el USE qt para decidir si compilar o no el soporte para Qt. En cambio, si el paquete requiere Qt para funcionar, Portage va a instalar Qt, independientemente de la presencia o no del parámetro USE «qt».
  3. Algunos paquetes, si se instalan, anulan la configuración de los parámetros USE por defecto (no el que se haya especificado en /etc/portage/make.conf). Por ejemplo, el USE tetex no se establece por defecto, pero si se instala la distribución TeX, Gentoo habilitará automáticamente el USE tetex para que otros programas ahora se puedan compilar con apoyo TeX, si ellos pueden manejarlo.
  4. Si desea establecer un listado personalizado de ajustes USE independientemente de los parámetros USE por defecto, puede comenzar con la desactivación de todos los parámetros USE y luego listar los que desea activar. Esto se puede lograr usando USE="- * flag1 flag2 ...".

El repositorio Portage de Gentoo

Cualquier información de paquetes de Gentoo se almacena dentro de un ebuild. Este es un pequeño fichero de texto que contiene algunos metadatos sobre el paquete (como la descripción, página de inicio, ubicación de las fuentes, ...) y las instrucciones para Gentoo sobre cómo compilar e implementar el paquete en su sistema con éxito.

El conjunto completo de todos los ebuilds soportados se almacena en el interior del árbol de Portage de Gentoo, también conocido como el Gentoo Portage Repository. Encontrará una instantánea de este repositorio en /usr/portage donde todos los ebuilds se clasifican por función y nombre. El Portage de Gentoo, herramienta de gestión de paquetes de Gentoo, toma decisiones tales como «qué paquetes deben ser actualizados» o «qué software está disponible para su instalación», basada en el contenido del repositorio de la instantánea presente en su disco.

Por lo tanto, es muy importante que actualice regularmente la instantánea de su disco con el contenido más reciente del repositorio Portage de Gentoo liberado por el desarrolladores de Gentoo. Por defecto, el Portage de Gentoo elige un repositorio de réplica al azar 1, pero es más eficiente usar un repositorio de réplica que está próximo a su entorno o sea más rápido. La variable SYNC es donde se coloca la ubicación del repositorio Portage de Gentoo desde la cual desea tomar una instantánea.

Advertencia
La variable SYNC está en desuso en las versiones actuales de sys-apps/portage. Ver la sección
user $man 5 portage
sobre «repos.conf» para la documentación actualizada acerca de cómo configurar el URI del repositorio.

Debido a que no se puede saber qué repositorios de réplicas están disponibles, Gentoo proporciona un esquema de nombres fácil de recordar para los repositorios de réplicas. El ajuste por defecto recogerá un repositorio de réplicas aleatorio. El ajuste basado en el país recogerá un repositorio de réplicas aleatorio, pero solo de un grupo de repositorios de réplicas dentro de ese país. La sintaxis del repositorio de réplicas único siempre recogerá el repositorio de réplicas que defina.

FILE /etc/portage/make.confPosible configuración de sincronización
## (Por defecto)
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
## (Basado en el país)
SYNC="rsync://rsync.${CÓDIGODELPAÍS}.gentoo.org/gentoo-portage"
## (Repositorio de réplica único)
SYNC="rsync://rsync#.${CÓDIGODELPAÍS}.gentoo.org/gentoo-portage"

Un ajuste de ejemplo de /etc/portage/make.conf podría ser:

FILE /etc/portage/make.confEjemplo de configuración SYNC
SYNC="rsync://rsync3.us.gentoo.org/gentoo-portage"
Nota
1 Un repositorio de réplicas es un directorio en un servidor en Internet donde se replica el contenido exacto del directorio de otro servidor. La idea detrás de los repositorios de réplicas es disminuir la tensión puesta en un solo servidor, permitiendo a los clientes obtener los datos de diversas fuentes.

Localizar el código fuente de Gentoo

La mayoría de los ebuilds de Gentoo informan acerca de la ubicación original del código fuente. Esta podría ser un conjunto de repositorios de réplicas (como con los numerosos proyectos alojados de sourceforge) o una URL fija. Algunos ebuilds no pueden señalar a este lugar por cualquier razón. Si este es el caso, el código fuente se deriva a los repositorios de réplicas de Gentoo en una ubicación específica llamada directorio distfiles/.

La variable GENTOO_MIRRORS declara qué repositorios de réplica de Portage de Gentoo deben revisarse para encontrar el código fuente necesario. Cada repositorio de réplica declarado en esta variable debería apuntar a la ubicación de los antecedentes del repositorio de réplica (es decir, no al directorio distfiles/, sino a un nivel superior). Una lista de posibles repositorios de réplica se puede encontrar online.

Compilar el núcleo de Linux

Versión original inglesa: Complete Handbook/Building the Linux kernel

Procedimiento de configuración del núcleo

Introducción

El núcleo de Linux es el corazón del sistema operativo de Linux. Se ocupa de la gestión de recursos (procesos, memoria, ...), del soporte del hardware, de las redes, de los sistemas de ficheros, ... y, por lo tanto, es una de las partes más vitales del sistema.

Gentoo ofrece diversas fuentes del núcleo. Cada fuente se basa en el fuente del núcleo vanilla (el desarrollado por los principales desarrolladores del núcleo) y le añade características adicionales, soporte de hardware, funciones experimentales, etc. Puede escoger cualquier núcleo fuente que desee para su sistema (siempre y cuando su perfil lo permita, por supuesto).

Cuando se instala el código fuente en su sistema, todavía tiene que configurar y compilar el núcleo antes de poder utilizarlo. La configuración del núcleo es la parte más complicada, ya que un error puede conducir a un núcleo inutilizable, pero si trata de compilar demasiado puede conducir a un código irrelevante en su núcleo que nunca utilizará, a tomar más espacio e, incluso, a causar problemas más adelante cuando haya un error del núcleo en dicho código.

Por suerte, Gentoo ofrece una herramienta llamada genkernel que configura, compila e instala un núcleo automáticamente. Esto podría ser de interés para el usuario que no tiene idea acerca de la configuración núcleo, que desea una configuración del núcleo básico para todos sus sistemas, o que necesita un núcleo que puede arregrárselas con la mayoría del hardware.

Después de configurar el núcleo, el mismo es compilado en una imagen que se carga en la memoria de su ordenador cuando arranca el sistema.

Escoger una fuente del núcleo

Gentoo mantiene una lista de paquetes del núcleo de Gentoo que contiene una pequeña introducción sobre el árbol del núcleo. Puede hacer su elección desde esta guía, aunque puede muy bien elegir uno bastante genérico en este punto de la instalación y utilizar un núcleo diferente más adelante —el núcleo es completamente intercambiable en un entorno Linux, de modo que no tiene que decidir sobre el núcleo adecuado aquí y ahora—.

Por defecto, las fuentes del núcleo genérico son vanilla-sources. Este árbol del núcleo es el liberado por los desarrolladores del núcleo de Linux, sin modificar. Gentoo ofrece una versión parcheada y es llamada gentoo-sources. El uso de estas fuentes tiene la ventaja de que Gentoo puede liberar un nuevo árbol del núcleo siempre que lo considere necesario.

Si ha hecho su elección, instale las fuentes del núcleo usando emerge. Solo tiene que añadir el nombre de la fuente del núcleo como argumento para emerge y emerge descargará y descomprimirá las fuentes del núcleo en su sistema:

root #emerge <kérnelsources>

Compilar el núcleo

Proceso de compilación automatizado

Si no desea atender todos los problemas que rodean la instalación del núcleo, puede instalar genkernel y, luego, genkernel configurará, compilará e instalará el núcleo de Linux por usted. Este proceso es bastante simple:

root #emerge genkernel
root #genkernel all

Sin embargo, genkernel puede hacer mucho más que esto. Con esta herramienta, puede mantener su configuración personal del núcleo y dejar que la herramienta recompile las versiones más recientes del núcleo con su configuración. Puede activar características específicas (como bootsplash, lvm2, evms2, raid, ...) y ajustar la configuración del compilador usada durante el proceso de compilación del núcleo (¡que difiere de la configuración colocada en make.conf!).

Para obtener más información sobre genkernel , lea la guía de genkernel .

Proceso de compilación manual

El proceso de compilación manual consta de tres pasos:

  • configurar el núcleo,
  • compilar del núcleo, e
  • instalar el núcleo

Para configurar el núcleo vaya a /usr/src/linux y ejecute make menuconfig. Obtendrá una interfaz basada en diálogo desde la que puede configurar su núcleo.

La configuración de un núcleo no es difícil si sabe qué hardware tiene y las características que desea —pero recuerde que, si todo esto es nuevo para usted, averiguar las características que quiere o necesita puede llevarle mucho tiempo—.

Los cuadros de diálogo de configuración del núcleo tienen una buena Ayuda incorporada que, incluso, incluye la función de búsqueda (muy útil si quiere buscar la ubicación de esa tarjeta de red que tiene, pero parece que no puede colocar en la estructura de su configuración).

No es nuestra intención describir el proceso de configuración del núcleo —hay varias guías sobre este tema en Internet y, si realmente no puede configurar correctamente un núcleo, utilice genkernel de momento—.

Cuando haya terminado con la parte de la configuración, compile el núcleo ejecutando make (pero esperaremos un poco más, vamos a hacer esto junto con el siguiente paso). make es una herramienta que lee un script llamado Makefile en el directorio del mismo nombre. Los Makefiles son muy poderosos cuando se utiliza para la creación de software, ya que son capaces por sí solos de (re)compilar aquellas partes que necesitan ser (re)recompiladas, en lugar de compilar todo el software una y otra vez de nuevo.

Para finalizar el proceso de compilación del núcleo, necesita copiar la imagen del núcleo resultante a la partición de arranque e instalar los módulos del núcleo que ha seleccionado. La ubicación de la imagen del núcleo depende de la arquitectura que está utilizando. La siguiente tabla ofrece una visión general de las posibles imágenes del núcleo con las órdenes necesarias para compilar e instalar el núcleo:

Arquitectura Ubicación de la imagen Orden de compilación
alpha arch/alpha/boot/vmlinux.gz
root #make && make modules_install && make boot
amd64 arch/x86_64/boot/bzImage
root #make && make modules_install
hppa vmlinux
root #make && make modules_install
mips vmlinux
root #make && make modules_install
ppc Apple/IBM vmlinux
root #make && make modules_install
ppc Pegasos arch/ppc/boot/images/zImage.chrp
root #make && make modules_install
ppc64 vmlinux
root #make && make modules_install
sparc32 arch/sparc/boot/image
root #make && make modules_install
sparc64 arch/sparc64/boot/image
root #make && make image modules_install
x86 arch/x86/boot/bzImage
root #make && make modules_install

La orden de compilación se divide en dos partes: la instrucciones make, que hemos estudiado antes; y una instrucción específica para acabar con algunos pasos adicionales. La separación se hace con la cadena && . Este es un operador específico de la shell, que le dice al sistema que continúe con la siguiente orden si la anterior tuvo éxito. Un operador similar es ||, que indica al sistema que ejecute la siguiente orden si la anterior falla.

Ahora, ejecute la orden de compilación para crear la imagen del núcleo. Cuando el proceso haya terminado, hay que copiar el fichero a /boot. Es aconsejable dar al fichero de imagen del núcleo un buen nombre en /boot para que pueda distinguir un núcleo de otro. Un esquema de nombres usado comúnmente es núcleo-<versión>. El siguiente ejemplo copia una imagen del núcleo x86 a /boot/núcleo-3.4.2-gentoo-r1:

root #cp arch/i386/boot/bzImage /boot/núcleo-3.4.2-gentoo-r1

Configurar el proceso de arranque

Versión original inglesa: Complete Handbook/Configuring the boot process

Cargar el núcleo en la memoria

Introducción a los gestores de arranque

Cuando el sistema se enciende, primero realiza algunas comprobaciones con respecto a sus propios componentes. Cuando todas las pruebas tienen éxito, el sistema carga en la memoria la imagen del núcleo que se ha compilado previamente. Esta acción se lleva a cabo por el gestor de arranque.

Dado que la carga de ficheros en la memoria es muy específico de la arquitectura, debe consultar la información específica para su arquitectura ahora para averiguar cómo instalar y configurar un gestor de arranque.

Configurar el núcleo

Parámetros del núcleo

Dentro del fichero de configuración del gestor de arranque puede introducir instrucciones específicas para el núcleo de Linux. Estos parámetros le permiten ajustar y cambiar el comportamiento del núcleo en el momento del arranque.

Parámetros importantes

Ubicación del sistema de ficheros root

El primer parámetro que vamos a discutir es el parámetro root. Este le dice al núcleo de Linux, donde se encuentra el sistema de ficheros raíz del sistema Linux. Realmente debe proporcionar este parámetro de localización del núcleo de Linux, de otra manera este no sabrá dónde está la instalación de Linux.

CODE
## (El sistema de ficheros raíz en este ejemplo está en /dev/sda3)
root=/dev/sda3

Sin embargo , solo se puede especificar el sistema de ficheros root si está seguro de que la imagen del núcleo (no mediante módulos separados, sino en realidad integrado en la imagen del núcleo) tiene soporte para:

  • la controladora del dispositivo que gobierna su disco (por ejemplo, la controladora SATA si utiliza discos SATA), y
  • el sistema de ficheros que utiliza la partición (por ejemplo, el soporte para ext3)

Si este no es el caso, entonces es probable que haya hecho una imagen RAM inicial que permite al núcleo de Linux cargar el módulo apropiado en la memoria antes de continuar con el arranque de Gentoo. Los usuarios que han usado la herramienta genkernel, de hecho han creado dicho fichero initrd, quizás sin haberlo advertido.

Para utilizar un fichero de este tipo initrd, es necesario especificar /dev/ram0 como el sistema de ficheros root y el sistema de ficheros root real con el parámetro1 real_root=. También es posible informar al núcleo sobre la cantidad de memoria que desea reservar para el disco RAM.

También es necesario decirle al gestor de arranque donde está el fichero initrd. Esto es específico del gestor de arranque, que no mencionaremos aquí —consultar la información de su gestor de arranque para obtener más información—.

He aquí un ejemplo:

CODE
root=/dev/ram0 ramdisk=8192 real_root=/dev/sda3

El programa de inicio

Cuando el núcleo ha terminado sus propios procedimientos y montado el sistema de ficheros root, se entrega el control del sistema al proceso init. Este proceso se encarga entonces del resto de la secuencia de arranque. Por defecto, el núcleo busca esta herramienta en /sbin/init. Sin embargo, puede definirse otro programa inicial, si se quiere, utilizando el parámetro init=.

Por ejemplo, para obtener una shell de Unix inmediatamente, utilice init=/bin/sh. Esto se utiliza a menudo para que pueda volver a montar sus particiones y hacer las correcciones adecuadas que impiden que el sistema arranque con regularidad (o cuando se le olvidó su contraseña de root).

Modalidad de usuario único

Para informar al sistema que arranque en el modo de usuario único (que es el nivel de ejecución single) basta con añadir una S.

Nota
1 El parámetro real_root no es realmente un parámetro del núcleo, pero está destinado a ser un script en el fichero initrd. Sin embargo, el parámetro se utiliza al igual que los parámetros del núcleo, que es por lo que lo listamos aquí.

Parámetros relacionados con el hardware

Soporte para ACPI

No todos los dispositivos de hardware son conformes a la especificación ACPI, a pesar de que ellos piensan que lo son. Esto, a veces, se traduce en un comportamiento inestable del dispositivo, o de otros dispositivos influido por el dispositivo.

Puede desactivar específicamente soporte ACPI utilizando el acpi=off parameter.

Desactivar controladoras IDE

Cuando uno de sus discos IDE se rompe, el sistema podría no ser capaz de arrancar a pesar de que el propio sistema se almacena en un disco controlado por una controladora IDE diferente. Si este es el caso, puede desactivar explícitamente una controladora utilizando ide0=noprobe.

Desactivar multiproceso

Si se tiene un sistema SMP (Synchronous MultiProcessor), puede indicarle al núcleo de Linux que use solo una CPU mediante el establecimiento de nosmp.

Desactivar soporte para USB

Para desactivar el soporte a USB, utilice nousb

Más parámetros

Información más amplia acerca de los parámetros disponibles del núcleo se encuentra en /usr/src/linux/Documentation/kernel-parameters.txt.

La secuencia de arranque

Init

Cuando el núcleo de Linux casi se ha completado con el proceso de arranque (donde se inicializan las estructuras de memoria, carga controladores, etc.), se monta el sistema de ficheros raíz (indicado por el parámetro 'root' ) y, luego, comienza el proceso init (que está, por defecto, en /sbin/init, aunque se puede configurar otro distinto).

El proceso init es responsable del resto de la secuencia de arranque del sistema. Busca el fichero /etc/inittab, que contiene las instrucciones de cómo arrancar aún más el sistema. Al principio, se lanza la orden asignada por las entradas boot y bootwait que, en el caso de Gentoo, son:

FILE /etc/inittabLa entrada de aranque
rc::bootwait:/sbin/rc boot

Así como init es más bien independiente de la distribución (y bastante simple en su uso también), en cambio /sbin/rc es bastante específicos de la distribución, especialmente rc, que ofrece Gentoo. Su tarea consiste en asegurarse de que los scripts, en un nivel de ejecución determinado, se inician bien o tomar las medidas adecuadas si no.

Una vez que el nivel de ejecución boot ha tenido éxito, el proceso init continúa ejecutando los scripts para el nivel de ejecución especificado. Por defecto, el nivel de ejecución introducido en initdefault, parte de /etc/inittab, se inicia, pero se puede pedir a init que inicie un nivel de ejecución diferente, especificando su número correspondiente como un parámetro de arranque (de modo similar a como se agregan parámetros al núcleo).


FILE /etc/inittabLa entrada de init default
id:3:initdefault:
## (...)
l3:3:wait:/sbin/rc default

Cuando este nivel de ejecución también ha terminado de iniciar los scripts requeridos, el proceso init inicia los procesos de terminales en las distintas ttys (los lugares Alt + F# donde se obtiene un prompt de inicio de sesión):

FILE /etc/inittab
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:2345:respawn:/sbin/agetty 38400 tty2 linux
c3:2345:respawn:/sbin/agetty 38400 tty3 linux
c4:2345:respawn:/sbin/agetty 38400 tty4 linux
c5:2345:respawn:/sbin/agetty 38400 tty5 linux
c6:2345:respawn:/sbin/agetty 38400 tty6 linux

Gestionar los niveles de ejecución (runlevels)

Puede administrar los niveles de ejecución utilizando el herramienta rc-update. Su sintaxis es muy simple:

root #rc-update <add | del> <initscript> <runlevel>

Todos los scripts de inicio que se pueden utilizar se encuentran dentro de /etc/init.d. Los niveles de ejecución más probable que utilice serán, al menos, boot y default.

  • El nivel de ejecución boot se asegura de que los scripts de inicio más importantes, que son necesarios para cada inicio exitoso del sistema, se inician correctamente. Cualquier script de inicio agregado al nivel de ejecución boot no debe necesitar de ningún servicio ofrecido por los scripts de inicio en el nivel de ejecución default (dado que estos empiezan más tarde). Estos, no obstante, pueden depender de otros scripts presentes en el nivel de ejecución boot, rc de Gentoo es lo suficientemente inteligente como para hacer frente a las dependencias.
  • El nivel de ejecución default contiene todos los scripts de inicio que deben iniciarse durante el funcionamiento normal del sistema. Este es el nivel de ejecución donde, probablemente, se añadan la mayor parte de los script de inicio.

Configurar el sistema

Versión original inglesa: Complete Handbook/Configuring the system

Información del sistema de ficheros

El fichero fstab

Las siglas fstab responden a la frase file system table; cuando le eche un vistazo a una configuración completa del fichero /etc/fstab podrá ver fácilmente por qué:

FILE /etc/fstab
/dev/sda8               /             ext3    defaults,noatime          0 0
/dev/sda5               none          swap    sw                        0 0
/dev/sda6               /boot         ext2    noauto,noatime            0 0
/dev/sda7               /home         ext3    defaults,noatime,noexec   0 0
/dev/cdroms/cdrom0      /media/cdrom  auto    defaults,user,noauto      0 0

none                    /proc         proc    defaults                  0 0
none                    /dev/shm      tmpfs   defaults                  0 0

Cada línea declara la ubicación de almacenamiento que será montada (primer campo), en una cierta ubicación (segundo campo), usando un sistema de ficheros (tercer campo) y montada con una o más opciones (cuarto campo). Los últimos dos números no se utilizan de forma activa, por lo que se pueden ajustar con seguridad a 0 0.

Es vital que su fichero /etc/fstab sea un reflejo de su entorno. Por defecto, Gentoo ofrece un fichero /etc/fstab casi vacío, donde presenta a los lugares de almacenamiento de forma irregular (como /dev/BOOT y /dev/ROOT). Cualquier usuario debe cambiar el fichero, de lo contrario el sistema puede que no arranque.

El fichero fstab se utiliza no solo durante el proceso de arranque del sistema para averiguar qué sistemas de ficheros deben ser montados, sino también durante el funcionamiento normal del sistema. Por ejemplo, cuando se inserta un CD en el reproductor de CD-ROM, Linux podrá saber donde debe montar el CD para que usted (y quizás otros usuarios) tengan acceso a él.

Opciones de montaje

Las opciones de montaje que puede colocar en el cuarto campo en /etc/fstab están bien documentados en la página del manual mount:

root #man mount

Cada conjunto de opciones de montaje se documenta en una sección correspondiente al sistema de ficheros utilizado (por ejemplo, ext2, reiserfs, ...). Algunas de ellas están disponibles para todos los sistemas de ficheros, como defaults, auto o noauto (montar automáticamente el sistema de ficheros o no, respectivamente).

Sistemas de ficheros especiales

Algunas líneas en el fichero {{Path|fstab}/etc/} tienen una opción none como lugar de almacenamiento. Tales sistemas de ficheros son los pseudo file systems y no requieren ningún tipo de almacenamiento en el disco.

  • El sistema de ficheros proc representa la información del núcleo (como las estadísticas, la configuración del hardware, información de procesos, datos de memoria, ...) como ficheros normales en el sistema de ficheros. Se pueden leer desde los ficheros para obtener la información que necesita, pero, en realidad estos ficheros nunca se escriben en el disco. Cada vez que los lee, la información se vuelve a rehacer.
  • El sistema de fichero tmpfs es el almacenamiento situado completamente en la memoria. Aunque es extremadamente rápido, también es significativamente volátil, dado que pierde su contenido cuando se reinicia el sistema. El sistema de ficheros tmpfs se utiliza, a menudo, para el almacenamiento de ficheros temporales (de ahí el nombre), pero en el ejemplo dado previamente de /etc/fstab este sirve como un punto de almacenamiento para ciertas aplicaciones que quieran compartir memoria sin utilizar la funcionalidad de memoria compartida que ofrece la biblioteca C.
  • El sistema de ficheros sysfs (que no se muestra en el ejemplo como montaje de Gentoo /sys automáticamente cuando está presente) es el sucesor del sistema de ficheros proc que servia a la misma finalidad, pero está reestructurado por lo que funciona bien en entornos más grandes.

Editar /etc/fstab

No se olvide de editar /etc/fstab para adaptarlo a su entorno. Puede usar nano para abrir el fichero:

root #nano -w /etc/fstab

Registro del sistema

Propósito del registro

El gestor de registro del sistema (system logger) es un importante demonio en el sistema. Un demonio es una herramienta que funciona en segundo plano; no se puede trabajar con él de forma interactiva.

El trabajo del gestor de registro del sistema consiste en obtener información de varios procesos (y, en ciertas configuraciones, incluso a partir de procesos remotos), como eventos de inicio de sesión, las peticiones al servidor web, eventos de seguridad, los mensajes del núcleo, ... y anotarlos, a modo de bitógora, en ficheros separados: los ficheros de registro.

Estos ficheros de registro pueden ser utilizados para resolver problemas en la máquina (los errores de hardware suelen estar bastante detallado), generar estadísticas de uso (por ejemplo, para los servidores web), volver sobre los eventos de inicio de sesión (por motivos de seguridad), etc.

Instalar un bitágora del sistema

Gentoo ofrece varios sistemas de registro, cada uno de ellos con sus pros y sus contras: metalog, newsyslog, rsyslog, socklog, sysklogd y syslog-ng.La elección es personal, pero es muy importante que escoja uno: si no instala un gestor de registro, todos los eventos se mostrarán en su terminal, acumulándose encima de su pantalla, en lugar de archivar bien los eventos en ficheros.

root #emerge <systemlogger>

A continuación, tendrá que añadir el gestor de registro del sistema elegido al nivel de ejecución predeterminado. En primer lugar, sepa cómo se llama el script de inicio:

root #ls /etc/init.d

A continuación, agreguelo al nivel de ejecución por defecto:

root #rc-update add <initscript> default

Información del sistema

Contraseña de root

Con la herramienta passwd se puede establecer o cambiar cualquier contraseña de la cuenta de usuario. En primer lugar, es necesario configurar la contraseña del usuario root. Ejecute passwd e introduzca la nueva contraseña. La herramienta le pedirá que confirme la contraseña volviéndola a introducir, después de la cual se actualiza la contraseña.

root #passwd

Es prudente comprobar que la distribución de su teclado es la correcta antes de introducir la contraseña de root. Si la distribución del teclado cuando configurá la contraseña es distinta de la que esperaría tener cuando introduzca posteriormente la contraseña de root, dicha contraseña podría diferir de la que pensó cuando la estableció. En la medida en que la herramienta passwd no refleja los caracteres en la pantalla, no se puede verificar la contraseña con solo mirarla.

En la mayoría de las instalaciones de Gentoo, la propia contraseña se almacena en un formato hash en /etc/shadow que solo es legible por el usuario root. Hash significa que la contraseña no se muestra en sí misma, sino que se muestra un resultado matemático basado en la contraseña. Un hash da un valor teóricamente único basado en cierta entrada (en este caso: la contraseña), pero que no puede revertirse (es decir, no puede utilizar el hash para obtener la contraseña).

El fichero /etc/passwd, que contiene información de la cuenta de usuario, es legible por cualquier usuario. Tega en cuenta que este fichero no siempre contienen la información de su cuenta de usuario —redes más grandes probablemente almacenen esta información en un servidor central (por ejemplo, un servidor LDAP). Donde buscar la información de la cuenta se almacena en /etc/nsswitch.conf en el campo passwd.

Cuenta del usuario

A continuación, es muy recomendable crear una cuenta de usuario para las tareas diarias. El usuario root es todopoderoso; cualquier orden mal escrita puede dañar gravemente el sistema. La ejecución de aplicaciones como usuario root también le expone a violaciones de seguridad —aunque no existen muchos virus para Linux, el daño de un virus puede depender de los privilegios que obtiene, y obtiene los privilegios de la herramienta de cuyo fallo se ha aprovechado—.

Para crear un usuario, utilice useradd y pase la opción -m para crear el directorio home del usuario (/home/nombredeusuario será creado para el usuario nombredeusuario). También agregue los grupos en los que desee incluir al usuario:

root #useradd -m -g users -G wheel,audio,cdrom,games,users nombredeusuario

La mayoría de los grupos son fáciles de entender, pero el grupo wheel puede que necesite cierta explicación.

El grupo wheel contiene todos los usuarios que pueden ejecutar su para cambiar de un usuario a otro (incluido el usuario root). Solo ponga usuarios de confianza en este grupo. Una mejor alternativa al acceso de wheel (ya que este todavía requiere que el usuario conozca las contraseñas de las cuentas a las que quiere acceder) es utilizar sudo del que existe una excelente guía.

Información de la conexión de red

Gentoo ofrece varias herramientas para la gestión de las conexiones de red.[1]

Gestionar la red con dhcpcd

La forma más fácil de ellas es utilizar dhcpcd[2]. Tiene una perfecta integración con wpa_supplicant y cambia automáticamente entre conexiones cableadas e inalámbricas.

Instalación

Instale dhcpcd, agréguelo al nivel de ejecución por defecto y póngalo en marcha:

root #emerge --ask net-misc/dhcpcd
root #rc-update add dhcpcd default
root #/etc/init.d/dhcpcd start

Toda su configuración está en /etc/dhcpcd.conf. Pero para la mayoría de las instalaciones no hay nada que configurar allí [3] Aunque man 5 dhcpcd.conf[4] será útil en el caso de que se demande una configuración avanzada.

Conexión inalámbrica

Dhcpcd viene con un hook incorporado para wpa_supplicant, así que es mejor opción instalar este para la conexión inalámbrica. Los controladores necesarios de sus dispositivos inalámbricos[5] tienen que ser instalados en su núcleo. También tenga en cuenta que las versiones anteriores (≤2.0-r2) de wpa_supplicant necesitan "env wpa_supplicant_driver=nl80211" en /etc.dhcpcd.conf.[6]
Cree el fichero de configuración, ponga el contenido que se muestra a continuación, instale wpa_supplicant y reinicie dhcpcd:

FILE /etc/wpa_supplicant/wpa_supplicant.conf
# Permitir a los usuarios del grupo 'wheel' controlar wpa_supplicant
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

# Hacer este fichero escribible para wpa_gui
update_config=1
root #echo 'net-wireless/wpa_supplicant qt4 wps' >> /etc/portage/package.use
root #emerge --ask net-wireless/wpa_supplicant
root #/etc/init.d/dhcpcd restart
Importante
No agregue wpa_supplicant a ningún nivel de ejecución.

Para cualquier pregunta o problema con wpa_supplicant consulte las referencias.[7][8][9]

Direcciones IP estáticas

En caso de que la tarjeta de interfaz de red deba estar configurada con una dirección IP estática, añada sus datos en el fichero de configuración, como se muestra en el siguiente ejemplo.[4]

FILE /etc/dhcpcd.confHe aquí un ejemplo que configura una dirección IP estática, router y dns.
interface eth0
   static ip_address=192.168.0.10/24
   static routers=192.168.0.1
   static domain_name_servers=192.168.0.1

El fichero hosts

El fichero /etc/hosts es una pequeña tabla que el sistema utiliza para hacer traducciones inmediatas entre los nombres de servidores y las direcciones IP. Este fichero debe contener, al menos, una línea:

FILE /etc/hosts
127.0.0.1       localhost

Todas las demás líneas deben fijarse bajo esa línea con la siguiente sintaxis:

FILE /etc/hosts
<ip address> <fully qualified hostname> <aliases>

Por ejemplo, si quiere asignar el nombre del equipo gentoobox a tu dirección de interfaz eth0 (por ejemplo,, 192.168.0.2):

FILE /etc/hosts
192.168.0.2     gentoobox

Si utiliza un nombre de dominio para su red (como boxes, —aunque también puede ser un nombre de dominio real reservado como company.com—), debe establecerse de este modo:

FILE /etc/hosts
192.168.0.2     gentoobox.boxes     gentoobox

Al lado de los nombres del equipo asignados a sus interfaces de conexión, también puede agregar la dirección IP y la información del nombre del equipo para los otros equipos del sistema, si no se sabe los servidores DNS que ha especificado (en /etc/resolv.conf, tal vez de forma automática con DHCP).

Otros ajustes de configuración

El fichero /etc/rc.conf

El fichero /etc/rc.conf contiene la configuración del sistema para todo el sistema (no solo para un usuario particular). Va a encontrar muchas variables ya definidas en el fichero, acompañadas con una gran cantidad de documentación.

La primera variable que verá es la variable UNICODE. Unicode (también conocido como UTF-8) es el nuevo estándar de codificación de caracteres. La codificación de caracteres indica al sistema qué secuencia de bits se asemeja al carácter. Codificaciones bien conocidas son ASCII, ISO-8859-1, etc. La codificación UTF-8 o Unicode es importante, ya que es capaz de proporcionar codificaciones para todos los idiomas posibles (incluyendo caracteres especiales como ¬, carácteres chinos, etc.).

Si está interesado en el uso de Unicode en su sistema, lea la guía UTF-8.

Otra variable importante es DISPLAYMANAGER. Un gestor de pantalla es una herramienta que muestra una pantalla de inicio de sesión gráfica después de haber arrancado el sistema. La mayoría de los gestores de pantalla incluso le permiten iniciar sesión automáticamente como un usuario específico. Si desea utilizar un gestor de pantalla, es necesario instalar uno, añadir el script init xdm para el nivel de ejecución default y asegurarse de que esta variable señala al gestor de pantalla elegido.

Junto con la variable DISPLAYMANAGER encontrará otra llamada XSESSION. Esta le dice al gestor de pantallas el entorno gráfico que se debe cargar por defecto si el usuario no ha especificado uno explícitamente. Entornos gráficos bien conocidos son KDE, GNOME, XFCE, Fluxbox, ... Para obtener instrucciones específicas sobre cómo esta variable influye en el proceso de inicio de la sesión gráfica, lea los comentarios en el fichero rc.conf.

Seleccionar la distribución del teclado

Si no está utilizando un teclado Qwerty de EE.UU., tendrá que editar el fichero /etc/conf.d/keymaps para indicar al sistema Gentoo qué distribución de teclado debe utilizar.

Referencias

Finalizar la instalación

Versión original inglesa: Complete Handbook/Finishing off

Reiniciar el sistema

Salir del entorno chroot

La instalación de Gentoo base está casi terminada. En este momento, tendrá que salir del entorno chroot, desmontar todos los sistemas de ficheros montados y reiniciar el sistema. Entonces averiguaremos si los parámetros del procedimiento de arranque son correctos: si se puede iniciar sesión en el sistema, muy bien. Si no, bueno, no se preocupe —no necesita volver a hacer todo de nuevo— :)

Para salir manualmente del entorno chroot, escriba exit. Al volver de nuevo al entorno live del soporte de instalación, averigüe qué sistemas de ficheros están montados en /mnt/gentoo y desmóntelos uno a uno. No se puede desmontar un sistema de ficheros que aún tiene montados sobre el mismo otros sistemas de ficheros, lo que significa que no se puede desmontar /mnt/gentoo sin antes desmontar /mnt/gentoo/proc y otros.

root #exit
root #mount | grep '/mnt/gentoo'
/dev/sda3 on /mnt/gentoo type ext3 (rw,noatime)
proc on /mnt/gentoo/proc type proc (rw)
/dev/sda1 on /mnt/gentoo/boot type ext2 (rw,noatime)
root #umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo

Sin embargo, se puede emitir la orden

root #init 6

para reiniciar automáticamente. A continuación, reinicie el sistema y espere lo mejor...

root #reboot

No se olvide de quitar el soporte de instalación del sistema, de lo contrario podría arrancar directamente de nuevo en el entorno live de instalación. Esto es especialmente cierto en VirtualBox, que tiene un error que impide a la máquina virtual instalada arrancar.

¿Falla el arranque?

Si el reinicio falla, hay que analizar los mensajes de error que reciba para averiguar qué salió mal. Encontrará que los Foros de Gentoo representan una base de conocimientos maravillosa con soluciones a muchos problemas.

Para ayudarle a reencaminar el asunto, vamos a explicar cómo volver al entorno live de la instalación para que pueda arreglar el fallo que está causando el error.

  1. Vuelva a insertar el medio de instalación y reinicie el sistema para ingresar de nuevo en el entorno live de la instalación, tal como si estuviera en el inicio de la instalación de Gentoo.
  2. Cargue los controladores necesarios y configure la red igual que lo hizo con la instalación de Gentoo.
  3. En lugar de (hacer un sondeo) aventurarse experimentando con la configuración del almacenamiento, monte inmediatamente todos los sistemas de ficheros en /mnt/gentoo. No se olvide de montar también el sistema de ficheros proc. Nunca se sabe cuándo se necesitará y con frecuencia se olvida.
  4. Efectúe chroot en la instalación de Gentoo (chroot/mnt/gentoo), ejecute env-update y source/etc/profile para que el entorno de la sesión se configure correctamente.
  5. Ahora arregle lo que necesite ser arreglado.
  6. Salga del entorno chroot, desmonte las particiones y reinicie el sistema para volver a intentarlo.

Finalizar la instalación base

Cambiar los ajustes USE y recompilar

Si no ha alterado sus parámetros USE durante la instalación, este es un buen momento para hacerlo. Inicie sesión en el sistema como root (usando la contraseña que proporcionó en su momento) y edite la variable USE dentro de /etc/portage/make.conf con su editor favorito (nano está disponible por defecto) y relea el información que le dimos sobre los parámetros USE anteriormente en este manual en el capítulo Compilar el sistema.

Una vez que haya actualizado sus parámetros USE, le diremos a Portage que necesita recompilar las herramientas que se ven afectadas por el cambio de los parámetros USE. Para verificar lo que Portage quiere hacer, vamos primero a pedirle que nos muestre la imagen antes de recompilarla. La orden emerge tiene una opción llamada --pretend (o -p abreviado) que hace exactamente eso. Cuando añadimos la opción --verbose (o -v abreviado) también le pediremos que muestre el por qué quiere recompilar los paquetes. Y, por supuesto, tenemos que pedirle a Portage que haga todo eso solo para los paquetes que se ven afectados por el cambio de los parámetros USE (--newuse , o -N abreviado).

En este ejemplo, hemos cambiado el parámetro USE nls:

root #emerge --pretend --verbose --newuse @world
These are the packages that I would merge, in order:

Calculating world dependencies ...done!
[ebuild   R   ] sys-apps/man-pages-2.11  -nls* 0 kB 
[ebuild   R   ] sys-apps/grep-2.5.1-r8  -build -nls* +pcre -static 0 kB 
[ebuild   R   ] media-sound/alsa-utils-1.0.10_rc3  -nls* 0 kB 
## (...)

Si está conforme con lo que Portage propone, descarte --pretend para que los paquetes se comiencen a recompilar.

Paquetes huérfanos

Algunos paquetes se instalan en el sistema como dependencias de una herramienta si se establecen ciertos parámetros USE. Cuando borra un ajuste USE que le afecta, Portage no realiza un unmerge de la dependencia, a pesar de que el paquete original ya está compilado. Dichas dependencias, que no los necesita ningún paquete en el sistema pero que siguen presentes en el mismo, se llaman paquetes huérfanos.

Puede pedirle a Portage que encuentre este tipo de paquetes huérfanos y que los elimine del sistema. El método se llama depclean (que viene a significar hacer limpieza de dependencia):

root #emerge --pretend --depclean

Eche un vistazo a los paquetes que Portage quiere eliminar. Si desea desplazarse por la lista, pruebe presionando Ctrl + AvPág o filtre la lista con la utilidad less:

root #emerge --pretend --depclean | less

Si está satisfecho con la lista, descarte '--pretend' y deje que Portage ordene los paquetes que va a sacar.

Actualizar el sistema

Por último, actualice el sistema para utilizar las últimas versiones de todos los paquetes. En primer lugar, vamos a proporcionarle a Portage la instantánea más reciente del árbol Portage:

root #emerge --sync

A continuación, indique a Portage que actualice los paquetes que tienen una versión disponible más reciente. Vamos a utilizar el argumento --update para emerge que informa a Portage que queremos hacer una actualización, también el argumento --deep para que actualice no solo aquellos paquetes que haya instalado (usando emerge <nombredelpaquete>) y sus dependencias inmediatas, sino también las dependencias de las dependencias. También utilizamos el argumento --newuse. Esto se debe a que Gentoo puede haber añadido un parámetro USE al conjunto USE por defecto, ya sea debido a una actualización del perfil, ya sea debido a que se ha instalado un paquete que «ofrece» dicho nuevo parámetro USE.

root #emerge --update --deep --newuse @world

Instalar software adicional

Algunas recomendaciones...

Ahora que su sistema base está disponible, todavía andará un poco a tientas, ya que no tiene muchas herramientas a su disposición. Sin entorno gráfico para los usuarios de escritorio, sin servicios para los servidores, ni herramientas de desarrollo (aparte de la cadena de herramientas) para los desarrolladores.

Su siguiente parada debería ser investigar el árbol Portage para el software que desea tener. Solo tiene que navegar a través de /usr/portage y usar emerge para cada herramienta que desee, pero mejor sería seguir una o más guías de nuestro sitio web que le ayuden a instalar y configurar cada herramienta.

Por ejemplo, Gentoo tiene una bonita guía de configuración de Xorg para aquellos que quieren crear su instalación Gentoo como un entorno gráfico de escritorio o estación de trabajo. La herramienta xorg-x11 es el servicio que proporciona características para gestionar ventanas y otras posibilidades gráficas de los distintos entornos de escritorio.

Entornos de escritorio posibles son KDE, GNOME o fluxbox, que también disponen de guías de configuración en el sitio web de Gentoo (guía de configuración de KDE, guía de configuración de GNOME y guía de configuración de Fluxbox).

Para los interesados en otros servicios deberían echar un vistazo a la guía de seguridad de Gentoo que le ayudará a fortalecer la configuración del sistema.

Otros recursos interesantes son los foros de Gentoo, los canales IRC de Gentoo y las listas de correo.