This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Manual de Gentoo: X86/Instalación/Base
Enjaulamiento
Opcional: Seleccionar los servidores réplica
Distribución de archivos
Para poder descargar el código fuente rápidamente se recomienda seleccionar un servidor réplica rápido. Portage comprobará en su archivo make.conf la variable GENTOO_MIRRORS y utilizará los servidores que se especifican allí. Puede navegar por la lista de servidores de réplica de Gentoo y buscar un servidor (o servidores) que estén cerca de su localización (ya que estos suelen resultar los más rápidos). Por otra parte, nosotros le facilitamos una buena herramienta llamada mirrorselect la cual proporciona una interfaz amigable para seleccionar los servidores réplicas que quiera. Simplemente navegue a los servidores réplica que desee y pulse Spacebar para seleccionar uno o más servidores.
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Repositorio de ebuilds de Gentoo
Un segundo paso importante en la selección de servidores replica consiste en configurar el repositorio de ebuilds de Gentoo a través del archivo /etc/portage/repos.conf/gentoo.conf. Este archivo contiene la información de sincronización necesaria para actualizar el repositorio de paquetes (la colección de ebuilds y archivos relacionados que contienen toda la información que Portage necesita para descargar e instalar paquetes de software).
La configuración del repositorio se puede hacer en unos sencillos pasos. Primero, si no existe, cree el directorio repos.conf:
root #
mkdir /mnt/gentoo/etc/portage/repos.conf
Luego, copie el archivo de configuración del repositorio de Gentoo proporcionado por Portage al directorio (recien creado) repos.conf:
root #
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
Visualícelo con un editor de texto o usando la orden cat. El contenido del archivo debe estar en formato .ini y tener este aspecto:
[gentoo] location = /usr/portage sync-type = rsync sync-uri = rsync://rsync.gentoo.org/gentoo-portage auto-sync = yes
[gentoo] location = /usr/portage sync-type = rsync sync-uri = rsync://rsync.gentoo.org/gentoo-portage auto-sync = yes sync-rsync-verify-jobs = 1 sync-rsync-verify-metamanifest = yes sync-rsync-verify-max-age = 24 sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc sync-openpgp-key-refresh-retry-count = 40 sync-openpgp-key-refresh-retry-overall-timeout = 1200 sync-openpgp-key-refresh-retry-delay-exp-base = 2 sync-openpgp-key-refresh-retry-delay-max = 60 sync-openpgp-key-refresh-retry-delay-mult = 4
- for daily squashfs snapshots
- sync-type = squashdelta
- sync-uri = mirror://gentoo/../snapshots/squashfs
}}
El valor por defecto de la variable sync-uri listado antes determinará la localización de un servidor réplica basado en una rotación de servidores. Esto ayudará aliviando la presión sobre el ancho de banda en la infraestructura de Gentoo y proporcionará un uso a prueba de fallos en caso de caida puntual de un servidor replica. Es recomendable mantener la URI por defecto a menos que se utilice un servidor réplica de Portage privado y local.
Para quien esté interesado, la especificación oficial de la API para los complementos (plug-in) de sincronización de Portage puede ser encontrada en el artículo Sync de los proyectos de Portage.
Copiar la información DNS
Aún queda una cosa que hacer antes de entrar en el nuevo entorno, copiar la información sobre los DNS en /etc/resolv.conf. Necesita hacer esto para asegurarse de que la red continúe funcionando después de entrar en el nuevo entorno. /etc/resolv.conf contiene los servidores de nombres para su red.
Para copiar esta información, se recomienda pasar la opción -L
en la orden cp.Esto asegura que, si /etc/resolv.conf es un enlace simbólico, se copia el archivo al que apunta el enlace y no el propio enlace. En caso contrario, en el nuevo entorno, el enlace simbólico podría apuntar a un archivo inexistente (ya que lo mas probable es que los archivos apuntados no estén disponible dentro del nuevo entorno).
root #
cp -L /etc/resolv.conf /mnt/gentoo/etc/
Montar los sistemas de archivos necesarios
En breve, cambiaremos la raíz de Linux a la nueva localización. Para asegurarse de que el nuevo entorno funciona correctamente, necesitaremos disponer de ciertos sistemas de archivos también en la nueva localización.
Los sistemas de archivos que deben estar disponibles son:
- /proc/ que es un pseudosistema de archivos (parecen archivos normales, pero en la actualidad son generados dinámicamente) a través del cual el núcleo Linux expone información al entorno
- /sys/ que es un pseudosistema de archivos, como /proc/ al que podía haber sustituido y que es mas estructurado que /proc/
- /dev/ que es un systema de archivos normal, parcialmente gestionado por el gestor de dispositivos Linux (normalmente udev), que contiene todos los archivos de dispositivo
La ubicación /proc/ se montará en /mnt/gentoo/proc/ mientras que los otros dos serán montados mediente enlace. Esto último quiere decir que, por ejemplo, /mnt/gentoo/sys/ será realmente el actual /sys/ (será sólo un segundo punto de entrada al mismo sistema de archivos) mientras que /mnt/gentoo/proc/ es un nuevo montaje (instancia por así decirlo) del sistema de archivos.
root #
mount -t proc /proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
Las operaciones
--make-rslave
son necesarias para dar soporte a systemd mas adelante en la instalación.Cuando se utilicen medios de instalación que no sean de Gentoo, podría no ser suficiente. Algunas distribuciones crean el enlace simbólico /dev/shm a /run/shm/ el cual ya no será válido después del chroot. Hacer que /dev/shm/ sea un apropiado montaje tmpfs puede resolver este problema:
root #
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #
mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
root #
chmod 1777 /dev/shm
root #
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
Also ensure that mode 1777 is set:
root #
chmod 1777 /dev/shm
}}
Entrar en el nuevo entorno
Ahora que todas las particiones están inicializadas y el sistema base instalado, es hora de entrar en el nuevo entorno de instalación haciendo chrooting en él. Esto significa que la sesión cambiará su raíz (la ubicación de mayor nivel que puede ser accedida) desde el entorno de instalación actual (CD de instalación u otro medio de instalación) hasta el sistema de instalación (es decir, las particiones inicializadas). De ahí el nombre, change root (cambiar raíz) o chroot.
El enjaulamiento (chroot) se hace en tres pasos:
- Se cambia la raíz desde / (en el medio de instalación) a /mnt/gentoo/ (en las particiones) utilizando chroot
- Se cargan en memoria algunas definiciones (ofrecidas por /etc/profile) mediante la orden source.
- Se redefine el símbolo de espera de órdenes (prompt) primario que nos hará recordar que nos encontramos en un entorno enjaulado (chroot).
root #
chroot /mnt/gentoo /bin/bash
root #
source /etc/profile
root #
export PS1="(chroot) $PS1"
Desde este momento, todas las acciones realizadas lo serán en el nuevo entorno Gentoo Linux. Por supuesto aún no hemos terminado, ¡Todavía quedan unas cuantas secciones!
Si la instalación de Gentoo se interrumpe en algún momento posterior, debería ser posible 'continuarla' desde este paso. ¡No es necesario particionar los discos otra vez! Simplemente monte la partición raíz y siga los pasos anteriores comenzando desde copiar la información DNS hasta entrar en el nuevo entorno. Esto también se utiliza para arreglar problemas con el cargador de arranque. Mas información en el artículo chroot.
Montar la partición de arranque
Ahora que estamos en el nuevo entorno, es necesario crear y montar la partición /boot. Esto cobrará importancia cuando llegue el momento de compilar el núcleo e instalar el cargador de arranque:
root #
mkdir /boot
root #
mount /dev/sda2 /boot
Configurar Portage
Instalar una instantánea de repositorio de ebuilds desde la web
El siguiente paso es instalar una instantánea del repositorio principal de ebuilds. Esta instantánea contiene una colección de ficheros que informa a Portage sobre los títulos de software disponibles (para su instalación), qué perfiles puede seleccionar el administrador del sistema, artículos de noticias específicas de paquetes o perfiles, etc.
Se recomienda utilizar emerge-webrsync para aquéllos que se encuentren detrás de cortafuegos restrictivos (ya hace uso de los protocolos HTTP/FTP para descargar la instantánea) y ahorra ancho de banda de red. Los lectores que no tengan limitaciones en el ancho de banda pueden saltar a la siguiente sección.
Esto recuperará la última instantánea (que se libera todo los días) desde uno de los servidores réplica de Gentoo e instalarla en el sistema:
root #
emerge-webrsync
Durante esta operación, emerge-webrsync podría indicar que la localización /usr/portage/ no existe. Esto es normal y no debe preocupar - la herramienta creará la localización.
A partir de este punto Portage podría indicar que se recomienda realizar algunas actualizaciones. Esto es debido a que algunos paquetes de sistema que se han instalado mediante un archivo stage disponen de versiones más actuales y ahora Portage detecta los nuevos paquetes consultando la instantánea del repositorio. Por el momento se pueden ignorar las actualizaciones de los paquetes y realizarlas una vez haya finalizado la instalación de Gentoo.
Opcional: Actualizar el repositorio de ebuilds de Gentoo
Puede actualizar el repositorio de ebuilds de Gentoo a la última versión. La orden emerge-webrsync anterior habrá instalado una instantanea muy reciente (normalmente inferior a 24 horas) de manera que claramente este paso es opcional.
Suponiendo que hubiera una necesidad de tener las últimas actualizaciones de los paquetes (hasta hace 1 hora) entonces use emerge --sync. Esta orden utilizará el protocolo rsync para actualizar el repositorio de ebuilds de Gentoo (que obtuvo anteriormente mediante emerge --sync) a su estado mas reciente.
root #
emerge --sync
En terminales lentos como algunos framebuffers
o consolas seriales, es aconsejable usar la opción --quiet
para aumentar la velocidad del proceso:
root #
emerge --sync --quiet
Leer los elementos de noticias
Cuando se sincroniza el repositorio de ebuilds de Gentoo, Portage puede advertir al usuario con mensajes similares a los siguientes:
* IMPORTANT: 2 news items need reading for repository 'gentoo'. * Use eselect news to read news items.
Los elementos de noticias se crearon para ofrecer un medio de comunicación en el que se incluyeran mensajes críticos a los usuarios a través del árbol sincronizado. Para gestionarlos necesitará utilizar eselect news. La aplicación eselect es una aplicación de Gentoo que presenta una interfaz de gestión común en cuanto a cambios en el sistema y las operaciones para realizarlos. En este caso se ha pedido a eselect que use el módulo news
.
Para el módulo news
hay tres operaciones que son las mas usadas:
- Con
list
se muestra un sumario de las noticias disponibles - Con
read
se leen las noticas - Con
purge
se pueden eliminar noticias que una vez leidas ya no sea necesario volverlas a leer mas.
root #
eselect news list
root #
eselect news read
Se puede obtener más información sobre el lector de noticias en la página del manual:
root #
man news.eselect
Elegir el perfil adecuado
Do not select any of the the 17.1 profiles until reading the corresponding 17.1 news item. This profile is experimental and requires special migration instructions.
Un perfil (profile) es uno de los bloques de construcción en cualquier sistema Gentoo. No solamente especifica unos valores predeterminados para USE, CFLAGS , y otras variables importantes, también bloquea sistema para ciertos rangos de versiones de algunos paquetes. Estas configuraciones son todas mantenidas por los desarrolladores de Portage de Gentoo.
Se puede ver el perfil que el sistema está utilizado actualmente con eselect, en este caso usando el módulo profile
:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/x86/13.0 * [2] default/linux/x86/13.0/desktop [3] default/linux/x86/13.0/desktop/gnome [4] default/linux/x86/13.0/desktop/kde
La salida de la orden anterior es solo un ejemplo y cambiará a lo largo del tiempo.
Como se puede ver, también existen sub-perfiles desktop (escritorio) disponibles para algunas arquitecturas.
Profile upgrades are not to be taken lightly. When selecting the initial profile, make sure to use profile corresponding to the same version as the one initially used by stage3 (e.g. 13.0). Each new profile version is announced through a news item containing migration instructions. Make sure to read it and follow them before switching to a newer profile.
Después de revisar los perfiles disponibles para la arquitectura Handbook:Variable, los usuarios pueden elegir usar un perfil diferente para el sistema:
root #
eselect profile set 2
El subperfil
developer
es específico para desarrolladores de Gentoo Linux y no está dirigido a usuarios comunes.Actualizar el conjunto @world
En este punto, si se ha escogido un nuevo perfil de sistema, es aconsejable actualizar el conjunto @world del sistema para establecer una base para el nuevo perfil.
El siguiente paso es necesario para quienes hayan seleccionado un perfil con systemd
en el título (ya que todos los empaquetados de stages oficiales de Gentoo usan OpenRC como sistema de inicio por defecto), sin embargo es opcional para otros perfiles:
root #
emerge --ask --update --deep --newuse @world
Si se ha seleccionado un perfil de entorno de escritorio máximo, este paso puede aumentar en gran medida la cantidad de tiempo necesario para el proceso de instalación. Los impacientes deben aplicar esta 'regla de oro': cuanto mas corto el nombre del perfil menos específico es el conjunto @world del sistema; cuanto menos específico sea el conjunto @world, menos paquetes necesita el sistema. En otras palabras:
- Seleccionar
default/linux/amd64/13.0
requerirá muy pocos paquetes a actualizar, mientras - Seleccionar
default/linux/amd64/13.0/desktop/gnome/systemd
requerirá muchos paquetes a instalar ya que el sistema de inicio cambia de OpenRC a systemd, y se instalará el entorno de escritorio GNOME.
Configurar la variable USE
La variable USE es una de las más importantes que Gentoo proporciona a sus usuarios. Muchos programas se pueden compilar con o sin soporte opcional para ciertas cosas. Por ejemplo, algunos programas se pueden compilar con soporte para GTK+, o con soporte para QT. Otros programas se pueden compilar con o sin soporte SSL. Algunos programas incluso se pueden compilar con soporte framebuffer (svgalib) en lugar de soporte X11 (servidor X).
Muchas distribuciones compilan sus paquetes con el mayor soporte posible, aumentando el tamaño de los programas y su tiempo de carga, sin mencionar una cantidad enorme de dependencias. Con Gentoo se puede definir con que opciones debe ser compilado un paquete. Ahí es donde actúa USE.
En la variable USE se definen palabras clave que son transformadas en opciones de compilación. Por ejemplo ssl
compilará los programas que lo requieran con soporte SSL.-X
quitara el soporte para el servidor X (nótese el signo menos delante). gnome gtk -kde -qt4 -qt5
compilará los programas con soporte para GNOME (y GTK), pero sin soporte para KDE (y Qt), haciendo su sistema completamente adaptado para GNOME (siempre que se use una arquitectura que lo soporte).
Los valores por defecto de la variable USE se encuentran en los archivos make.defaults del perfil Gentoo que use su sistema. Gentoo usa un (complejo) sistema de herencia en sus perfiles, que no podemos profundicar en esta etapa. La manera mas fácil de conocer la configuración actual de USE es ejecutar emerge --info y fijarse en la línea que comienza con USE:
root #
emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
El ejemplo anterior está truncado la lista actual de valores para USE es mucho mucho mas larga.
Puede encontrar una descripción completa sobre la variable USE en el propio sistema, en /usr/portage/profiles/use.desc.
root #
less /usr/portage/profiles/use.desc
Dentro de la orden less puede desplazarse arriba y abajo utilizando las teclas ↑ y ↓ y salir pulsando q.
Como ejemplo, se muestran algunas opciones USE para un sistema basado en KDE con DVD, ALSA y soporte para grabar CDs:
root #
nano -w /etc/portage/make.conf
USE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"
Cuando se define USE en /etc/portage/make.conf sus valores son añadidos (o quitados si el valor comienza con el carácter -) de la lista de valores por defecto. Los usuarios que no quieran tener ningún valor por defecto para USE y gestionarlos completamente por ellos mismos deben comenzar la definición de USE en make.conf con -*
:
USE="-* X acl alsa"
Aunque sea posible hacerlo, el asignar
-*
(como en el ejemplo anterior) está desaconsejado ya que algunos ebuilds pueden tener configurados ajustes USE por defecto cuidadosamente elegidos, para prevenir conflictos y otros errores.
Zona horaria
Seleccione la zona horaria para su sistema. Busque las zonas horarias disponibles en /usr/share/zoneinfo/, a continuación, anótela en el archivo /etc/timezone.
root #
ls /usr/share/zoneinfo
Suponga que quiere utilizar Europe/Brussels:
root #
echo "Europe/Brussels" > /etc/timezone
Por favor, evite las zonas horarias listadas en /usr/share/zoneinfo/Etc/GMT* ya que sus nombres no indican las zonas esperadas. Por ejemplo, GMT-8 es en realidad GMT+8.
A continuación, reconfigure el paquete sys-libs/timezone-data, que actualizará por nosotros el archivo /etc/localtime basándose en la entrada /etc/timezone. La biblioteca C del sistema utiliza el fichero /etc/localtime para conocer la zona horaria en la que se encuentra el sistema.
root #
emerge --config sys-libs/timezone-data
Configurar localizaciones
La mayoría de usuarios necesitarán usar únicamente una o dos localizaciones (locales) en su sistema.
Las localizaciones no sólo especifican el idioma que el usuario debe usar para interactuar con el usuario (N. del T. en original: sistema), sino también las reglas para ordenar cadenas, presentar fechas y horas, etc.
Las localizaciones para las que un sistema debe tener soporte deben mencionarse en /etc/locale.gen.
root #
nano -w /etc/locale.gen
Las siguientes localizaciones son un ejemplo de como disponer tanto de Inglés (Estados Unidos) como de Español (España) junto con los formatos de caracteres (como UTF-8).
en_US ISO-8859-1 en_US.UTF-8 UTF-8 es_ES ISO-8859-1 es_ES.UTF-8 UTF-8
Se recomienda firmemente usar al menos una localización UTF-8 ya que algunas aplicaciones pueden necesitarla.
El siguiente paso es lanzar locale-gen. Se generarán las localizaciones que ha especificado en el archivo /etc/locale.gen.
root #
locale-gen
Para verificar que las localizaciones seleccionadas están ahora disponibles, ejecute locale -a.
Una vez hecho esto, es hora de definir los ajustes de localización para todo el sistema. De nuevo usaremos eselect para ello, ahora con el módulo locale
.
Con eselect locale list se muestran las opciones disponibles:
root #
eselect locale list
Available targets for the LANG variable: [1] C [2] POSIX [3] en_US [4] en_US.iso88591 [5] en_US.utf8 [6] es_ES [7] es_ES.iso88591 [8] es_ES.iso885915 [9] es_ES.utf8 [ ] (free form)
Con eselect locale set VALOR puede definir la localización deseada:
root #
eselect locale set 9
Se puede realizar también manualmente usando el archivo /etc/env.d/02locale:
LANG="es_ES.UTF-8" LC_COLLATE="C"
Asegúrese de que ha definido una localización ya que de lo contrario podría obtener mensajes de advertencia o error al construir el núcleo u otras aplicaciones más adelante durante la instalación.
Ahora recargue sus variables de entorno:
root #
env-update && source /etc/profile && export PS1="(chroot) $PS1"
Disponemos de una completa Guía de localización para ayudar al usuario en este proceso. Otro artículo interesante es la guía UTF-8 para obtener información específica de cómo habilitar UTF-8 en un sistema.