Manual de Gentoo: IA64/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 --parents /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:
/mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT] main-repo = gentoo [gentoo] location = /var/db/repos/gentoo 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
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 --dereference
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 --dereference /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 --types 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 --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
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.
Configurar Portage
Instalar una instantánea de repositorio de ebuilds de Gentoo desde la web
El siguiente paso es instalar una instantánea del repositorio de ebuilds de Gentoo. 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 (utiliza 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 /var/db/repos/gentoo/ 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 hasta que la instalación de Gentoo haya finalizado.
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 mostrar mensajes informativos de salida 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
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/ia64/ * [2] default/linux/ia64//desktop [3] default/linux/ia64//desktop/gnome [4] default/linux/ia64//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.
La actualización de perfiles no debe tomarse a la ligera. Cuando seleccione el perfil inicial, asegúrese de usar un perfil que corresponda a la misma versión que el usado en el stage3 inicial (p. ej. 13.0). Cada nueva versión de perfil se anuncia mediante un elemento de noticias (news) que contiene instrucciones de migración. Asegúrese de leerlo y seguirlo antes de cambiar a un nuevo perfil.
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, es prudente actualizar el conjunto @world del sistema de modo que se pueda establecer una base.
El siguiente paso es necesario para que el sistema pueda aplicar las actualizaciones o cambios en las configuraciones USE que hayan aparecido desde que el stage3 fue construido y desde cualquier selección de perfil:
root #
emerge --ask --verbose --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 /var/db/repos/gentoo/profiles/use.desc.
root #
less /var/db/repos/gentoo/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
/etc/portage/make.conf
Confiigurar USE para KDE con DVD, ALSA y soporte para grabar CDsUSE="-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 -*
:
/etc/portage/make.conf
Ignorar valores por defecto para USEUSE="-* 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.Opcional: Configurar la variable ACCEPT_LICENSE
Todos los paquetes en Gentoo están etiquetados con la licencia bajo la que se proporcionan. Esto permite a los usuarios seleccionar el software por una licencia o grupo de licencias concretas antes de instalarlo.
La variable LICENSE en un ebuild es solo una indicación para los usuarios y desarrolladores de Gentoo. No es una obligación legal y no garantiza que así se materializará en la realidad. No confíe en ella y compruebe el contenido completo del paquete, incluyendo todos los archivos que se usen.
Portage usa la variable ACCEPT_LICENSE para determinar que paquetes se permiten sin tener que preguntar al usuario por licencias que ya ha aceptado. También es posible hacer excepciones para paquetes concretos en /etc/portage/package.license.
Los grupos de licencias definidos en el repositorio Gentoo, gestionados por el Proyecto Gentoo Licencias, son:
Nombre del Grupo | Descripción |
---|---|
@GPL-COMPATIBLE | Licencias compatibles con GPL aprobadas por la [a_license 1] |
@FSF-APPROVED | Licencias de software libre aprobadas por la FSF (incluye @GPL-COMPATIBLE) |
@OSI-APPROVED | Licencias aprobadas por la Open Source Initiative [a_license 2] |
@MISC-FREE | Varias licencias que son probablemente software libre, i.e. siguel la Free Software Definition [a_license 3] pero no han sido aprobadas ni por la FSF ni por la OSI |
@FREE-SOFTWARE | Combina @FSF-APPROVED, @OSI-APPROVED y @MISC-FREE |
@FSF-APPROVED-OTHER | Licencias aprobadas FSF para "documentación libre" y "obras de uso práctico aparte de software y documentación" (incluyendo fuentes -fonts-) |
@MISC-FREE-DOCS | Varias licencias para documentos libres y otras obras (incluyendo fuentes -fonts-) que siguen la definición libre [a_license 4] pero no están relacionadas en @FSF-APPROVED-OTHER |
@FREE-DOCUMENTS | Combina @FSF-APPROVED-OTHER y @MISC-FREE-DOCS |
@FREE | Metaconjunto de todas las licencia con la libertad de usar, copiar, modificar y compartir esas modificaciones. Combina @FREE-SOFTWARE y @FREE-DOCUMENTS |
@BINARY-REDISTRIBUTABLE | Licencias que permite al menos la libre distribución del software en forma binaria. Incluye @FREE |
@EULA | Acuerdo de licencia que restringe derechos al usuario. Son mas restrictivas que "todo los derechos reservados" o las que requieren aprobación explícita |
Gentoo incorpora un valor predefinido en los perfiles, por ejemplo:
user $
portageq envvar ACCEPT_LICENSE
@FREE
Esto puede ser personalizado de forma global para todo el sistema modificando /etc/portage/make.conf. El valor por defecto solo acepta licencias que hayan sido aprobadas explícitamente por la Free Software Foundation, la Open Source Initiative, o que sigan la Free Software Definition:
/etc/portage/make.conf
Personalizando ACCEPT_LICENSEACCEPT_LICENSE="-* @FREE"
Se pueden añadir excepciones por paquete si se considera necesario y se quiere hacer, por ejemplo:
/etc/portage/package.license/kernel
Ejemplo de aceptación de licenciaapp-arch/unrar unRAR sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE sys-firmware/intel-microcode intel-ucode
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
Generación de 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).
/etc/locale.gen
Habilitar las localizaciones US y ES con los formatos de carácter apropiadosen_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.
Selección de localización
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 <NÚMERO> se puede seleccionar la localización correcta:
root #
eselect locale set 9
Se puede realizar también manualmente usando el archivo /etc/env.d/02locale:
/etc/env.d/02locale
Definición de la localización del sistema manualmenteLANG="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.