Manual:Partes/Instalación/Stage
Instalar el Stage comprimido (tarball)
Ajustar la Fecha/Hora correcta
Antes de instalar Gentoo, es una buena idea estar seguro de que la fecha y hora del sistema están configuradas correctamente. Una mala configuración del reloj puede dar lugar a resultados extraños: los ficheros base del sistema deben ser extraídos con timestamps correctos. De hecho, debido a que varios sitios web y servicios usan comunicaciones cifradas (SSL/TLS), ¡puede no ser posible desdecargar los archivos de instalación en absoluto si el reloj del sistema está muy desincronizado!
Verifique la fecha y hora actuales ejecutando el comando date:
root #
date
Mon Oct 3 13:16:22 PDT 2016
Si la fecha/hora mostrada está mal, actualízala usando uno de los métodos debajo.
Las placas base que no incluyen un Real-Time Clock (RTC) deben ser configuradas para sincronizar automáticamente el reloj del sistema con un servidor ntp. Esto también es cierto para sistemas que tienen un RTC, pero su batería falla o está agotada.
Automático
Los medios de instalación oficiales de gentoo incluyen el comando ntpd (disponible en el paquete net-misc/ntp). Los medios oficiales incluyen un fichero de configuración que apunta a los servidores de hora en ntp.org. Esta orden se puede utilizar para sincronizar automáticamente el reloj del sistema al horario UTC usando un servidor ntp. Usar este método requiere una configuración de red funcionando y puede no estar disponible en todas las arquitecturas.
La configuración automática de la hora tiene su precio. Esto revelará la dirección IP del sistema e información de red relacionada a un servidor ntp (en el ejemplo debajo a ntp.org). Los usuarios con preocupaciones acerca de su privacidad deben ser concientes de esto "antes" de configurar el reloj del sistema utilizando el método debajo.
root #
ntpd -q -g
Manual
El comando date también puede ser utilizado para configurar el reloj del sistema manualmente. Use la sintaxis MMDDhhmmAAAA
(Mes, Día, hora, minuto y Año).
Es recomendable utilizar horario UTC para todos los sistemas Linux. Más adelante en la instalación un timezone será definido. Esto modificará la forma en la que se muestra el reloj al tiempo local.
Por ejemplo, para ajustar la fecha y hora a las 13:16 horas del 3 de octubre del 2016:
root #
date 100313162016
Elegir un tarball de stage
Multilibrería (32 y 64 bits)
Elegir un fichero base tarball para el sistema, puede ahorrar una cantidad de tiempo considerable más tarde durante el proceso de instalación, específicamente cuando es el momento de elegir un perfil del sistema. La selección de un fichero tarball de stage afectará a la configuración futura del sistema y puede evitar más de un dolor de cabeza más adelante. El tarball multilibrería utiliza librerías de 64 bits cuando es posible y únicamente hace uso de las versiones de 32 bits cuando es necesario por compatibilidad. Esta es una excelente opción para la mayoría de instalaciones ya que ofrece una gran flexibilidad para la personalización en el futuro. Aquéllos usuarios que desean que sus sistemas puedan conmutar fácilmente entre perfiles deberían descargar la opción del tarball multilibrería para su arquitectura de procesador.
La mayoría de los usuarios no deberían utilizar las opciones 'avanzadas' de los ficheros tarball ya que se utilizan para configuraciones específicas de software o de hardware.
No multilibrería (64 bits puros)
Si se selecciona un tarball que no sea multilibrería como base del sistema, se obtendrá un entorno de sistema operativo completo de 64 bits. Esto se traduce en una baja operatividad para cambiar a perfiles multilibería (aunque es posible). Aquéllos usuarios que estén comenzado con Gentoo no debería elegir un tarball no multilibrería a menos que sea absolutamente necesario.
Se debe tener en cuenta que la migración de un sistema no multilibrería a uno multilibrería requiere un conocimiento bastante profundo del funcionamiento de Gentoo y del funcionamiento de la cadena de herramientas en detalle (Puede incluso hacer temblar un poco a nuestros desarrolladores de la cadena de herramientas). No es apto para cardiacos y está fuera del alcance de esta guía.
OpenRC
OpenRC es un sistema de inicio basado en dependencias (responsable de iniciar los servicios del sistema una vez que se ha iniciado el núcleo) que mantiene compatibilidad con el programa de inicio proporcionado por el sistema, que normalmente se encuentra en /sbin/init. Es el sistema de inicialización nativo y original de Gentoo, pero también lo implementan algunas otras distribuciones de Linux y sistemas BSD.
OpenRC no funciona como reemplazo del archivo /sbin/init por defecto y es 100% compatible con los guiones de inicio de Gentoo. Esto significa que puede ser una solución para ejecutar las docenas de demonios en el repositorio de ebuilds de Gentoo.
Solo por razones históricas, este manual se enfoca en la instalación y configuración usando OpenRC. Está previsto reescribirlo y mejorarlo para explicar también una instalación de Systemd (ver más abajo).
systemd
systemd es un moderno reemplazo de los init y rc al estilo SysV para sistemas Linux. Por ahora está en uso en la mayoría de las distribuciones de Linux. Systemd es compatible con Gentoo y funciona bien; es ampliamente configurable. Desafortunadamente, las secciones correspondientes del manual de instalación en gran medida aún deben escribirse o están en proceso.
Es posible cambiar una instalación de Gentoo en ejecución de OpenRC a systemd y viceversa. Sin embargo, esto requiere algo de esfuerzo y está fuera del alcance del manual de instalación. Dependiendo de lo que desee utilizar en su instalación, asegúrese de seleccionar el archivo empaquetado correcto.
Descargar el stage comprimido (tarball)
Vaya al punto de montaje de Gentoo en el que ha montado el sistema de archivos raíz (probablemente /mnt/gentoo):
root #
cd /mnt/gentoo
Dependiendo del medio de instalación, la única herramienta necesaria para descargar un tarball de stage sería un navegador web.
Los usuarios que utilicen entornos con navegadores web gráficos no tendrán problema en copiar el URL de un fichero stage desde la sección de descargas del sitio web principal. Simplemente seleccione la pestaña apropiada, haga clic con el botón secundario del ratón en el fichero stage, entonces Copiar la ruta del enlace para copiar el enlace al portapapeles, a continuación pegue el enlace para la utilidad wget en la lína de órdenes para descargar el archivo comprimido stage:
root #
wget <URL_DEL_STAGE_PEGADA>
Los usuarios de Gentoo más tradicionales o los 'históricos' que trabajen exclusivamente con la línea de órdenes puede que prefieran utilizar links, un navegador no gráfico dirigido por menús. Para descargar un stage, navegue a la lista de servidores réplica de Gentoo de esta forma:
root #
links https://www.gentoo.org/downloads/mirrors/
Para usar un proxy HTTP con links, pase la URL con la opción -http-proxy
:
root #
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
Junto a links existe también el navegador lynx. Al igual que links es un navegador de consola pero sin menús.
root #
lynx https://www.gentoo.org/downloads/mirrors/
Si necesita pasar a través de un proxy, exporte las variables http_proxy y ftp_proxy:
root #
export http_proxy="http://proxy.server.com:port"
root #
export ftp_proxy="http://proxy.server.com:port"
Seleccione un servidor réplica cercano. Normalmente bastará con los servidores HTTP, sin embargo también están disponibles otros protocolos. Entre en el directorio releases/amd64/autobuilds/. En él deberían aparecer todos los archivos de stage disponibles (quizá almacenados en subdirectorios con el nombre de cada subarquitectura). Seleccione uno y pulse d para descargarlo.
Una vez haya finalizado la descarga del fichero stage, es posible verificar la integridad y validar los contenidos del stage comprimido. Los interesados pueden ir a la siguiente sección.
Para los que no estén interesados en verificar y validar el archivo stage pueden el navegador de línea de comandos pulsando q e ir directamente a la sección Extraer el stage comprimido.
Verificar y validar
Algunos empaquetados están siendo proporcionados con compresión xz. Al descargar un empaquetado acabado en .tar.xz, hay que modificar el nombre de archivo del empaquetado en la parte .tar.bz2 en las siguientes órdenes.
Al igual que con los CDs minimalistas de instalación, hay descargas disponibles para verificar y validar el fichero stage. Aunque estos pasos se pueden omitir, estos ficheros se ofrecen a aquéllos usuarios que se preocupan por la legitimidad del fichero o ficheros que se acaban de descargar.
- Un archivo .CONTENTS que contiene un listado de todos los archivos contenidos dentro del stage comprimido.
- Un archivo .DIGESTS que contiene sumas de comprobación del archivo stage utilizando diferentes algoritmos.
- Un archivo .DIGESTS.asc que, al igual que .DIGESTS, contiene sumas de comprobación del archivo stage utilizando diferentes algoritmos, y además está firmado criptográficamente para asegurar que es el proporcionado por el proyecto Gentoo.
Use openssl y compare la salida con la suma de comprobación proporcionada por el archivo .DIGESTS o .DIGESTS.asc.
Por ejemplo, para validar la suma de comprobación SHA512:
root #
openssl dgst -r -sha512 stage3-amd64-<release>.tar.?(bz2|xz)
Otra forma es usar la orden sha512sum:
root #
sha512sum stage3-amd64-<release>.tar.?(bz2|xz)
Para validar la suma de comprobación Whirlpool:
root #
openssl dgst -r -whirlpool stage3-amd64-<release>.tar.?(bz2|xz)
Compare la salida de estas órdenes con el valor registrado en los archivos .DIGESTS(.asc). Los valores deben coincidir, de lo contrario, los ficheros descargados podrían estar corruptos (o el propio archivo digests).
Al igual que con el archivo ISO, puede también verificar la firma criptográfica del archivo .DIGESTS.asc mediante gpg para asegurarse de las sumas de comprobación no se han manipulado:
root #
gpg --verify stage3-amd64-<release>.tar.?(bz2|xz){.DIGESTS.asc,}
Las huellas digitales de las claves OpenPGP utilizadas para firmar los medios de lanzamiento se pueden encontrar en la página de firmas de medios de lanzamiento del servidor web Gentoo.
Extraer el stage comprimido
Ahora desempaquete el stage descargado en el sistema. Use tar para dicha labor:
root #
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
Asegúrese de usar las opciones indicadas (xpf
y --xattrs-include='*.*'
). La x
se usa para desempaquetar (extract), la p
para preservar (preserve) los permisos y la f
para decir que extraemos desde un archivo (file), no desde la entrada estándar. La opción --xattrs-include='*.*'
es para que se incluyan también los atributos extendidos almacenados en todos los espacios de nombres en el archivo. Por último, --numeric-owner
se utiliza para asegurarse de que los IDs del usuario y grupo de los ficheros que se extraen del fichero comprimido son los mismos que incluyó el equipo de ingeniería de liberaciones de Gentoo, incluso si algún usuario aventurero no está utilizando los medios de instalación oficiales de Gentoo.
Ahora que el fichero stage está desempaquetado, continúe con Configurar las opciones de compilación.
Configurar las opciones de compilación
Introducción
Es posible optimizar Gentoo configurando un par de variables que afectarán al comportamiento de Portage, el gestor de paquetes oficialmente soportado por Gentoo. Todas estas variables se pueden fijar como variables de entorno (usando export) pero eso no sería permanente. Para mantener su configuración, Portage lee desde /etc/portage/make.conf, un archivo de configuración para Portage.
Una lista comentada de todas las posibles variables puede encontrarse en /mnt/gentoo/usr/share/portage/config/make.conf.example. Para una instalación de Gentoo correcta se deben configurar sólo las variables que se mencionan a continuación.
Use su editor favorito (en esta guía usaremos nano) para modificar las variables de optimización que discutiremos en adelante.
root #
nano -w /mnt/gentoo/etc/portage/make.conf
Observando el archivo make.conf.example es obvio cual es su estructura: las líneas que son comentarios comienzan con "#", el resto definen variables usando la sintaxis VARIABLE="contenido". Varias de estas variables se discuten a continuación.
CFLAGS y CXXFLAGS
Las variables CFLAGS y CXXFLAGS definen los parámetros de optimización para los compiladores GCC de C y de C++ respectivamente. Aunque generalmente se definen aquí, obtendrá el máximo rendimiento si optimiza estos parámetros para cada programa por separado. La razón es que cada programa es diferente. Sin embargo, no es manejable definir estos indicadores en el archivo make.conf.
En make.conf deberá definir los parámetros de optimización que se ajusten a su sistema de forma general. No coloque parámetros experimentales en esta variable; un nivel demasiado alto de optimización puede hacer que los programas se comporten mal (cuelgues, o incluso peor, funcionamientos erróneos).
No explicaremos todas las opciones posibles de optimización. Si quiere conocerlas todas, lea los Manuales en línea GNU o la página información de gcc (info gcc sólo es válido en un sistema Linux funcional). El archivo make.conf.example también contiene una gran cantidad de ejemplos e información; no olvide leerlo también.
El primer parámetro es -march=
o -mtune=
, el cual especifica el nombre de la arquitectura destino. Las posibles opciones se describen en el archivo make.conf.example (como comentarios). Un valor frecuentemente utilizado es native ya que indica al compilador que seleccione la arquitectura destino del sistema actual (en el que se está realizando la instalación).
Seguida de esta, está el parámetro -O
(que es una O mayúscula, no un cero), que especifica la clase optimización de gcc. Las clases posibles son s (para tamaño optimizado), 0 (cero - para no optimizar), 1, 2 o incluso 3 para la optimización de velocidad (cada clase tiene los mismos parámetros que la anterior, más algunos extras). -O2
es la recomendación por defecto. Es conocido que -O3
provoca problemas cuando se utiliza globalmente en el sistema, por esto se recomienda quedarse con -O2
.
Otros parámetros de optimización bastante populares son los -pipe
(usar tuberías en lugar de archivos temporales para la comunicación entre las diferentes etapas de compilación). No tiene ningún impacto sobre le código generado, pero usa más memoria. En sistemas con poca memoria, el proceso del compilador podría ser terminado. En ese caso, no use este parámetro.
Usar -fomit-frame-pointer
(el cual no mantiene el puntero de marco en un registro para aquellas funciones que no lo necesiten) podría tener graves repercusiones en la depuración de errores en aplicaciones.
Cuando defina las variables CFLAGS y CXXFLAGS, debería combinar varios parámetros de optimización en una sóla cadena. Los valores por defecto que trae el archivo stage3 una vez descomprimido deberían ser suficientemente buenos. Lo siguiente es simplemente un ejemplo:
# Configuraciones del compilador a aplicar en cualquier lenguaje COMMON_CFLAGS="-march=native -O2 -pipe" # Use los mismos valores en ambas variables CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${CFLAGS}"
A pesar de que el artículo sobre la optimización de GCC contiene más información sobre cómo las distintas opciones de compilación pueden afectar a un sistema, el artículo sobre CFLAGS seguras puede resultar más práctico para los que se inician en la optimización de su sistema.
MAKEOPTS
La variable MAKEOPTS define cuántas compilaciones en paralelo deben realizarse cuando se instala un paquete. Una buena elección es el número de CPU,s (o núcleos de CPU) en el sistema mas uno, aunque esta guía no es siempre perfecta.
El uso de una gran cantidad de trabajos puede afectar significativamente el consumo de memoria. Una buena recomendación es tener al menos 2 GiB de RAM para cada trabajo especificado (por ejemplo,
-j6
requiere al menos 12 GiB). Para evitar quedarse sin memoria, reduzca el número de trabajos para que se ajusten a la memoria disponible.Cuando se utilizan emerges en paralelo (
--jobs
), la cantidad efectiva de trabajos ejecutados puede crecer exponencialmente (hasta hacer que los trabajos se multipliquen por los trabajos de los emerges). Esto se puede solucionar ejecutando una configuración distcc solo para localhost que limitará el número de instancias del compilador por host.
MAKEOPTS="-j2"
Preparados, listos, ¡ya!
Actualice /mnt/gentoo/etc/portage/make.conf con sus propios parámetros y guarde los cambios (los usuarios de nano deben usar Ctrl + x).
Continúe con Instalar el sistema base de Gentoo.