Guía de Instalación Gentoo AMD64
Guía de Instalación Gentoo AMD64
Contenido:
Instalar Gentoo
En esta parte aprenderá cómo instalar Gentoo en su sistema.
1. Acerca de la instalación Gentoo Linux
Este capítulo presenta el método de instalación documentado en este manual.
2. Escoger el medio de instalación adecuado
Se puede instalar Gentoo de muchas maneras diferentes. Este capítulo explica cómo instalar Gentoo usando el CD
de Instalación mínimo.
3. Configuración de su red
Para poder bajar las fuentes más actuales, debe configurar la red.
4. Preparar los discos
Para poder instalar Gentoo, deberá crear las particiones necesarias. Este capítulo describe como particionar un disco
para uso futuro.
5. Instalar los archivos de instalación Gentoo
Las instalaciones Gentoo funcionan con un archivo stage3. En este capítulo describimos como descomprimir el
archivo stage3 y configurar Portage.
6. Instalar el sistema base de Gentoo
Luego de instalar y configurar el stage3, el resultado eventual es que tiene un sistema base Gentoo a su disposición.
Este capítulo describe cómo progresar hacia este estado.
7. Configurar el núcleo
El núcleo Linux es el eje de cada distribución. Este capítulo explica cómo configurarlo.
8. Configurar su sistema
Hará falta modificar algunos archivos importantes de configuración. En este capítulo pasaremos revista a estos
archivos y explicaremos como proceder.
9. Instalar las herramientas necesarias para el sistema
1 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Tal como hemos mencionado anteriormente, Gentoo se trata de poder escoger. En este capítulo ayudaremos a
escoger e instalar algunas herramientas importantes.
10. Configurar el gestor de arranque
En este capítulo describiremos el gestor de arranque GRUB y será guiado a través del proceso de configuración de
GRUB a sus necesidades.
11. Finalizar la instalación de Gentoo
Estamos casi listos. Crearemos uno (o más) usuarios para el sistema.
12. ¿Y ahora qué?
Y ahora que tenemos un sistema Gentoo, ¿qué viene ahora?
Trabajar con Gentoo
Aprenda cómo trabajar con Gentoo: instalación de software, configuración de variables, cambiar el comportamiento del
sistema Portage, etc.
1. Introducción al sistema Portage
Este capítulo explica los pasos "sencillos" que un usuario definitivamente necesita saber para mantener el software
en su sistema.
2. Los ajustes USE
Los ajustes USE son un aspecto muy importante de Gentoo. En este capítulo, aprenderá a trabajar con ellos y
entender cómo los ajustes USE interactúan con su sistema.
3. Características de Portage
Descubra las características de Portage, como el soporte para la compilación distribuida, ccache y más.
4. Guiones de inicio
Gentoo usa un formato especial de guiones de inicio, que, entre otras características permite decisiones basadas en
dependencias y guiones virtuales. Este capítulo explica todos estos aspectos y explica cómo trabajar con estos
guiones.
5. Variables de entorno
Con Gentoo puede fácilmente manejar las variables de entorno del sistema. Este capítulo explica como hacerlo,
además de describir las variables usadas más frecuentemente.
Trabajar con Portage
"Trabajar con Portage" cubre en profundidad la herramienta de manejo de software de Gentoo, el sistema Portage.
1. Archivos y directorios
Una vez que quiera conocer a Portage en profundidad, hará falta saber donde almacena sus archivos y datos.
2. Configuración por medio de variables
Portage es completamente configurable por medio de diversas variables que pueden ajustarse en un archivo de
configuración o como variable de entorno.
3. Mezcla de ramales de software
Gentoo permite el uso de software en distintos ramales, dependiendo de su estabilidad o de su soporte por
arquitectura. "Mezcla de ramales de software" informa como estos estos pueden ser configurados y como redefinir
esta separación de manera individual.
4. Herramientas adicionales de Portage
Portage trae algunas herramientas adicionales que sirven para mejorar su experiencia con Gentoo aún más. Siga
adelante para descubrir como usar dispatch-conf y otras herramientas.
5. Divergir del árbol oficial
"Divergiendo del árbol oficial" proporciona algunos trucos acerca de como usar su propio árbol Portage, como
sincronizar solo las categorías que le interesa, inyección de paquetes y más.
6. Características avanzadas de Portage
A medida que transcurre el tiempo, Portage evoluciona y madura cada vez más. Continuamente se agrega
funcionalidad adicional - en gran parte dirigida hacia usuarios avanzados. Esta sección detallará algunas de estas
características específicas.
Configuración de Redes en Gentoo
Una guía amplia para trabajar con redes en Gentoo.
1. Iniciándonos
Esta es una guía para poner a funcionar rápidamente el interfaz de red en la mayoría de situaciones comunes.
2. Configuración Avanzada
Aquí aprenderemos como funciona la configuración. Debe conocerlo antes de aprender sobre redes modulares.
3. Trabajo Modular con Redes
Gentoo permite un trabajo flexible con la red - aquí explicamos como escoger diferentes clientes DHCP, configurar la
unión de interfaces, hacer puentes, redes virtuales (VLANs) y más.
4. Redes Inalámbricas
Las redes inalámbricas pueden ser truculentas. ¡Esperamos ponerlas a funcionar!
5. Agregar Funcionalidad
Si quiere aventurarse, puede agregar sus propias funciones para trabajar con redes.
6. Manejo de Redes
Para usuarios de computadores portátiles o los que mudan su computador de red en red.
2 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
A. Instalar Gentoo
1. Acerca de la instalación Gentoo Linux
1.a. Introducción
¡Bienvenido!
Primero de todo, bienvenido/a a Gentoo. Está a punto de entrar en un mundo de flexibilidad y rendimiento. Gentoo es la
flexibilidad en sí. Cuando instalas Gentoo, esto queda claro varias veces, puede elegir cuánto quieres compilar tu mismo, cómo
instalar Gentoo, que gestor de registro prefieres, etc.
Gentoo es una metadistribución moderna, rápida, con un diseño limpio y flexible. Gentoo está hecha alrededor del software libre
y no oculta a sus usuarios qué hay bajo la alfombra. Portage, el sistema de mantenimiento de paquetes que usa Gentoo, está
escrito en Python, por lo que el código fuente es fácil de visualizar y modificar. El sistema de paquetes de Gentoo se basa en el
código fuente (aunque también soporta paquetes precompilados) y para configurar Gentoo se utilizan archivos de texto plano.
En otras palabras, abierto a cualquiera.
Es muy importante que entienda que la flexibilidad es lo que hace que Gentoo funcione. Intentamos no forzarle a entrar en algo
que no le guste. Si cree en algún momento que lo estamos haciendo mal, por favor, notifíquenoslo.
La instalación de Gentoo puede verse como un procedimiento de 10 pasos, los correspondientes a los capítulos 2 a 11. Cada
paso da como resultado un cierto estado:
Cuando se le pide una elección especial, intentamos explicar lo mejor posible los pros y contras. También propondremos una
opción por defecto, identificada con "Por defecto:" en el título. Las otras posibilidades se titulan "Alternativa:". Pero no crea que
la opción por defecto es la que recomendamos. Es la que pensamos que la mayoría de usuarios van a utilizar.
Algunas veces se puede seguir un paso opcional. Estos pasos son marcados como "Opcional: " y no son necesarios para instalar
Gentoo. Sin embargo, algunos pasos opcionales dependen de una decisión tomada previamente. Le informaremos cuando se dé
el caso, tanto cuando tome la decisión, como cuando se describa el paso opcional.
Puede instalar Gentoo de diferentes formas. Puede descargar e instalar uno de nuestros CDs de instalación, desde otra
distribución, desde un CD de arranque ajeno a Gentoo (como Knoppix), desde un arranque por red, desde un disquete de
arranque,etc.
Este documento abarca la instalación utilizando un CD de instalación de Gentoo o, en algunos casos, instalación por red. La
instalación asume que quiere instalar la última versión de cada paquete.
Nota: Para encontrar ayuda acerca de otros procedimientos de instalación, incluyendo el uso de CDs ajenos a Gentoo, por favor, lea nuestra
Métodos alternativos de instalación.
También ofrecemos un documento sobre Consejos y trucos en la instalación de Gentoo que también puede ser útil.
¿Problemas?
Si tiene algún problema con la instalación (o con el documento de instalación), por favor, visite nuestro Sistema de seguimiento
de errores y compruebe si el error es conocido. Si no lo es, por favor cree un informe sobre él para que podamos encargarnos de
él. No tenga miedo de los desarrolladores que están asignados a sus informes, normalmente no se comen a nadie.
Acuérdese de que, a pesar de que el documento que está leyendo es específico de la arquitectura, éste también contiene
referencias a otras arquitecturas. Esto es así porque el manual de Gentoo tiene partes extensas de código que son comunes para
todas las arquitecturas (para evitar duplicar esfuerzos y el desgaste de los recursos de desarrollo). Intentaremos reducir esto al
mínimo para evitar la confusión.
3 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si no está seguro de que el problema es de usuario (algún error que haya cometido al despistarse y no leer la documentación
cuidadosamente) o un problema de software (algún error que ha cometido despistándose al probar la instalación y/o
documentación), le invitamos a entrar en #gentoo-es en irc.freenode.net. Por supuesto, es bienvenido de todas formas ya que
nuestro canal cubre todo el espectro de Gentoo :)
Hablando de esto, si tiene cualquier pregunta concerniente a Gentoo, eche un vistazo a las Preguntas Frecuentes, disponibles en
la Wiki de Gentoo. También las FAQs en nuestros foros.
Introducción
Antes de empezar, enumeraremos los requerimientos de hardware necesarios para instalar con éxito Gentoo en su máquina.
Requisitos de Hardware
Minimal CD LiveDVD
CPU Cualquier AMD64 CPU or EM64T CPU (Core 2 Duo y procesadores Quad son EM64T)
También debería revisar la Página del Proyecto Gentoo AMD64 antes de proceder.
El CD de instalación mínimo es un CD arrancable que contiene un entorno Gentoo autocontenido. Permite arrancar Linux desde
el CD. Durante el proceso de arranque se detecta el hardware y se cargan los controladores apropiados.
Ocasionalmente, el proyecto Gentoo Ten realiza un DVD especial que se puede utilizar también para instalar Gentoo. Las
instrucciones más abajo en este capítulo tratan acerca del CD mínimo de instalación por lo que éstos puede variar un poco. Sin
embargo, el LiveDVD (o cualquier otro entorno Linux arrancable) permite obtener un símbolo de espera de órdenes de root,
invocando simplemente sudo su - o sudo -i en un terminal.
Un archivo comprimido stage3 contiene un entorno Gentoo mínimo, que permite continuar la instalación de Gentoo con las
instrucciones de este manual. Anteriormente, el manual de Gentoo describía la instalación utilizando uno de los tres archivos de
stage. Aunque Gentoo sigue ofreciendo los archivos stage1 y stage2, el método de instalación oficial utiliza el archivo stage3. Si
está interesado en llevar a cabo la instalación de Gentoo utilizando stage1 o stage2, por favor lea las FAQ de Gentoo en ¿Cómo
instalo Gentoo usando un tarball Stage1 o Stage2?
Ha elegido usar un CD de instalación Gentoo. Empezaremos por descargar y grabar el CD que eligió. Ya hablamos anteriormente
del CD de instalación, pero ¿dónde podemos encontrarlo?
Puede descargar el CD de instalación desde cualquiera de nuestros servidores réplica. El CD de instalación se encuentra en el
directorio releases/amd64/autobuilds/current-iso/.
Dentro del directorio encontrará el archivo ISO. Este archivo es una imágen de CD completa que puede grabar en un CD-R.
Si tiene dudas de que el archivo que se ha descargado está corrupto, puede verificar su suma de control SHA-2 y compararlo con
la suma SHA-2 que nosotros proporcionamos (por ejemplo, install-amd64-minimal-<release>.iso.DIGESTS). Puede
comprobar la suma SHA-2 con la herramienta sha512sum en Linux/Unix o la calculadora de sumas de comprobación para
Windows.
Nota: La herramienta intentará verificar las sumas de comprobación de la lista, incluso si la suma se realiza con un algoritmo diferente. Por
lo tanto, la salida de la orden debería mostrar tanto éxitos en la comprabación (para sumas SHA) como fracasos (para otras sumas). Se
debería mostrar al menos un OK para cada fichero.
4 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Nota: Si obtiene un mensaje que le indica que no se encontró ninguna suma de comprobación SHA con el formato adecuado, eche un
vistazo al fichero DIGESTS para comprobar que sumas de comprobación están soportadas.
Otra manera de verificar la validez de la descarga es usar GnuPG para revisar la firma criptográfica que proporcionamos (el
nombre del archivo termina con .asc). Descargue el archivo de firma y obtenga las claves públicas cuyos identificadores puede
encontrar en el sitio del proyecto de ingeniería de entregas (releases).
(... Sustituya los identificadores de las claves por aquéllos mencionados en el sitio de ingeniería de entregas ...)
$ gpg --keyserver subkeys.pgp.net --recv-keys 96D8BF6D 2D182910 17072058
Para grabar el o los ISOs descargados, debe seleccionar grabar/quemar sin formato. Cómo hacerlo depende del programa. Aquí
hablaremos de cdrecord y K3B; puede encontrar mayor información en las Preguntas de Uso Frecuentes sobre Gentoo.
Con cdrecord, simplemente escriba cdrecord dev=/dev/sr0 (reemplace /dev/sr0 con la ruta de su unidad CD-RW).
Con K3B, seleccione Herramientas > Grabar Imagen CD. Luego busque el archivo ISO dentro del área 'Imagen a Grabar'.
Por último presione el botón comenzar.
Arrancar el CD de instalación
Una vez que ha grabado sus CDs de instalación, es hora de arrancarlos. Retire todos los CD de sus unidades, reinicie el sistema y
entre en el BIOS. Esto se logra por lo general oprimiendo la tecla Supr, F1 o Esc, dependiendo del BIOS. Dentro del BIOS, cambie
el orden de arranque para que intente arrancar primero desde el CD-ROM. Regularmente se encuentra dentro de "CMOS Setup".
Si no lo hace, su sistema arrancará desde el disco duro e ignorará el CD-ROM.
Coloque el CD de instalación en la unidad CD-ROM y reinicie. Deberá ver un símbolo de espera de órdenes. En esta pantalla
puede oprimir la tecla Intro para empezar el proceso de arranque con las opciones predefinidas, o arrancar el CD de instalación
con opciones personales especificando un núcleo seguido por las opciones de arranque y luego oprimir la tecla Intro.
Cuando se muestra el símbolo de espera de órdenes, se tiene la opción de mostrar los núcleos disponibles (F1) y las opciones de
inicio (F2). Si no se realiza ninguna selección en 15 segundos (sea mostrar información o arrancar un núcleo) el LiveDVD optará
por iniciar desde disco. Esto permite a las instalaciones reiniciar e intentar usar el entorno instalado sin tener que quitar el CD de
su bandeja (algo que será de gran utilidad en instalaciones remotas).
Ahora que hablamos de especificar un núcleo, en nuestro CD de instalación, ofrecemos varios de ellos. El núcleo por defecto es
gentoo. Otros núcleos son específicos para algunas necesidades de hardware y las variantes -nofb deshabilitarán el
framebuffer.
Núcleo Descripción
gentoo Núcleo por defecto con soporte para CPUs K8 (incluyendo soporte NUMA) y EMT64 CPUs.
gentoo-nofb Igual que gentoo pero sin soporte para framebuffer
memtest86 Para verificar su memoria RAM para errores
También puede pasarle opciones al núcleo. Estas representan configuraciones opcionales que puede activar o desactivar.
Opciones hardware:
acpi=on
Esta opción carga ACPI y además provoca que el demonio acpid arranque cuando se inicia el CD. Esto solamente es
necesario si nuestro sistema necesita ACPI para funcionar correctamente. No es necesario para el soporte Hyperthreading
(Multihilo).
acpi=off
Desactiva ACPI por completo. Esto es útil en algunos sistemas antiguos, y también es un requisito para utilizar APM. Esto
deshabilita el soporte Hyperthreading de su procesador.
console=X
Activa el acceso a una consola serie desde el CD. La primera opción es el dispositivo, normalmente ttyS0 en x86, seguido
de las opciones de conexión separadas por comas. Las opciones por defecto son: 9600,8,n,1.
dmraid=X
Permite el envío de opciones al dispositivo de mapeo del subsistema RAID. Las opciones deben ir entre comillas dobles.
doapm
5 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Carga el soporte para el controlador APM. Necesita que también se utilice acpi=off.
dopcmcia
Carga el soporte para el hardware PCMCIA y Cardbus y además provoca que cardmgr de pcmcia se arranque al iniciar el
CD. Esto solamente es necesario cuando arranque desde un dispositivo PCMCIA/Cardbus.
doscsi
Esto carga el soporte de la mayoría de controladoras SCSI. También es necesario para casi todos los dispositivos USB, ya
que utilizan el subsistema SCSI del núcleo.
sda=stroke
Esto le permite particionar el disco entero aunque su BIOS se incapaz de gestionar discos grandes. Esta opción solamente
se utiliza para ordenadores con BIOS antiguas. Sustituya sda por el dispositivo que necesite esta opción.
ide=nodma
Fuerza la desactivación de DMA en el núcleo y es necesario para algunos chipsets IDE y también para algunos drivers de
CDROM. Si el sistema sufre problemas leyendo desde el CDROM IDE, pruebe esta opción. Esto evita también que la
configuración de hdparm se ejecute.
noapic
Desactiva el controlador de interrupciones APIC (Advanced Programmable Interrupt Controller) que está presente en placas
nuevas. Se sabe que provoca algunos errores con el hardware antiguo.
nodetect
Desactiva toda la detección automática que realiza el CD, incluyendo la detección de dispositivos y DHCP. Esto es útil para
depurar errores cuando falla un CD o un driver.
nodhcp
Deshabilita DHCP en las tarjetas de red detectadas. Esto es útil para redes únicamente con direcciones estáticas.
nodmraid
Desactiva el soporte para el dispositivo de mapeo RAID, como por ejemplo el que se utiliza en placas con controladores
RAID IDE/SATA.
nofirewire
Desactiva la carga de módulos Firewire. Solamente es necesario si el hardware Firewire está causando algún tipo de
problema con el arranque del CD.
nogpm
Desactiva el soporte gpm de ratón para consola.
nohotplug
Desactiva la carga de los guiones de inicio de hotplug y coldplug durante el arranque. Esto es útil para depurar los fallos en
el CD o el driver.
nokeymap
Deshabilita la selección del mapa de teclado que se emplea para seleccionar los teclados apropiados que no son US.
nolapic
Deshabilita el APIC local en los núcleos monoprocesador.
nosata
Desactiva la carga de los módulos Serial ATA. Esto es útil si el sistema tiene problemas con el subsistema SATA.
nosmp
Desactiva SMP, o Multiproceso Simétrico (Symmetric Multiprocessing), en los núcleos con SMP activo. Esto es útil para la
depuración de errores relacionados con SMP en algunos drivers y placas base.
nosound
Desactiva el soporte de sonido y la configuración del volumen. Útil para sistemas donde el sonido cause problemas.
nousb
Desactiva la carga automática de módulos USB. Útil para depurar errores relacionados con USB.
slowusb
Añade algunas pausas adicionales en el proceso de arranque para los CDROMs USB más lentos, como el IBM BladeCenter.
Administración de Volúmenes/Dispositivos:
dolvm
Activa el soporte para la administración lógica de volúmenes.
Otras opciones:
debug
Activa el código de depuración. Esto podría ser un poco lioso, ya que muestra muchos datos por pantalla.
docache
Esto guarda en caché la parte completa del entorno de ejecución del CD en RAM, lo cual le permite desmontar /mnt/cdrom
y montar otro CDROM. Esta opción requiere que disponga (al menos) del doble de memoria RAM libre que el tamaño que
tiene CD.
doload=X
Esto indica al ramdisk inicial que cargue el módulo que se indica así como las dependencias. Sustituya X por el nombre del
módulo.
Se pueden indicar varios módulos en una lista separados por medio de comas.
dosshd
Inicia sshd durante el arranque, lo cual es muy útil para instalaciones remotas o sin atención permanente.
passwd=foo
Configura lo que venga después del igual como la contraseña de root, la cual será necesaria para dosshd ya que
desactivamos la contraseña de root por defecto.
noload=X
Esto indica al ramdisk inicial que no realice la carga de un determinado módulo que podría estar causando problemas. La
6 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Nota: El CD comprobará las opciones "no*" antes que las opciones "do*", así que puede sobreescribir cualquier opción en el orden exacto en
que las especifique.
Ahora arranque su CD, seleccione un núcleo (si no está contento con el núcleo predeterminado gentoo) y las opciones de
arranque. Por ejemplo, aquí le mostramos como arrancar el núcleo gentoo, con el parámetro dopmcia:
Después verá otra pantalla de arranque y una barra de progreso. Si está instalando Gentoo en un sistema con un teclado no
americano, asegúrese de pulsar Atl-F1 para cambiar al modo "verbose" y seguir el cursor. Si no se hace ninguna selección en 10
segundos, la opción predefinida (teclado americano) será la utilizada y el proceso de arranque continuará. Cuando se complete
el proceso de arranque, automáticamente se registrará en el Gentoo Linux "Live" como "root", el super usuario. Tendrá el
indicador del root ("#") en la consola actual y también podrá cambiarse a otras consolas presionando Alt-F2, Alt-F3 y Alt-F4. Para
regresar a la consola en la que empezó presione Alt-F1.
Cuando arranca el CD de instalación, éste tratará de detectar todos los dispositivos hardware y cargar los módulos apropiados
en el núcleo para dar soporte a ese hardware. En la gran mayoría de casos, hace bien su trabajo. Sin embargo, en algunos casos
puede que no cargue automáticamente los módulos del núcleo necesarios. Si falla la auto-detección PCI con algún hardware de
su sistema, trate de cargar el módulo apropiado manualmente.
En el siguiente ejemplo trataremos de cargar el módulo 8139too (que da soporte a ciertos tipos de interfaces de red):
# modprobe 8139too
Si planea darle a otras personas acceso a su entorno de instalación o si quiere platicar con alguien usando irssi sin privilegios
de root (por razones de seguridad), hará falta crear las cuentas de usuario necesarias y cambiar la contraseña de root.
# passwd
New password: (Escriba su nueva contraseña)
Re-enter password: (Escríbala de nuevo)
Para crea una cuenta de usuario, primero escribimos sus credenciales, y luego su contraseña. Se usan useradd y passwd para
estas tareas. En el siguiente ejemplo, crearemos un usuario llamado "juan".
# useradd juan
# passwd juan
New password: (Escriba la contraseña de juan)
Re-enter password: (Escriba otra vez la contraseña de juan)
Puede cambiar su identificador de usuario desde root para usar la del nuevo usuario usando su:
# su - juan
7 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si quiere ver el manual de Gentoo durante la instalación, asegúrese de haber creado una cuenta de usuario (consulte Opcional:
Cuentas de Usuarios). Luego presione Alt-F2 para ir a un nuevo terminal e ingrese al sistema.
Puede ver el manual usando links, pero solo después de haber completado el capítulo Configurar su red (de lo contrario no
podrá usar Internet para ver el documento):
# links http://www.gentoo.org/doc/es/handbook/handbook-amd64.xml
Si quiere permitir a otros usuarios el acceso a su máquina durante la instalación de Gentoo (quizá porque esos usuarios le vayan
a ayudar, o incluso que ellos realicen la instalación), necesitará crear una cuenta de usuario para éstos e incluso darles la
contraseña de root (solo si confía completamente en esos usuarios).
# /etc/init.d/sshd start
Nota: Si alguien ingresa en el sistema, se le mostrará un mensaje en el que se indica que la clave del servidor para este sistema, se necesita
confirmar (mediante la llamada huella digital). Esta situación es la esperada ya que es la primera vez que se intenta ingresar en el sistema.
Sin embargo, más tarde, cuando su sistema esté instalado y se intente ingresar en él, el cliente SSH le advertirá que la clave del servidor se
ha cambiado. Esto es debido a que ahora, de cara a SSH, estamos intentando entrar en un servidor distinto (precisamente en su nuevo
sistema Gentoo en lugar del entorno en el que está trabajando ahora). Cuando vea esta advertencia, siga las instrucciones que se dan en
pantalla para reemplazar la clave del servidor en el sistema cliente.
Para poder usar sshd, primero necesita configurar su red. Continúe en el capítulo Configurar su Red.
3. Configuración de su red
Si su sistema está conectado a una red Ethernet con un servidor DHCP, es muy probable que la configuración de red se haya
detectado automáticamente. En ese caso, debería ser capaz de trabajar con las órdenes que hacen uso de la red y que están en
el CD de instalación, son: ssh, scp, ping, irssi, wget y links, entre otras.
Si ya se ha configurado la red, la orden ifconfig debería listar algunas interfaces de red además de lo, como eth0:
# ifconfig
(...)
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
collisions:1984 txqueuelen:100
RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb)
Interrupt:11 Base address:0xe800
El nombre de la interfaz en su sistema puede diferir bastante de eth0. Los medios de instalación recientes pueden mostrar
nombres de interfaz regulares como eno0, ens1 o enp5s0. Simplemente busque la interfaz en la salida de ifconfig que tenga
una dirección IP relacionada con su red local.
A lo largo del resto de este documento, asumiremos que la interfaz se llama eth0.
Si accede a Internet a través de un proxy, podría necesitar configurar la información del proxy durante la instalación. Es muy
sencillo definir un proxy: tan solo necesita definir la variable que contiene la información del mismo.
En la mayoría de los casos, puede definir las variables usando simplemente el host del servidor. Por ejemplo, asumimos que el
proxy se llama proxy.gentoo.org y el puerto es el 8080.
8 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si su proxy requiere un nombre de usuario y una contraseña, debería usar la siguiente sintaxis para la variable:
http://nombreusuario:contraseña@proxy.gentoo.org:8080
Probar la red
Puede intentar hacer ping hacia el servidor DNS de su ISP, (que se encuentra en /etc/resolv.conf) y un sitio web a su
elección, con la intención de asegurarse de que sus paquetes llegan a la red, la resolución de nombres DNS esta funcionando
correctamente, etc ...
# ping -c 3 www.gentoo.org
¿Funciona su conexión? En ese caso, puede saltarse el resto de esta sección y continuar con Preparar los discos. De lo contrario,
mala suerte, tendrá que perseverar un poco más :)
Si la red no funciona inmediatamente, algunos medios de instalación le permitirán usar net-setup (para redes estándar o sin
cables), pppoe-setup (para usuarios de ADSL) o pptp (para usuarios de PPTP disponible para x86, amd64, alpha, ppc y ppc64).
Si su medio de instalación no contiene ninguna de estas herramientas, continúe con Configuración Manual de la Red.
Los usuarios de redes estándar deberían continuar con Por defecto: Usar net-setup
Los usuarios de ADSL deberían continuar con Alternativa: utilizar PPP
Los usuarios de PPTP deberían continuar con Alternativa: Usar PPTP
El sistema más simple de configurar una red, si no se consiguió hacerlo automáticamente, es ejecutar el guión net-setup:
# net-setup eth0
net-setup le hará algunas preguntas sobre su entorno de red cuando lo haya completado, debería disponer de una conexión de
red funcionando. Pruebe su conexión de red como se especificó anteriormente si los resultados son positivos, ¡Felicidades! Ahora
está listo para instalar Gentoo. Sáltese el resto de esta sección y continúe con Preparar los discos.
Si su conexión de red sigue sin funcionar, continúe con Configuración Manual de la Red.
Asumiendo que requiere PPPoE para conectar a Internet, los CDs de instalación (en cualquiera de sus versiones) se han pensado
para facilitarle el trabajo incluyendo ppp. Use el guión pppoe-setup proporcionado para configurar su conexión. Se le pedirá el
dispositivo de red que esta conectado a su módem adsl, su nombre de usuario y su contraseña, las IPs de sus servidores DNS y
si requiere un firewall básico o no.
# pppoe-setup
# pppoe-start
Si algo va mal, asegúrese de que ha tecleado correctamente su nombre de usuario y su contraseña mirando /etc/ppp
/pap-secrets o /etc/ppp/chap-secrets y asegúrese de que esta haciendo uso del dispositivo de red correcto. Si su dispositivo
de red no existe, deberá cargar los módulos de red apropiados. En ese caso, debería continuar con Configuración manual de la
Red dónde explicaremos como cargar los módulos de red apropiados.
Si requiere soporte PPTP, puede usar pptpclient que se incluye en nuestros CDs de instalación. Pero primero debe asegurarse
de que su configuración es correcta. Edite /etc/ppp/pap-secrets o /etc/ppp/chap-secrets ya que contiene la combinación
9 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
correcta de usuario/contraseña:
# nano -w /etc/ppp/chap-secrets
# nano -w /etc/ppp/options.pptp
Cuando todo esté listo, tan solo ejecute pptp (junto con las opciones que podría haber configurado en options.pptp) para
conectar al servidor:
Cuando el CD de instalación arranca, intenta detectar todos sus dispositivos hardware y carga los módulos del núcleo
(controladores) apropiados para darles soporte. En la gran mayoría de los casos, hace un muy buen trabajo. No obstante, en
algunos casos, puede no cargar automáticamente los módulos del núcleo que necesita.
Si net-setup o pppoe-setup fallaron, entonces puede asumir sin ningún riesgo que su tarjeta de red no se encontró en el acto.
Esto significa que tendrá que cargar los módulos del núcleo apropiados manualmente.
Para descubrir qué módulos del núcleo proporcionamos para la red, use ls:
# ls /lib/modules/`uname -r`/kernel/drivers/net
Si encuentra un controlador para su tarjeta de red, use modprobe para cargar el módulo del núcleo:
Para confirmar si su tarjeta de red se detecta ahora, use ifconfig. Una red detectada debería mostrar algo como lo siguiente
(en este caso eth0 es solo un ejemplo):
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
BROADCAST NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
# ifconfig eth0
eth0: error fetching interface information: Device not found
Los nombres de interfaces de red disponibles en su sistema se pueden mostrar listando el sistema de ficheros /sys:
# ls /sys/class/net
dummy0 eth0 lo sit0 tap0 wlan0
En el ejemplo de arriba, se encontraron seis interfaces de red. La interfaz eth0 es, seguramente, un adaptador Ethernet
(cableado), mientras que wlan0 es el interfaz inalámbrico.
Asumiendo que ya se tiene disponible una tarjeta de red detectada, puede reintentar net-setup o pppoe-setup otra vez (que
deberían funcionar ahora), pero para los que tengan problemas, explicaremos como configurar su red manualmente.
10 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Usar DHCP
DHCP (Protocolo de Configuración Dinámica de Anfitrión) hace posible recibir automáticamente su información de red (Dirección
IP, máscara de red, dirección de broadcast, pasarela, servidores de nombres etc.). Esto solo funciona si dispone de un servidor
DHCP en su red (o si su proveedor le ofrece servicio DHCP). Para conseguir que su interfaz de red reciba esta información
automáticamente use dhcpcd:
# dhcpcd eth0
Algunos administradores de red requieren que utilice el
nombre del equipo y el dominio que proporciona el servidor DHCP.
Si es el caso, utilice
# dhcpcd -HD eth0
Si esto funciona (pruebe a hacer ping a algún servidor en Internet, como Google), entonces lo tiene todo configurado y listo para
continuar. Sáltese el resto de esta sección y continúe con Preparar los Discos.
Nota: Existe soporte para iwconfig en CDs de instalación para las arquitecturas x86, amd64 y ppc. Todavía puede conseguir que sus
extensiones funcionen siguiendo las instrucciones del proyecto linux-wlan-ng.
Si está empleando una tarjeta inalámbrica (802.11), quizá necesite configurar sus opciones antes de ir más allá. Para revisar la
configuración inalámbrica actual de su tarjeta, puede utilizar iwconfig. Al ejecutar iwconfig se debería mostrar algo como esto:
# iwconfig eth0
eth0 IEEE 802.11-DS ESSID:"GentooNode"
Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84
Nota: El nombre de dispositivo de algunas tarjetas de red inalámbricas puede ser wlan0 o ra0 en lugar de eth0. Ejecute iwconfig sin más
parámetros para determinar cual es el nombre de dispositivo correcto.
La mayoría de usuarios, solamente tendrá que modificar dos configuraciones, el ESSID (Nombre de red inalámbrica) o la clave
WEP. Si el ESSID y la dirección del Punto de Acceso mostradas son correctas y el Punto de Acceso y su máquina no están
utilizando WEP, su red inalámbrica está funcionando. Si necesita cambiar su ESSID, o añadir una clave WEP, puede utilizar las
siguientes órdenes:
Nota: Si la red inalámbrica está configurada para usar claves WPA o WPA2, tendrá que usar wpa_supplicant. Para más información acerca
de la configuración de redes inalámbricas en Gentoo Linux, por favor lea el capítulo Redes Inalámbricas del Manual Gentoo.
Listado de Código 3.8: Cambiar ESSID y/o añadiendo una clave WEP
Puede volver a comprobar la configuración inalámbrica utilizando iwconfig. Una vez que tenga la conexión funcionando, puede
continuar configurando las opciones de red de nivel IP como se describe en la siguiente sección (Entender la terminología de red)
o utilizar la herramienta net-setup como hemos descrito anteriormente.
Nota: Si conoce su dirección IP, dirección de broadcast, máscara de red y los servidores de nombres, entonces puede saltarse esta
11 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si todo lo anterior falla, tendrá que configurar su red manualmente. No tenga miedo, está lejos de ser difícil. Pero vamos a
explicarle ciertos conceptos de red que necesitará para ser capaz de configurar su red satisfactoriamente. Cuando haya leído
esto, conocerá qué es una pasarela, para que sirve una máscara de red, como se forma una dirección de broadcast y porqué
necesita servidores de nombres.
En una red los hosts están identificados por su dirección IP (dirección del Protocolo de Internet). Tal dirección es una combinación
de cuatro números entre 0 y 255. Bien, como mínimo así es como las percibimos. En realidad, tal dirección IP consiste de 32 bits
(unos y ceros). Vamos a ver un ejemplo:
Cada dirección IP es única para ese host, tan lejos como redes accesibles estén a su disposición (por ejemplo, todos los hosts a
los que se pueda conectar, deben tener direcciones IP únicas). Para ser capaz de hacer la distinción entre hosts dentro de una
red, y hosts fuera de una red, la dirección IP está dividida en dos partes: la parte de red y la parte de host.
La separación esta anotada en la máscara de red, un conjunto de unos seguidos de un conjunto de ceros. La parte de la IP que
quedan enmascarados sobre los unos es la parte de red, la otra es la parte de host. Como es normal, la máscara de red, puede
ser anotada como una dirección IP.
En otras palabras, 192.168.0.14 es parte de nuestra red de ejemplo, pero 192.168.1.2 no lo es.
La dirección de broadcast es una dirección IP con la misma parte de red que su red, pero con solo unos como parte de host. Cada
host en su red escucha esta dirección IP. Esto verdaderamente sirve para la transmisión de paquetes.
Para ser capaz de navegar por Internet, debería conocer qué host comparte la conexión a Internet. Este host se llama la
pasarela. Puesto que es un host estándar, tiene direcciones IP estándar (por ejemplo 192.168.0.1).
Anteriormente afirmamos que cada host tiene su propia dirección IP. Para ser capaz de alcanzar este host por un nombre (en vez
de la dirección IP) necesitará un servicio que traduzca un nombre (como dev.gentoo.org) a una dirección IP (como 64.5.62.82).
Tal servicio se conoce como servicio de nombres. Para usar tal servicio, debe definir los servidores de nombres necesarios en
/etc/resolv.conf.
En algunos casos, su pasarela también sirve como servidor de nombres. De otro modo, tendrá que introducir los servidores de
nombres facilitados por su ISP.
Configurar su red consiste en tres pasos. Primero, nos asignamos una dirección IP usando ifconfig. Entonces configuraremos el
enrutamiento hacia la pasarela usando route. Por último, acabaremos situando las IPs de los servidores de nombres en
/etc/resolv.conf.
12 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Para asignar una dirección IP, necesitará su dirección IP, la dirección de broadcast y la mascara de red. Entonces ejecute la
siguiente orden, sustituyendo ${IP_ADDR} con su dirección IP, ${BROADCAST} con su dirección de broadcast y ${NETMASK} con su
máscara de red:
Ahora configure la ruta usando route. Substituya ${GATEWAY} con la dirección IP de su pasarela:
Ahora abra /etc/resolv.conf con su editor favorito (en nuestro ejemplo, usaremos nano):
# nano -w /etc/resolv.conf
Ahora complete con su(s) servidor(es) de nombres usando la siguiente plantilla. Asegúrese que substituye ${NAMESERVER1} y
${NAMESERVER2} por las direcciones apropiadas de servidor de nombres:
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
Eso es. Ahora compruebe su red haciendo ping a algún servidor de Internet (como Google). Si funciona, felicitaciones entonces.
Ahora está listo para instalar Gentoo. Continúe con Preparar los Discos.
Dispositivos de Bloque
Examinaremos de forma detallada los aspectos de Gentoo Linux así como Linux en general que tengan que ver con discos,
sistemas de ficheros de Linux, particiones y dispositivos de bloque. Una vez esté familiarizado con las entrañas de los discos y
sistemas de ficheros, le guiaremos a través del proceso de creación de particiones y sistemas de ficheros de tu instalación
Gentoo Linux.
Para empezar, explicaremos el término dispositivos de bloque. Quizás el dispositivo de bloque más conocido es el que representa
la primera unidad de disco llamada /dev/sda. Las unidades SCSI y Serial ATA son etiquetadas mediante /dev/sd*; incluso las
unidades IDE son conocidas como /dev/sd* con el nuevo framework libata del kernel. Si está utilizando el antigo framework de
unidades, entonces la primera unidad IDE será /dev/hda.
Los dispositivos de bloque mencionados anteriormente representan una interfaz abstracta de disco. Las aplicaciones pueden
hacer uso de estas interfaces para interactuar con el disco duro de la máquina sin importar el tipo de unidad que tienes: IDE,
SCSI, o cualquier otra. La aplicación puede simplemente dirigirse al almacenamiento en el disco como a una serie de bloques de
acceso aleatorio de 512-bytes situados de forma contigua.
Particiones
Aunque teóricamente es posible utilizar el disco duro completo para albergar la instalación Linux, esto casi nunca se hace. En su
lugar, los dispositivos de bloque enteros se dividen en partes más manejables y pequeñas. En los sistemas éstas se llaman
particiones. Actualmente hay dos tecnologías estándar de particionamiento en uso: MBR y GPT.
La configuración MBR (Master Boot Record o Registro Maestro de Arranque) utiliza identificadores de 32 bits para el sector de
comienzo y longitud de las particiones y ofrece soporte para tres tipos de particiones: primaria, extendida y lógica. Las
particiones primarias almacenan su información en el propio registro maestro de arranque, un lugar muy pequeño (normalmente
512 bytes) al comienzo del disco. Debido a esta limitación en el tamaño, solo se permiten cuatro particiones primarias (por
ejemplo desde /dev/sda1 hasta /dev/sda4).
Para poder ofrecer más particiones, una de las particiones primarias se puede marcar como partición extendida. Esta partición
puede contener particiones lógicas (particiones dentro de otra partición).
Cada partición está limitada a un tamaño de 2 TB (debido a los identificadores de 32 bits). Además, la configuración MBR no
ofrece una copia de respaldo del MBR, por lo que si una aplicación escribe información en el MBR, toda la información sobre
particiones se pierde.
La configuración GPT (GUID Partition table o Tabla de Particiones GUID) utiliza identificadores de 64 bits para las particiones. El
lugar donde se almacena la información sobre particiones e mayor que los 512 utilizados en la configuración MBR, y además no
hay limitación en el número de particiones. Por otro lado el tamaño de cada partición es bastante mayor (al menos 8ZB, sí,
zetabytes).
13 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Cuando se utiliza UEFI (en lugar de BIOS) como interfaz de software de sistema entre el sistema operativo y el firmware, se
requiere el uso de GPT ya que se podrían producir problemas de compatibilidad si se utiliza MBR.
GPT también tiene la ventaja de ofrecer una copia de respaldo GPT al final del disco, que puede utilizarse para recuperarla en
caso de que se produzcan daño en la GPT primaria que se almacena al comienzo del disco. GPT también mantiene sumas de
comprobación CRC32 para detectar errores en las tablas de particiones y en la cabecera.
Al leer la descripción de arriba, se puede pensar que el uso de GPT es la opción recomendada. Sin embargo hay algunas
cuestiones que se deben tener en cuenta.
El uso de GPT en una computadora basada en BIOS funciona, pero no se puede realizar un arranque dual con un sistema
operativo Microsoft Windows. La razón es que Microsoft Windows arrancará en modo EFI si detecta una etiqueta de particiones
GPT.
Algunas BIOS o EFIs con errores que se configuren para arrancar en modo BIOS/CSM/legacy pueden presentar problemas cuando
se inicie desde discos etiquetados con GPT. En este caso debería poder solucionar el problema activando la opción de arranque
en la partición MBR protegida que se debe realizar mediante fdisk (parted comprende las tablas GPT y no mostrará la partición
MBR protegida):
# fdisk /dev/sda
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk
doesn't support GPT. Use GNU Parted.
Almacenamiento avanzado
Los CDs de instalación para AMD64 proporcionan soporte para LVM2 (en inglés, Logical Volume Management). LVM2 incrementa
incrementa la flexibilidad ofrecida por el esquema de particionamiento. Cuando recorramos las instrucciones de instalación, nos
centraremos en particiones "normales", sin embargo, es importante saber que las particiones de tipo LVM2 también están
soportadas.
Si no está interesado en diseñar un esquema de particionamiento particular para tu sistema, puede hacer uso del esquema que
utilizaremos en este manual.
Si está interesado en conocer el tamaño que debería tener una partición, o incluso cuantas particiones necesita, continué
leyendo. En caso contrario, siga con el particionamiento del disco leyendo Opción por defecto: Utilizar parted para crear las
particiones de su disco (o Alternativa: Utilizar fdisk para crear las particiones de su disco). Ambas son herramientas de
particionamiento, fdisk es muy conocida y estable, parted es un poco más reciente pero admite particiones mayores de 2TB).
El número de particiones es altamente dependiente del entorno particular. Por ejemplo, si la máquina tiene muchos usuarios, lo
más probable es que desee tener /home en una partición separada para aumentar la seguridad y facilitar los respaldos. Si está
instalando Gentoo para un servidor de correos, debe tener /var en una partición separada ya que es allí dónde se almacena
todo el correo. Asimismo, una buena elección de sistema de ficheros optimizará el rendimiento del equipo. Los servidores de
juegos deben disponer de una partición /opt, ya que la mayoría de juegos se instalan allí. Las razones para estas
recomendaciones son similares a las del caso de /home: seguridad y salvaguarda de datos. Es recomendable darle un tamaño
grande a /usr: no solamente contiene la mayoría de las aplicaciones, sino que el propio árbol de Portage ocupa más de 500
Mbytes, sin contar las fuentes que guarda también.
Como puede ver, todo depende de lo que quiera conseguir. Tener particiones o volúmenes separados tiene las siguientes
ventajas:
14 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
partición
Si es el caso, el tiempo dedicado a las comprobaciones de integridad de sistemas de fichero se reduce ya que las éstas
pueden ser hechas en paralelo (esta ventaja es mayor con múltiples discos que con múltiples particiones)
Podemos mejorar la seguridad montando algunas particiones en modo solo lectura, nosuid (los setuid bits se ignoran),
noexec (los bits de ejecución se ignoran), etc.
Sin embargo, tener múltiples particiones tiene también desventajas. Si no se configuran adecuadamente, obtendrá un sistema
con mucho espacio vacío en una partición y ninguno en otra. Otra contrariedad es que las particiones separadas - especialmente
las que se utilizan para puntos de montaje importantes como /usr o /var - a menudo requieren que sea el administrador el que
arranque el sistema con un sistema de ficheros de inicio en RAM (initramfs) para montar la partición antes de que otros guiones
de inicio se ejecuten. Este no es siempre el caso, por lo que sus resultados pueden ser diferentes.
No existe un valor perfecto para la partición de intercambio. El propósito de esta partición es ofrecer espacio de almacenamiento
al núcleo cuando la memoria interna (RAM) está bajo presión. Un espacio de intercambio permite al núcleo mover al disco
páginas de memoria que probablemente no se van a acceder en un corto espacio de tiempo (intercambio o page-out), liberando
memoria. Desde luego, si esa memoria se necesita, estas páginas deben ser devueltas a la memoria (page-in) lo cual llevará un
tiempo (debido a que los discos son lentos comparados con la memoria interna).
Si no va a lanzar aplicaciones que consuman mucha memoria o dispone de mucha en su equipo, entonces, seguramente no
necesitará mucho espacio de intercambio. Sin embargo, el espacio de intercambio se utiliza también para almacenar el
contenido de toda la memoria en caso de hibernación. Si tiene pensado poner a su equipo en estado de hibernación, necesitará
un mayor espacio de intercambio. En la mayoría de los casos deberá tener al menos la misma cantidad de memoria que tiene su
sistema.
Una partición BIOS de arranque es una partición muy pequeña (de 1 a 2 MB) en la que cargadores de arranque como GRUB2
pueden poner datos adicionales que no caben el espacio reservado para ellos (algunos cientes de bytes en el caso de MBR) y no
se pueden colocar en otro lugar.
Estas particiones no son siempre necesarias, pero, considerando el poco consumo de espacio y las dificultades que tendríamos
para documentar la enorme cantidad de diferencias entre particiones, merece la pena crearla en cualquier caso.
Para completar, podemos decir que la partición de arranque BIOS se necesita cuando se utiliza la disposición GPT con GRUB2 o
cuando la disposición de particiones MBR se usan con GRUB2 cuando la primera partición comienza antes de la localización de 1
MB en el disco.
4.c. Opción por defecto: Utilizar parted para crear las particiones de su disco
En este capítulo le guiaremos en la creación de una disposición de particiones ejemplo que hemos mencionado anteriormente en
las instrucciones pero que repetimos aquí para facilitar las cosas.
Partición Descripción
/dev/sda1 Partición de arranque BIOS
/dev/sda2 Partición de arranque
/dev/sda3 Partición de intercambio
/dev/sda4 Partición raíz
La orden parted ofrece una interfaz simple para particionar sus discos y ofrece soporte para particiones grandes (más de 2 TB).
Lance parted sobre su disco (en nuestro ejemplo utilizamos /dev/sda). Le pediremos a parted que realice un alineamiento
óptimo:
El alineamiento indica que las particiones comenzarán en límites bien conocidos dentro del disco, asegurando que las
operaciones sobre ese disco al nivel del sistema operativo (recuperar páginas de disco) usan el menor número de operaciones
internas del disco. Las particiones que están desalineadas pueden requerir que el disco obtenga dos páginas en lugar de una
incluso si el sistema operativo solicitó una única página.
Para mostrar todas las opciones que soporta parted, teclee help y pulse la tecla Intro.
15 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
La mayoría de los discos en los sistemas x86/amd64 están preparados para utilizar una etiqueta msdos, podemos definir una
etiqueta GPT utilizando mklabel gpt:
Aviso: Al cambiar el tipo de partición, se eliminarán todas las particiones de su disco serán eliminadas. Se perderán todos los datos del
disco.
Si quiere que el disco tenga una disposición MBR, utilice mklabel msdos.
Si no ha hecho esto aún, (por ejemplo a través de la operación mklabel anterior, o porque el disco se ha formateado
recientemente), eliminaremos en primer lugar todas las particiones presentes en el disco. Teclee print para ver las particiones
que se han definido actualmente y rm <número> donde <número> es la partición que desea eliminar.
(parted) rm 2
Haga lo mismo para el resto de particiones que no va a necesitar. Asegúrese, sin embargo, de que no comete errores en esta
parte ya que parted realiza los cambios inmediatamente (al contrario que fdisk que los deja pendientes, permitiendo al usuario
"deshacer" sus cambios antes de salvarlos o salir de fdisk).
Ahora, crearemos las particiones que mencionamos arriba. Esto no va a ser muy difícil usando parted, todo lo que necesitamos
es informar a parted sobre los siguientes ajustes:
El tipo de partición que se debe utilizar. Este será normalmente primary (primaria) en caso de que no vaya a tener más de
cuatro particiones si usa la etiqueta de particionamiento msdos, recuerde que no puede tener más de cuatro particiones.
Si necesita más de cuatro particiones cree una partición extended (extendida) y dentro de ella cree particiones logical
(lógicas).
La localización en la que comienza la partición (se puede expresar en MB, GB, ...)
La localización en la que termina la partición (se puede expresar en MB, GB, ...)
En primer lugar, le indicamos a parted que la unidad de medida es en megabytes (realmente mebibytes abreviado por MiB que
es la notación "estándar", sin embargo, utilizaremos MB en lo que sigue ya que es más común).
Ahora creamos una partición de 2 MB que se utilizará más tarde para el cargador de arranque GRUB2. Para ello utilizamos la
orden mkpart e informamos a parted que comience en 1 MB y termine en 3 MB (creando así una partición de 2 MB).
Haga lo mismo para la partición de arranque (boot) (128 MB), partición de intercambio (en el ejemplo 512 MB) y la partición raíz
que ocupa el resto del disco (para ello, la localización final se marca con -1, indicando el final del disco menos 1 MB que es lo
más lejos que puede llegar una partición).
16 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1.00MiB 3.00MiB 2.00MiB grub bios_grub
2 3.00MiB 131MiB 128MiB boot
3 131MiB 643MiB 512MiB swap
4 643MiB 20479MiB 19836MiB rootfs
Cuando esté satisfecho con el resultado puede utilizar la orden quit para salir de parted.
Importante: Si su entorno va a utilizar particiones mayores de 2 TB, por favor, utilice las instrucciones comentadas en Opción por defecto:
Utilizar parted para crear las particiones de su disco. La herramienta fdisk no puede manejar tamaños tan grandes de partición. Fdisk usará
también la disposición MBR. Existen alternativas a fdisk como gdisk (que Gentoo ofrece en el paquete gptfdisk) que ofrecen soporte para GPT
pero que puede que no estén incluidas en los medios de instalación.
Las siguientes instrucciones explican como particionar el disco duro utilizando fdisk. El ejemplo de disposición de las particiones
ha sido mencionado anteriormente:
Partición Descripción
/dev/sda1 Partición de arranque BIOS
/dev/sda2 Partición de arranque
/dev/sda3 Partición de intercambio
/dev/sda4 Partición de raíz (root)
fdisk es una popular y potente herramienta que permite dividir el disco en particiones. Arranca fdisk sobre tu unidad de disco
(en nuestro ejemplo usamos el dispositivo de disco /dev/sda):
# fdisk /dev/sda
Una vez que fdisk esté en ejecución, el programa ofrecerá el siguiente símbolo de espera de órdenes:
Este disco en particular está configurado para albergar siete sistemas de ficheros Linux, cada partición con su correspondiente
etiqueta "Linux", así como una partición de intercambio (swap) que aparece con la etiqueta "Linux swap".
17 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Primero eliminaremos todas las particiones existentes en el disco. Teclee d para eliminar una partición, seguido por intro. Por
ejemplo, para borrar una partición existente en /dev/sda1:
>
Command (m for help): d
Partition number (1-4): 1
La partición ha sido marcada para su borrado. Ya no aparecerá si teclea p, pero no será eliminada hasta que guarde los cambios
realizados. Si comete una equivocación y desea abortar los cambios realizados, teclee q inmediatamente y pulse intro; las
particiones no serán eliminadas.
Ahora, asumiendo que intenta eliminar todas las particiones existentes del disco duro, debe teclear p en forma repetida para ver
el listado de particiones y pulsar d junto con el número de la partición para borrarlas. Finalmente, acabará teniendo una tabla de
particiones vacía:
Ahora que la tabla de particiones en memoria del sistema está vacía, estamos preparados para crear nuevas particiones.
Utilizaremos el esquema por defecto, tal como hemos acordado anteriormente. ¡Claro está, que no debe seguir estas
instrucciones al píe de la letra si no desea tener una tabla de particiones exactamente igual que la nuestra!
En primer lugar creamos una partición de arranque BIOS pequeña. Teclee n para crear una nueva partición y a continuación p
para seleccionar una partición primaria, seguido de 1 para seleccionar la primera partición primaria. Cuando se solicite el primer
sector asegúrese de que comienza en 2048 (necesario para el cargador de arranque) y pulse Intro. Cuando se solicite el último
sector teclee +2M para crear un partición de 2 MB:
Nota: El comienzo en el sector 2048 es una medida de seguridad en caso de que el cargador de arranque no detecte esta partición como
disponible para su utilización.
Ahora crearemos una partición de arranque pequeña. Teclee n para crear una nueva partición, a continuación p para seleccionar
una partición primaria seguido de 2 para seleccionar la segunda partición primaria. Cunado se solicite el primer sector acepte el
valor por defecto pulsando Intro. Cuando se solicite el último sector, teclee +128M para crear una partición de 128 MB:
18 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Necesitamos hacer que esta partición sea arrancable. Teclee a para cambiar el ajuste arrancable de una partición y seleccione 2.
Si introduce p de nuevo, observará que ha aparecido un * en la columna "Boot".
Vamos a crear ahora la partición de intercambio. Para hacerlo, teclee n para crear una nueva partición, y luego p para comunicar
a fdisk que debe ser una partición primaria. Entonces teclee 3 para crear la tercera partición primaria, /dev/sda3 en nuestro
caso. Cuando se solicite el primer sector, pulse Intro. Cuando se solicite el último sector, teclee +512M (u otro tamaño que
necesite para su partición de intercambio) para crear una partición de 512MB.
Una vez que haya hecho esto, teclee t para definir el tipo de partición, 3 para seleccionar la partición que acaba de crear y
entonces 82 para fijar el tipo "Linux Swap".
En el último lugar, creamos la partición de raíz. Introduzca n para crear la nueva partición, p para marcarla como partición
primaria. A continuación teclee 4 para crear la tercera partición primaria, /dev/sda4 en nuestro caso. Cuando se solicite el
primer sector, pulse Intro. Cuando se solicite el último sector, pulse Intro para crear una partición que ocupará todo el espacio
restante en el disco. Tras completar todos estos pasos, introducimos p para ver la tabla de particiones que debe parecer mucho a
la siguiente:
Ahora que las particiones están creadas, puede proseguir con la Crear los sistemas de ficheros.
Introducción
Creadas las particiones, debemos formatearlas para poder colocarles un sistema de ficheros. Si no le importa el tipo de sistema
de ficheros que desee utilizar y está conforme con nuestra elección por defecto, continúe con la sección Creación de Sistema de
Ficheros en una Partición. En caso contrario, siga leyendo para ver qué sistemas de ficheros puede utilizar ...
Sistemas de ficheros
Varios sistemas de ficheros están disponibles. Algunos de ellos se encontraron estables en la arquitectura amd64 mientras que
otros no. Los siguientes se consideran estables: ext2, ext3, ext4 y XFS. JFS y ReiserFS podrían funcionar pero necesitan más
pruebas. Si se es aventurero, pueden probarse otros sistemas de ficheros.
19 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
ext2 es un sistema de ficheros Linux probado, pero no dispone de soporte para transacciones, lo que significa que las
comprobaciones rutinarias al arrancar pueden tardar bastante tiempo. Ahora, hay muchas opciones alternativas, sistemas de
ficheros de nueva generación con soporte para transacciones cuya integridad puede ser verificada con mayor rapidez, por lo que
gozan de mayor popularidad. Los sistemas de ficheros transaccionales previenen retrasos durante el reinicio del equipo, incluso
cuando el sistema de ficheros está en un estado inconsistente.
ext3 es la versión transaccional de ext2, que proporciona soporte para una rápida recuperación además de otros modos
mejorados de funcionamiento como registro completo y ordenado de datos. Utiliza un árbol HTree como índice que permite un
alto rendimiento en casi todas las situaciones. En resumen ext3 es un sistema de ficheros muy bueno y fiable.
El sistema de ficheros ext4 se creó como una bifurcación en el código (fork) del sistema de ficheros ext3, incorporando nuevas
características, mejoras de rendimiento y eliminación de los limites de tamaño realizando cambios moderados en el formato del
disco. Puede trabajar con volúmenes de hasta 1 EB y con un tamaño máximo de fichero de 16 TB. En lugar de la asignación de
bloques usando mapas de bits que emplean los sistemas de ficheros clásicos ext2/3, ext4 utiliza extents (en inglés), lo cual
mejora el rendimiento con los ficheros grandes y reduce la fragmentación. Ext4 también ofrece un algoritmo más sofisticado de
asignación de bloques (asignación demorada y asignación múltiple de bloques) ofreciendo al controlador del sistema de ficheros
más formas de optimizar la disposición de los datos en el disco. El sistema de ficheros ext4 es un compromiso entre la
estabilidad del código para producción y el deseo de introducir extensiones a un sistema de ficheros que ya casi tiene una
década. Ext4 es el sistema de ficheros recomendado para las plataformas de propósito general.
Si va a instalar Gentoo en un sistema con poco espacio de disco (menos de 8GB), entonces necesitará indicar a ext2, ext3 o ext4
(si está disponible) que reserve suficientes nodos-i cuando cree el sistema de ficheros. La orden mke2fs utiliza el ajuste "bytes
por nodo-i" (bytes-per-inode) para calcular cuántos nodos-i debe tener el sistema de ficheros. Al lanzar mke2fs -T small
/dev/<device> (ext2) o mke2fs -j -T small /dev/<device> (ext3/ext4) el número de nodos-i normalmente será el cuádruple
respecto al sistema de ficheros ya que su "bytes-per-inode" se reduce de uno cada 16KB a uno cada 4KB. Puede ajustar esto aún
más lanzando mke2fs -i <ratio> /dev/<dispositivo> (ext2) o mke2fs -j -i <ratio> /dev/<dispositivo> (ext3/ext4).
JFS de IBM es un sistema de ficheros de alto rendimiento con soporte transaccional. JFS es un sistema de ficheros ligero, rápido y
fiable, basado en un árbol B+ con un buen rendimiento bajo varias condiciones.
ReiserFS es un sistema de ficheros B+ (basado en árboles balanceados) que tiene un gran rendimiento, especialmente cuando
trata con muchos ficheros pequeños a costa de emplear más ciclos de CPU. ReiserFS parece tener menos mantenimiento que
otros sistemas de ficheros.
XFS es un sistema de ficheros transaccional el cual viene con un juego de características robustas y está optimizado para ser
escalable. XFS parece ser menos robusto ante fallos hardware.
Para crear un sistema de ficheros en una partición o volumen existen herramientas específicas para cada sistema de ficheros:
Por ejemplo, para formatear la partición de arranque (/dev/sda2 según el ejemplo) en formato ext2 y la partición de raíz
(/dev/sda4 según el ejemplo) en formato ext4, utilizaría las siguientes órdenes:
# mkfs.ext2 /dev/sda2
# mkfs.ext4 /dev/sda4
Y ahora, puede crear sistemas de fichero sobre sus particiones o volúmenes lógicos recién creados.
# mkswap /dev/sda3
# swapon /dev/sda3
20 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
4.f. Montaje
Ahora que las particiones están inicializadas y albergan sistemas de ficheros, es hora de montarlas. Utilice la orden mount. No
olvide crear puntos de montaje necesarios para cada partición que haya creado. Como ejemplo montamos la partición de raíz y
de arranque:
Nota: Si quiere que su /tmp resida sobre una partición diferente, asegúrese de cambiar los permisos después de montarla: chmod 1777
/mnt/gentoo/tmp. Lo mismo debe ser aplicado a /var/tmp.
También necesitamos montar el sistema de ficheros proc (la interfaz virtual del núcleo) en /proc. Pero primero necesitamos
situar nuestros ficheros en las particiones.
Antes de continuar debe revisar la fecha y la hora y actualizarlos. ¡Un reloj mal configurado puede traer resultados extraños a
futuro!
# date
Fri Mar 29 16:21:18 UTC 2005
Si la fecha/hora está equivocada, actualícela con la orden date MMDDhhmmAAAA, con la siguiente sintaxis (Mes, Día, hora, minuto
y Año). En este punto, se debería usar la hora UTC. Podrá utilizar su propia zona horaria más adelante. Por ejemplo, para ajustar
la fecha y hora a las 16:21 horas del 29 de marzo del 2005:
# date 032916212005
El siguiente paso es instalar el archivo tarball del stage3 en su sistema. La orden uname -m le puede ayudar a decidir el fichero
stage a descargar ya que ofrece información de la arquitectura de su sistema.
Vaya al punto de montaje de Gentoo en el que ha montado los sistemas de archivo (probablemente /mnt/gentoo):
# cd /mnt/gentoo
Dependiendo del medio de instalación, tendremos un par de herramientas disponibles para descargar el stage. Si disponemos de
links, podremos navegar por la lista de servidores réplica de Gentoo y escoger el más cercano a nosotros: escriba links
http://www.gentoo.org/main/en/mirrors.xml y pulse intro.
Si no tiene links, debería disponer de lynx. Si necesita pasar a través de un proxy, exporte las variables http_proxy y
ftp_proxy:
# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"
Seleccione un servidor réplica cercano. Normalmente los servidores HTTP nos servirán, 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
21 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
disponibles para su arquitectura (quizá almacenados en subdirectorios con el nombre de cada subarquitectura). Seleccione uno y
pulse D para descargarlo. Cuando haya terminado, pulse Q para cerrar el navegador.
Listado de Código 2.3: Navegar por la lista de servidores réplica con links
# links http://www.gentoo.org/main/en/mirrors.xml
Conviene asegurarse de que ha descargado un archivo stage3, las instalaciones que utilizan un stage1 o stage2 ya no reciben
soporte (y en la mayoría de los casos, no podrá encontrar ficheros tarball de los stage1 o stage2 en nuestros servidores réplica
regulares).
Si quiere comprobar la integridad del tarball de stage que ha descargado, openssl y compare la salida con las sumas ofrecidas
por el servidor réplica. Los ficheros digest ofrecen varias sumas de comprobación, cada una se ha realizado con un algoritmo
diferente. La sumas recomendadas son SHA512 y Whirlpool.
Listado de Código 2.4: Calcular la integridad de las sumas de comprobación de un fichero tarball de stage
A continuación compare la salida de estas órdenes con el valor registrado en los ficheros con extensión .DIGESTS(.asc) que
puede encontrar en los servidores réplica. Los valores deben coincidir, de lo contrario, los ficheros descargados podrían estar
corruptos (o el fichero de digests).
Al igual que con el fichero ISO, puede también verificar la firma criptográfica del fichero .DIGESTS.asc mediante gpg para
asegurarse de las sumas de comprobación no se han manipulado, puede hacerlo de la siguiente forma:
Ahora desempaquetamos el stage descargado en sistema. Usaremos tar para dicha labor y este es el método más fácil.
Asegúrese de usar las mismas opciones xvjpf). La x se usa para Desempaquetar, la v (Verbose)para ver que pasa durante el
proceso de extracción (opcional), la j para Descomprimir con bzip2, la p para Preservar los permisos y la f para decir que
extraemos un archivo, no la entrada estándar.
Ahora que el stage está instalado sigamos con Configurar las opciones de compilación.
Introducción
Para optimizar Gentoo, tendrá que ajustar un par de variables que afectarán el comportamiento de Portage. Todas estas
variables se pueden fijar como variables de entorno (usando export) pero eso no es permanente. Para mantener su
configuración, Portage dispone de /etc/portage/make.conf, un fichero de configuración para Portage. Este es el fichero que
editaremos ahora.
Nota: Una lista comentada de todas las posibles variables puede encontrarse en /mnt/gentoo/usr/share/portage/make.conf.example.
Para una instalación de Gentoo correcta lo único que necesita es configurar las variables que se mencionan en las siguientes líneas.
Use su editor favorito (en esta guía nosotros usaremos nano. Así que empezamos con la modificación de las variables.
# nano -w /mnt/gentoo/etc/portage/make.conf
Como probablemente habrá notado, el fichero make.conf.example está estructurado de una manera genérica: Las líneas
comentadas empiezan con "#", otras líneas definen variables usando la sintaxis VARIABLE="contenido". El fichero make.conf
utiliza la misma sintaxis. Discutiremos muchas de esas variables más adelante.
22 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
CFLAGS y CXXFLAGS
Las variables CFLAGS y CXXFLAGS, definen los parámetros de optimización para el compilador de C y C++ de gcc
respectivamente. Aunque generalmente se definen aquí, tendrá el máximo rendimiento si optimiza estos parámetros para cada
programa por separado. La razón es que cada programa es diferente.
En el fichero make.conf deberá definir los parámetros de optimización que piense que vayan a hacer su sistema el mejor en
todas las situaciones. 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 para la optimización. Pero si quiere conocerlas todas, léase El manual en línea de
GNU o la página información de gcc (info gcc -- Solo en un sistema Linux funcional). El fichero make.conf 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 fichero 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 especifica la clase optimización de gcc. Las clases posibles son s (para tamaño
optimizado), 0 (para no optimizar), 1, 2 o incluso 3 para la optimización de velocidad (cada clase tiene los mismos parámetros
que la primera, más algunos extras). -O2 es la recomendada. Es conocido que -O3 provoca problemas cuando se utiliza
globalmente en el sistema, por esto se recomienda mantener siempre -O2.
Otros parámetros de optimización bastante populares son los -pipe (usando tuberías en lugar de ficheros 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 este caso, no use este parámetro.
Cuidado con utilizar -fomit-frame-pointer (el cual no mantiene el puntero de macro en un registro para las funciones que no
lo necesiten) pues podría tener graves repercusiones en la depuración de errores en aplicaciones.
Cuando defina las variables CFLAGS y CXXFLAGS, debería combinar algunos parámetros de optimización, Los valores por defecto
que trae el archivo stage3 deberían ser suficientemente buenos. El siguiente ejemplo es simplemente eso, un ejemplo:
Nota: Quizá quiera echar un vistazo a la Guía de Compilación Optimizada para más información sobre las distintas opciones de compilación
que afectan al sistema.
MAKEOPTS
Con la variable MAKEOPTS definimos cuantas compilaciones paralelas pueden hacerse al mismo tiempo cuando instalamos un
paquete. El valor sugerido se obtiene sumando uno a la cantidad de CPUs (o de cores) de su sistema, aunque este valor no es
siempre el perfecto.
MAKEOPTS="-j2"
Actualice su /mnt/gentoo/etc/portage/make.conf con sus propios parámetros y guarde los cambios (los usuarios de nano
deben usar Ctrl-X). Ahora estamos listos para continuar con Instalando el sistema base de Gentoo.
6.a. Enjaulamiento
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 en nuestra
lista de réplicas y buscar un servidor (o servidores) que estén cerca de su localización (ya que estos suelen resultar los más
rápidos), sin embargo, 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 la
barra espaciadora para seleccionar uno o más servidores.
23 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Otra importante configuración es la variable SYNC en make.conf. Esta variable contiene el servidor rsync que quiere utilizar para
actualizar su árbol Portage (la colección de ebuilds, guiones que contienen toda la información que Portage necesita para
descargar e instalar software). Aunque puede introducir manualmente el servidor SYNC, mirrorselect puede encargarse
también de esto:
Nota: Si desea seleccionar un servidor SYNC manualmente en make.conf, revise la lista de servidores espejo comunitarios para averiguar el
servidor más cercano. Recomendamos escoger uno de rotación, como rsync.us.gentoo.org, en vez de uno individual. Esto ayuda a repartir
la carga y agrega seguridad en caso que el servidor espejo individual esté fuera de línea.
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.
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 ficheros en la nueva localización.
Monte el sistema de ficheros /proc en /mnt/gentoo/proc para poder usar la información proporcionada por el núcleo dentro del
entorno chroot y luego monte el sistema de ficheros /dev y /sys.
Aviso: 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 es válido después del chroot. Hacer que /dev/shm sea un montaje tmpfs en primer lugar puede
resolver este problema.
Ahora que todas las particiones están inicializadas y el sistema base instalado, es hora de entrar en nuestro nuevo entorno de
instalación haciendo chrooting en él. Esto significa pasar desde el actual entorno de instalación (CD de instalación u otro medio)
hacia su entorno de instalación (o sea, las particiones inicializadas).
El enjaulamiento (chroot) se hace en tres pasos. En primer lugar, se cambia la raíz desde / (en el medio de instalación) a
/mnt/gentoo (en sus particiones) utilizando chroot. A continuación se cargan en memoria algunas definiciones ofrecidas por
/etc/profile mediante source. Para terminar, se redefine el símbolo de espera de órdenes primario que nos hará recordar que
nos encontramos en un entorno enjaulado (chroot).
¡Enhorabuena! Está dentro de su nuevo entorno Gentoo Linux. Por supuesto aún no hemos terminado, todavía quedan unas
cuantas secciones :-)
Si, en cualquier momento, necesita otro terminal o consola para acceder al entorno chroot, todo lo que necesita hacer es
ejecutar de nuevo los pasos de arriba.
Ahora debe instalar una instantánea de Portage, una colección de ficheros que informa a Portage de los títulos que se pueden
instalar, qué perfiles están disponibles, etc.
24 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Recomendamos utilizar emerge-webrsync. Esta orden obtendrá la última instantánea de portage (con las liberaciones diarias de
Gentoo) de uno de nuestros servidores réplica y la instalará en su sistema.
Listado de Código 2.1: Ejecutar emerge-webrsync para instalar una instantánea de Portage
# emerge-webrsync
Nota: A lo largo de esta operación, emerge-webrsync podría indicar que la localización /usr/portage no existe. Esto es normal y no debe
preocuparle, la herramienta creará esta localización por nosotros.
A partir de este punto Portage podría indicar que se recomienda realizar algunas actualizaciones. Esto es debido a que algunos
paquetes del sistema que se han instalado mediante un fichero stage3 disponen de versiones más actuales y ahora Portage lo
detecta debido a que se ha instalado una nueva instantánea. Puede ignorar tranquilamente esta advertencia ahora y
actualizarlos una vez que haya finalizado la instalación de Gentoo.
Ahora puede actualizar su árbol Portage a la última versión. La orden emerge --sync utilizará el protocolo rsync para actualizar
el árbol Portage (que obtuvo anteriormente mediante emerge-webrsync) a su último estado.
# emerge --sync
(Si está utilizando un terminal lento como algunos framebuffers
o consolas seriales, puede añadir la opción --quiet para aumentar la
velocidad del proceso:)
# emerge --sync --quiet
Si está detrás de un cortafuegos que bloquea el tráfico rsync, puede ignorar esta paso de forma segura ya que tiene su árbol
Portage actualizado.
Si se indica que está disponible una nueva versión de Portage y se debe actualizar, debería hacerlo ejecutando emerge
--oneshot portage. Se indicará también que hay nuevo elementos de noticias que necesitan leerse ("news items need
reading"). Hablaremos de ello ahora.
Cuando sincroniza su sistema con el árbol de Portage, puede que se le informe de los siguiente:
Listado de Código 2.3: Portage informa de que hay nuevos elementos de noticias disponibles
Los elementos de noticias de Portage se crearon para ofrecer un medio de comunicación en el que incluyeran mensajes críticos a
los usuarios a través del árbol sincronizado. Para gestionarlos necesitará utilizar eselect news. Mediante el argumento read
podrá leer todos los elementos de noticias. Con list puede echar un vistazo rápido a los elementos de noticias disponibles, y
con purge puede eliminarlos una vez que los haya leído y no tenga la necesidad de volverlos a consultar.
Se puede obtener más información sobre el lector de noticias en la página del manual: man news.eselect.
Un perfil es la piedra inicial de cualquier sistema Gentoo. No solamente especifica unos valores predeterminados para USE,
CFLAGS, y otras variables importantes, también bloquea del sistema ciertos rangos de versiones de algunos paquetes. Son
mantenidos por los desarrolladores de Gentoo.
Tiempo atrás, los perfiles raramente los tocaba el usuario. Sin embargo, puede haber situaciones en las cuales sea necesaria un
cambio de perfil.
Nota: La salida de la orden de abajo es solo un ejemplo y puede cambiar a lo largo del tiempo.
25 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
[2] default/linux/amd64/13.0/desktop
[3] default/linux/amd64/13.0/desktop/gnome
[4] default/linux/amd64/13.0/desktop/kde
Como puede ver, también existen sub-perfiles desktop (escritorio) disponibles para algunas arquitecturas. Al ejecutar eselect
profile list se mostrarán los perfiles disponibles.
Después de revisar los perfiles disponibles para su arquitectura, puede utilizar uno diferente si lo desea:
Si quiere disponer de un entorno puramente de 64 bits puros, sin aplicaciones de 32 bits ni bibliotecas, debería utilizar un perfil
no multilib:
Nota: El sub-perfil developer existe específicamente para labores de desarrollo Gentoo Linux. No está diseñado para ayudar a establecer
entornos generales de desarrollo.
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 gtk, o con
soporte qt. Otros programas se pueden compilar con o sin soporte SSL. Algunos programas 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 puedes definir con que opciones debe ser
compilado un paquete. Ahí es donde actúa la variable USE.
En la variable USE definimos palabras clave que son transformadas a 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 compilará sus programas con soporte para gnome (y gtk), pero sin soporte para kde (y qt), haciendo su sistema
completamente compatible con GNOME.
Los valores por defecto de la variable USE se encuentran en make.defaults, archivos de su perfil. Encontrará los archivos
make.defaults en el directorio al cual apunte /etc/portage/make.profile y todos sus directorios padre. El valor
predeterminado de configuración de la variable USE es la suma de todas las configuraciones de USE en todos los archivos
make.defaults. Lo que modifique en /etc/portage/make.conf se calcula contra estos valores. Si pone algún valor en su USE,
es añadido a la lista por defecto. Si elimina algo en su variable USE, poniéndole un signo menos delante, es eliminado de la lista
por defecto (si estaba en ella, claro). Nunca cambie nada en /etc/portage/make.profile ya que ¡se sobreescribirá cuando
actualice Portage!
Puede encontrar una descripción completa sobre la variable USE en la segunda parte del Manual de Gentoo Capítulo 1: Variables
USE. Encontrará una descripción más extensa sobre las opciones de la variable USE en su sistema, en /usr/portage/profiles
/use.desc.
# less /usr/portage/profiles/use.desc
(Puede desplazarse arriba y abajo utilizando sus teclas de flechas y
salir pulsando 'q')
Como ejemplo, se muestran algunas opciones USE para un sistema basado en KDE con DVD, ALSA y soporte para grabar CD's.
26 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
# nano -w /etc/portage/make.conf
El resto del manual de Gentoo se centra en OpenRC como sistema de inicio por defecto. Si quiere usar systemd en su lugar, o
está planeando utilizar Gnome 3.8 y versiones posteriores (que necesitan systemd), por favor, consulte la página de systemd en
el wiki de Gentoo ya que ofrece distintos métodos y ajustes de configuración.
Para terminar, seleccione su zona horaria de forma que su sistema conozca donde está situado físicamente. Busque su zona
horaria en /usr/share/zoneinfo, a continuación, cópiela en /etc/timezone.
# ls /usr/share/zoneinfo
(Suponga que quiere utilizar Europe/Madrid)
# echo "Europe/Madrid" > /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 en en realidad GMT+8.
A continuación, reconfigure el paquete timezone-data package, que actualizará el fichero /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.
Probablemente utilice únicamente una o dos localizaciones (locales) en su sistema. Debe especificar las localizaciones que
utilizará en el fichero /etc/locale.gen.
# nano -w /etc/locale.gen
A continuación se muestran dos localizaciones para obtener el inglés de Estados Unidos y el español de España con los formatos
de carácter asociados (como por ejemplo UTF-8).
en_US ISO-8859-1
en_US.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES@euro ISO-8859-15
Nota: Puede seleccionar las localizaciones que desee de la lista que se obtiene ejecutando locale -a.
Aviso: Le recomendamos que utilice al menos una localización UTF-8 ya que sus aplicaciones pueden necesitarla.
El siguiente paso es lanzar locale-gen. Se generarán las localizaciones que ha especificado en el fichero /etc/locale.gen.
# locale-gen
Una vez realizado esto, tendrá la posibilidad de definir los ajustes de localización para todo el sistema. Con eselect locale
list se muestran las opciones disponibles:
27 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
[2] POSIX
[3] en_US
[4] en_US.iso88591
[5] en_US.utf8
[6] de_ES
[7] de_ES.iso88591
[8] de_ES.iso885915
[9] de_ES.utf8
[ ] (free form)
Listado de Código 5.6: Definir la localización por defecto del sistema en /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 advertencias o errores al construir el núcleo
u otras aplicaciones más adelante.
Y recargue su entorno:
Disponemos de una Guía de Localización para ayudarle en este proceso. Puede también leer el artículo sobre UTF-8 para obtener
información específica de cómo habilitar UTF-8 en su sistema.
7. Configurar el núcleo
Elegir un núcleo
El eje alrededor del cual se construyen todas las distribuciones es el núcleo de Linux. Es la capa entre los programas de usuario y
el hardware del sistema. Gentoo proporciona a sus usuarios varias fuentes de núcleos. Una lista completa está disponible en la
Guía del núcleo en Gentoo.
Para los sistemas basados en AMD64 tenemos, entre otros núcleos, gentoo-sources (fuentes del núcleo modificadas para
obtener algunas características adicionales).
# emerge gentoo-sources
Si echa un vistazo al directorio /usr/src verá un enlace simbólico llamado linux que apunta a las fuentes del núcleo. En este
caso, asumimos que las fuentes del núcleo instaladas apuntan a gentoo-sources-3.12.20. Su versión podría ser distinta, así
que, por favor tenga esto presente.
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-3.12.20
Ahora vamos a configurar y compilar las fuentes del núcleo. Puede usar para esto genkernel, que construirá un núcleo genérico
como el usado por el CD de instalación. Aquí explicaremos la configuración "manual", ya que es la mejor manera de optimizar su
entorno.
Si quiere configurar manualmente su núcleo, continúe con Predeterminado: Configuración Manual. En cambio, si quiere usar
genkernel debe leer Alternativa: Usar genkernel.
Introducción
Configurar manualmente un núcleo frecuentemente es visto como el procedimiento más difícil que tiene que realizar un usuario
de Linux. Nada más lejos de la verdad -- después de configurar un par de núcleos no recordará si fue difícil ;)
28 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Sin embargo, una cosa sí es cierta: debe conocer su sistema al empezar a configurar el núcleo manualmente. Se puede
recolectar mucha información instalando pciutils (emerge pciutils), que contiene lspci. Ahora podrá usar lspci en el entorno
chroot. Puede ignorar tranquilamente los avisos sobre pcilib (como pcilib: cannot open /sys/bus/pci/devices) desplegado por
lspci. Alternativamente, puede ejecutar lspci desde un entorno no-chroot. Los resultados son iguales. También puede ejecutar
lsmod para ver qué módulos del núcleo está usando el CD de instalación (puede darle indicaciones acerca de qué activar).
Ahora vaya al directorio de sus fuentes y ejecute make menuconfig. Esto producirá un menú de configuración basado en
ncurses.
# cd /usr/src/linux
# make menuconfig
Aparecerá una pantalla con diversas secciones de configuración. En primer lugar listaremos algunas opciones que debe activar
(sino Gentoo no funcionará, o no funcionará correctamente sin ninguna configuración adicional). Tenemos también una Guía de
configuración del núcleo en Gentoo en el wike de Gentoo que le puede ser de ayuda.
Asegúrese que todos los controladores vitales para el arranque del sistema (como pueden ser los de SCSI, ...) están compilados
dentro del núcleo y no como módulos o, de lo contrario, su sistema no será capaz de arrancar correctamente.
Luego procederemos a seleccionar el tipo exacto de procesador. El mantenedor del núcleo x86_64 recomienda fervorosamente
activar las características MCE de manera que puedan ser notificados ante cualquier falla de hardware. En x86_64 estos errores
no son impresos a dmesg tal como sucede en otras arquitecturas pero sí a /dev/mcelog. Esto requiere del paquete
app-admin/mcelog. Asegúrese de que selecciona la emulación IA32 Emulation si desea ejecutar programas de 32 bits. Gentoo
instalará un sistema multi-librería (computación mixta 32/64 bit) por defecto, por lo que esta opción es necesaria.
Nota: Si planea usar un perfil que no sea multi-librería (para un sistema 64 bits puro) entonces no tendrá que seleccionar el soporte de
emulación IA32. Sin embargo necesitará también seguir las instrucciones para cambiar a un perfil no multi-librería , así como elegir el gestor
de arranque correcto.
A continuación seleccione Maintain a devtmpfs file system to mount at /dev de modo que los ficheros de dispositivo críticos
estén disponibles cuanto antes en el proceso de inicio.
Vaya ahora a File Systems y seleccione el soportes para el sistema de archivos que vaya a utilizar. No compile como módulo el
sistema de ficheros que vaya a utilizar para la raíz, de lo contrario su sistema Gentoo no podrá montar la partición raíz. También
deberá seleccionar Virtual memory y /proc file system.
29 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si está usando PPPoE para conectarse a Internet o está usando un módem dial-up, necesitará las siguientes opciones en el
núcleo:
Las dos opciones de compresión no le afectan pero no son necesarias, ni para la opción PPP over Ethernet, tal vez solo sea
usada por ppp cuando configure un núcleo en modo PPPoE.
Si tiene un sistema Opteron con múltiples CPUs o multi-núcleo (por ejemplo: AMD64 X2), active "Symmetric multi-processing
support":
Si usa dispositivos de entrada USB (como un ratón o teclado) no olvide activarlos también:
Compilar e instalar
Ahora que hemos configurado el núcleo, es hora de compilarlo e instalarlo. Salga de la configuración y comience con el proceso
de compilación:
Al terminar de compilar el núcleo, copie la imagen a /boot. Esto lo gestiona la orden make install:
# make install
Esto copia la imagen del núcleo en /boot junto con el fichero System.map y el fichero de configuración del núcleo.
Si utiliza un esquema de particionamiento específico en el que las localizaciones de ficheros de sistema importantes (como /usr
o /var) se encuentran en particiones separadas, entonces necesitará configurar un sistema de ficheros initramfs de modo que
esta partición se pueda montar antes de que se acceda a la misma.
Sin un sistema de ficheros initramfs, se corre el riesgo de que el sistema no se inicie de forma correcta ya que las herramientas
responsables de montar los sistemas de ficheros necesitan información que se encuentra en éstos. Un sistema de ficheros
initramfs obtendrá los ficheros necesarios en un archivo que se utiliza una vez se inicie el núcleo, pero antes de que el control se
ceda a la herramienta init. Los guiones en el sistema de ficheros initramfs se asegurará de que las particiones se han montado
correctamente antes de que el sistema continúe con su inicio.
Para instalar un sistema de ficheros initramfs, en primer lugar instale genkernel, a continuación genere el sistema de ficheros
initramfs.
30 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
# emerge genkernel
# genkernel --install initramfs
Si necesita soporte específico en el sistema de ficheros initramfs, tal como lvm o raid, añada la opción apropiada a genkernel.
Lea genkernel --help para obtener más información. En el ejemplo mostrado a continuación se habilita el soporte para LVM y
el software raid (mdadm):
Listado de Código 2.11: Construir un sistema de ficheros initramfs con soporte para LVM y software raid
El sistema de ficheros initramfs se almacenará en /boot. Puede encontrar este fichero simplemente listando aquéllos ficheros
que comienzan por initramfs:
# ls /boot/initramfs*
Si está leyendo esta sección, eligió usar nuestro guión genkernel para configurar el núcleo.
Ahora que el árbol de las fuentes del núcleo está instalado, es hora de compilarlo usando nuestro guión genkernel que
automáticamente construirá un núcleo. genkernel trabaja configurando un núcleo prácticamente idéntico al núcleo de nuestro
CD de instalación. Esto significa que cuando use genkernel para construir su núcleo, su sistema generalmente detectará todo su
hardware en el arranque, tal como lo hace el CD de instalación. Debido a que genkernel no requiere ninguna configuración
manual del núcleo, es una solución ideal para esos usuarios que no se sienten cómodos compilando sus propios núcleos.
Ahora, veamos como usar genkernel. Primero, haga emerge al ebuild de genkernel:
# emerge genkernel
A continuación, edite el fichero /etc/fstab de modo que la línea que contiene /boot en el segundo campo tiene el primer
campo apuntando al dispositivo correcto. Si se sigue el ejemplo de particionamiento del manual, entonces este dispositivo es,
seguramente, /dev/sda2 con un sistema de ficheros ext2. Esto haría que la entrada en el fichero tuviera el siguiente aspecto:
# nano -w /etc/fstab
...
/dev/sda2 /boot ext2 defaults 0 2
El resto del fichero /etc/fstab se actualizará en la siguiente sección, pero debido a que genkernel lee esta información,
necesitamos actualizar la línea para /boot.
Ahora, compile las fuentes del núcleo ejecutando genkernel all Recuerde que genkernel compila un núcleo que soporta casi
todo el hardware, ¡esta compilación tardará un rato en terminar!
Observe que si su partición de arranque no usa el sistema de archivos ext2 o ext3, necesitará configurar manualmente su núcleo
con genkernel --menuconfig all y agregar soporte para su sistema de archivos en el núcleo (no como módulo). Los usuarios
de LVM2 probablemente querrán añadir también el argumento --lvm.
# genkernel all
Una vez que genkernel haya terminado, un núcleo, un conjunto completo de módulos y un disco ram de inicio (initramfs) serán
creados. Usaremos el núcleo e initrd para configurar un gestor de arranque más tarde en este documento. Escriba los nombres
del núcleo y de initrd ya que los necesitará para el archivo de configuración del gestor de arranque. El initrd iniciará
inmediatamente después del arranque para realizar la autodetección de hardware (igual que en el CD de instalación) antes que
inicie su sistema "real".
Listado de Código 3.4: Verificar los nombres del núcleo e initrd creados
# ls /boot/kernel* /boot/initramfs*
Debe listar los módulos que quiera cargar automáticamente en /etc/conf.d/modules. Puede agregar opciones extra a los
31 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Para ver todos los módulos disponibles, ejecute el comando find. No olvide sustituir "<kernel version>" por la versión del kernel
que acaba de compilar:
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
Por ejemplo, para cargar automáticamente el módulo 3c59x.ko (el driver para una tarjeta de red específica de la familia 3Com),
edite el archivo /etc/conf.d/modules y escriba el nombre del módulo.
# nano -w /etc/conf.d/modules
modules_2_6="3c59x"
8. Configurar su sistema
¿Qué es el fstab?
En Linux, todas las particiones usadas por el sistema deben estar reflejadas en /etc/fstab. Este fichero contiene los puntos de
montaje de esas particiones (donde se encuentran en la estructura del sistema de ficheros), cómo deben ser montadas y con
que opciones especiales (automáticamente o no, si los usuarios pueden montarlas o no, etc.).
Crear el /etc/fstab
/etc/fstab usa una sintaxis especial. Cada línea tiene seis campos, separados por espacios en blanco (espacio(s), tabuladores o
una combinación). Cada campo tiene su propio significado:
Importante: El archivo /etc/fstab que proporciona Gentoo de manera predeterminada no es un archivo fstab válido. Debe crear su propio
/etc/fstab:
# nano -w /etc/fstab
En el resto de este documento, utilizamos por defecto los dispositivos de bloque /dev/sd* como particiones. Puede elegir
también los enlaces simbólicos presente en /dev/disk/by-id o /dev/disk/by-uuid. Estos nombres no cambian por norma
general mientras que los nombres de dispositivos de bloque pueden cambiar dependiendo de ciertos factores (como por ejemplo
el orden en el que los discos se han conectado al sistema). Sin embargo, si no va a jugar con el orden de conexión de los discos,
puede continuar utilizando los ficheros de dispositivos de bloque de forma segura.
Vamos a ver como anotar las opciones para la partición /boot. Esto es solo un ejemplo, si su arquitectura no requiere una
partición /boot, no lo copie al pie de la letra.
En nuestro ejemplo para AMD64 de particionamiento, /boot es la partición /dev/sda2, con un sistema de ficheros ext2. Esta
necesita ser comprobada durante el arranque del sistema, así que necesitamos escribir:
Algunos usuarios no quieren que su partición /boot sea montada automáticamente para mejorar la seguridad de su sistema.
Estos usuarios deberían sustituir defaults por noauto. Esto implica la necesidad de montar manualmente la partición cada vez
que se quiera usarla.
32 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Añada las reglas que coincidan con su esquema de particionamiento para su dispositivo(s) CD-ROM, y por supuesto, si tiene
otras particiones o dispositivos, también para éstos.
">
/dev/sda2 /boot ext2 defaults,noatime 0 2
/dev/sda3 none swap sw 0 0
/dev/sda4 / ext4 noatime 0 1
auto provoca que mount intente adivinar el sistema de archivos (se recomienda para los dispositivos extraíbles ya que pueden
ser creados con distintos sistemas de ficheros) y user hace posible a los usuarios que no pertenezcan a root monten el CD.
Para aumentar el rendimiento, la mayoría de usuarios podrían querer agregar la opción noatime como opción de montaje, que
desemboca en un sistema más rápido, puesto que no se registrarán los tiempos de acceso (en general, esto no es necesario).
Esto tampoco es necesario para los usuarios de discos de estado sólido (SSD) que deberán habilitar la opción de montaje
discard (únicamente para ext4 y btrfs) que hace que funcione la orden TRIM.
Una de las elecciones que un usuario ha de hacer es el nombre de su PC. Esto parece muy fácil, pero muchos usuarios tienen
dificultades eligiendo el nombre apropiado para su PC-Linux. Para acelerar las cosas, sepa que el nombre que elija puede
cambiarlo más tarde. Para el caso que nos ocupa, puede llamar a su sistema simplemente tux y a su dominio redcasera.
# nano -w /etc/conf.d/hostname
(Configure la variable hostname con el nombre del anfitrión)
hostname="tux"
Nota: El fichero /etc/conf.d/net no existe en la instalación por defecto, por lo que necesitará crearlo.
# nano -w /etc/conf.d/net
Nota: Si no configura un nombre de dominio, puede librarse del mensaje: "This is hostname.(none)" en las pantalla de inicio editando
/etc/issue. Simplemente elimine el texto .\O de ese archivo.
Si tiene un dominio NIS (si no conoce que es esto, seguramente es que no tenga uno), necesita definirlo:
# nano -w /etc/conf.d/net
Nota: Para más información sobre configuración de DNS y NIS, por favor lea los ejemplos que se encuentran en /usr/share/doc/netifrc-*
/net.example.bz2 que se pueden leer utilizando bzless. Además, tal vez quiera hacer emerge openresolv para manejar su configuración
DNS/NIS.
Configurar su Red
Antes de llegar a experimentar esa sensación "Hey, ya lo tengo todo", debes recordar que la red que configuraste en el inicio de
la instalación de Gentoo fue tan solo para la instalación. A partir de ahora vamos a configurar la red permanentemente para su
sistema Gentoo.
Nota: Información más detallada sobre redes, incluyendo temas más avanzados como unión de interfaces (bonding), puenteo (bridging),
redes virtuales 802.1Q o redes inalámbricas está disponible en la sección Configuración de redes en Gentoo.
33 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Toda la información de red esta reunida en /etc/conf.d/net. Este fichero usa una sintaxis directa, aunque no intuitiva, si no se
sabe como configurar una red manualmente. Pero no se asuste, se lo explicaremos todo. Podemos encontrar un ejemplo
completamente comentado que cubre los distintos tipo de configuraciones en /usr/share/doc/netifrc-*/net.example.bz2
DHCP se emplea de manera predeterminada. Para que funcione, debe instalar un cliente de DHCP. Esto se describe más adelante
en Instalar las herramientas necesarias para el sistema. No se olvide de instalar un cliente DHCP.
Si se necesita configurar la conexión de red porque es necesario incluir opciones de DHCP específicas o porque no utiliza DHCP,
abra /etc/conf.d/net con su editor favorito (nano se emplea en este ejemplo):
# nano -w /etc/conf.d/net
Para introducir su propia dirección IP, máscara de red y pasarela, necesita configurar tanto config_eth0 como routes_eth0:
Nota: Esta parte asume que su interfaz de red se llama eth0. Esto, sin embargo, depende bastante de su sistema. Se recomienda asumir
que la interfaz tiene el mismo nombre que le da el sistema cuando se arranca desde los medios de instalación si estos medios son lo
suficientemente recientes. Se puede encontrar más información en Nombrado del interface de red.
config_eth0="dhcp"
Por favor, consulte /usr/share/doc/netifrc-*/net.example.bz2 para ver una lista con todas las opciones disponibles.
Consulte la página man de su cliente DHCP si necesita configurar opciones específicas.
Si tiene varias interfaces de red, repita los pasos anteriores utilizando config_eth1, config_eth2, etc.
Para disponer de su interfaz de red activada en el arranque, necesita agregarla al nivel de ejecución por defecto (default).
Listado de Código 2.8: Agregar net.eth0 al nivel de ejecución por defecto (default)
# cd /etc/init.d
# ln -s net.lo net.eth0
# rc-update add net.eth0 default
Si tiene distintas interfaces de red, necesitara crear los ficheros apropiados net.* tal y como hizo con net.eth0.
Si más tarde descubre que su presunción sobre los nombres de las interfaces de red (que actualmente documentamos como
eth0) fue errónea, entonces:
1. actualice el fichero /etc/conf.d/net con el nombre correcto de la interfaz (por ejemplo enp3s0 en lugar de eth0),
2. cree un nuevo enlace simbólico (por ejemplo /etc/init.d/net.enp3s0),
3. elimine el enlace simbólico antiguo (rm /etc/init.d/net.eth0),
4. añada el nuevo guión al nivel de ejecución por defecto (default), y
5. elimine el antiguo mediante rc-update del net.eth0 default.
Necesita informar a Linux sobre su red. Esto se define en /etc/hosts y ayuda a transformar los nombres de anfitriones a
direcciones IP para aquellas máquinas que no se resuelven a través de su servidor de nombres (DNS). Se necesita definir la
máquina. Además se definen otras máquinas o redes si no se va a configurar un servidor interno de DNS en la propia máquina:
# nano -w /etc/hosts
34 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si no tiene PCMCIA, puede continuar con Información del Sistema. Los usuarios de PCMCIA deberían leer el siguiente apartado
sobre PCMCIA.
# emerge pcmciautils
# passwd
Gentoo usa /etc/rc.conf para configurar los servicios y el arranque y apagado de su sistema. Abra el fichero /etc/rc.conf y
disfrute de todos los comentarios que hay en este fichero.
# nano -w /etc/rc.conf
Cuando haya terminado de configurar estos dos ficheros, guárdelos y salga de su editor.
Gentoo utiliza /etc/conf.d/keymaps para gestionar la configuración del teclado. Edítelo y configure su teclado.
# nano -w /etc/conf.d/keymaps
Tenga especial cuidado con la variable keymap: porque si selecciona un keymap incorrecto, obtendrá extraños resultados al
escribir con el teclado.
Gentoo utiliza /etc/conf.d/hwclock para fijar las opciones del reloj. Edítelo de acuerdo a sus necesidades.
# nano -w /etc/conf.d/hwclock
Si su reloj de hardware no utiliza UTC, añada clock="local" al archivo. De lo contrario notará como el reloj no funciona
correctamente.
Algunas herramientas no están incluidas en el archivo stage3 porque varios paquetes proporcionan la misma funcionalidad.
Ahora es el momento en que debemos decidir cual queremos instalar.
La primera herramienta por la que tiene que decidirse es la que proporciona el registro y las bitácoras para su sistema. Unix y
Linux tienen una excelente historia en sus capacidades de registros -- si lo quisiera podría registrar todo lo que pasa en su
35 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Gentoo ofrece varios sistemas de registro para elegir. Están sysklogd, que es el conjunto tradicional de demonios de bitácoras,
syslog-ng, un sistema de bitácora avanzado, y metalog que es una bitácora de sistemas altamente configurable. También
puede haber otros en el Portage - el número de paquetes disponibles crece día a día.
Si está pensando utilizar sysklogd o syslog-ng quizá quiera instalar posteriormente logrotate ya que estas herramientas no
proporcionan ningún mecanismo de rotación para los archivos de log.
Para instalar la bitácora del sistema de su elección, use emerge y agréguelo al nivel de arranque predeterminado usando
rc-update. El siguiente ejemplo instala syslog-ng. Por supuesto puede sustituirlo por el sistema de bitácora de su elección:
# emerge syslog-ng
# rc-update add syslog-ng default
El siguiente es el demonio cron. Aunque es opcional y no lo requiere su sistema es recomendable instalar uno. ¿Pero qué es un
demonio cron? Un demonio cron ejecuta órdenes en horarios planificados. Es muy cómodo si necesita ejecutar órdenes
regularmente (por ejemplo a diario, cada semana o mensualmente).
Gentoo ofrece varios demonios cron, entre ellos: bcron, dcron, fcron y cronie. La instalación de uno de ellos es similar a la
instalación de un registrador del sistema (logger). Sin embargo, dcron y fcron requieren una orden de configuración extra:
crontab /etc/crontab. Si no sabe cual elegir, opte por cronie.
# emerge cronie
# rc-update add cronie default
(Solo si optó por dcron o fcron) # crontab /etc/crontab
Si quiere crear un índice de su sistema de archivos para habilitar su rápida localización usando la herramienta locate, necesita
instalar sys-apps/mlocate.
# emerge mlocate
Si necesita acceder a su sistema desde un equipo remoto después de la instalación, no olvide añadir sshd al nivel de ejecución
por defecto:
Si necesita acceso mediante la consola serie (lo cual es posible en el caso de servidores remotos), necesitará eliminar el
comentario de la sección sobre la consola serie en /etc/inittab si no se ha eliminado automáticamente.
# nano -w /etc/inittab
Listado de Código 4.3: Eliminar el comentario para las consolas series en inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100
Dependiendo del sistema de archivos que se esté usando, necesita instalar las herramientas necesarias (para verificar la
integridad del sistema de archivos, crear sistemas de archivos adicionales, etc.) Por favor note que las herramientas para
manejar sistemas de archivos ext2,ext3 o ext4 (e2fsprogs) ya se encuentran instaladas como parte del sistema.
La siguiente tabla lista las herramientas que necesita instalar según un sistema de archivos determinado:
36 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si no necesita herramientas adicionales relacionadas con la red (como ppp o un cliente dhcp) continúe con Configuración del
Cargador de Arranque.
Si necesita que Gentoo obtenga automáticamente una dirección IP para sus interfaces de red, necesita instalar en su sistema
dhcpcd (o cualquier otro cliente DHCP) . Si no lo hace ahora, ¡tal vez no pueda conectarse a Internet después de la instalación!
# emerge dhcpcd
# emerge ppp
10.a. Elegir
Introducción
Ahora que su núcleo está configurado y compilado y los archivos de configuración necesarios han sido llenados correctamente,
ha llegado la hora de instalar el programa que iniciará el núcleo cuando arranque el sistema. Este programa es conocido como
gestor de arranque.
Instalar GRUB2
# emerge sys-boot/grub:2
El software GRUB2 ahora está instalado en el sistema, sin embargo, todavía no está activado.
Configurar GRUB2
En primer lugar, instalaremos los ficheros necesarios de GRUB2 en /boot/grub. Asumiremos que el primer disco (el que se
utiliza para iniciar el sistema) es /dev/sda, la siguiente orden hará esto por nosotros:
# grub2-install /dev/sda
# grub2-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.12.20-gentoo
37 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
La salida de la orden debe mencionar al menos que se ha encontrado una imagen Linux, ya que éstas son necesarias para iniciar
el sistema. Si utiliza initramfs o genkernel para construir su núcleo, se debería detectar igualmente la imagen initrd correcta. Si
no es así, vaya a /boot y compruebe el contenido con la orden ls. Si los ficheros no están, vuelva a las instrucciones de
configuración e instalación del núcleo.
Instalar LILO
LILO, representa LInuxLOader, y es el caballito de batalla probado y comprobado de los gestores de inicio de Linux. Sin embargo,
carece de algunas características de GRUB (razón por la cual GRUB actualmente está ganando popularidad). La razón por la cual
LILO sigue en uso es que en algunos sistemas, GRUB no funciona mientras que LILO sí. Por supuesto también se usa porque hay
muchos que lo conocen y prefieren seguir con este gestor. De cualquier manera, Gentoo soporta ambos gestores y por lo visto,
ha elegido usar LILO.
# emerge lilo
Configurar LILO
Para configurar LILO, debe crear el archivo /etc/lilo.conf. Use su editor de textos preferido (en el manual usamos nano para
ser consistentes) y creemos este archivo.
# nano -w /etc/lilo.conf
Algunas secciones atrás, le pedimos que se acordara del nombre de la imagen del núcleo creado. En el siguiente ejemplo de
lilo.conf haremos uso del esquema ejemplo de particionamiento.
Asegúrese de utilizar el nombre de su archivo de imagen del núcleo y, si es necesario, el nombre de su imagen initrd.
Nota: Si su sistema de ficheros para root es JFS, deberá añadir la línea append="ro" después de cada elemento de arranque, ya que JFS
necesita leer su log antes de permitir montajes de lectura-escritura.
image=/boot/vmlinuz-3.12.20-gentoo
label=gentoo # El nombre de la sección
read-only # Comience con la raíz solo lectura. ¡No modifique!
root=/dev/sda4 # Ubicación del sistema raíz de archivos
image=/boot/vmlinuz-3.12.20-gentoo
label=gentoo.rescue # El nombre de la sección
read-only # Comience con la raíz solo lectura. ¡No modifique!
root=/dev/sda4 # Ubicación del sistema raíz de archivos
append="init=/bin/bb" # Lanzar el intérprete de comandos estático de rescate de Gentoo
# La siguientes dos líneas solo corresponden si hace arranque dual con un sistema Windows.
# En este ejecmplo, Windows se encuentra en /dev/sda6.
other=/dev/sda6
label=windows
Nota: Si usa un esquema de particionamiento o imagen de núcleo distinta, haga los ajustes correspondientes.
Cuando construya el núcleo Linux, si opta por incluir un initramfs desde el cual iniciar, entonces tendrá que cambiar la
configuración haciendo referencia a este fichero initramfs e indicándole donde se encuentra su sistema de ficheros raíz en:
Listado de Código 3.4: Fragmento de LILO para construcciones de núcleo con initramfs habilitado
image=/boot/vmlinuz-3.12.20-gentoo
label=gentoo
read-only
append="real_root=/dev/sda4"
initrd=/boot/initramfs-genkernel-amd64-3.12.20-gentoo
38 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si hace falta pasar alguna opción adicional al núcleo, incluya un enunciado append a la sección. A modo de ejemplo, agregamos
un enunciado video para activar framebuffer:
image=/boot/vmlinuz-3.12.20-gentoo
label=gentoo
read-only
root=/dev/sda4
append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
Si está utilizando un núcleo 2.6.7 o superior y ha puenteado su disco duro porque la BIOS no puede manejar discos duros
grandes, necesitará añadir sda=stroke.
Usuarios de genkernel deben saber que sus núcleos usan las mismas opciones de arranque que el CD de instalación. Por
ejemplo, si tiene dispositivos SCSI, debe agregar doscsi como opción del núcleo.
Ahora, salve el archivo y salga del editor. Para terminar, debe ejecutar la orden /sbin/lilo para poder aplicar /etc/lilo.conf
a su sistema (que se instale en el disco). Acuérdese de que debe volver a ejecutar /sbin/lilo cada vez que instale un nuevo
núcleo o haga cambios en el menú.
# /sbin/lilo
Si tiene más preguntar con respecto a LILO, por favor, consulte su página en la wikipedia.
GRUB se ha rediseñado y se ha lanzado una nueva versión llamada GRUB2. El nuevo código base de GRUB2 difiere bastante del
GRUB actual, por lo que esta versión de GRUB se llama por el momento "GRUB Heredado".
La parte más crítica para la comprensión de GRUB, es el habituarse a la manera en que GRUB se refiere a los discos duros y las
particiones. Su partición Linux /dev/sda2 es denominada (hd0,1) por GRUB. Note los paréntesis alrededor de hd0,1, que son
obligatorios.
La numeración de los discos duros comienza con un cero, en lugar de utilizar una "a" y las particiones empiezan con cero en
lugar de con un uno. Advertimos también que entre los dispositivos hd, solo se cuentan los discos duros y no los dispositivos
atapi-ide como cdroms y grabadoras. Además, la especificación es igual para dispositivos SCSI. (Usualmente son asignados
números mayores, excepto cuando el bios está configurada para arrancar desde los dispositivos scsi). Cuando se le indica la
BIOS que arranque desde un disco duro diferente (por ejemplo, el esclavo primario), ese disco duro se verá como hd0.
Asumiendo que tiene un disco duro en /dev/sda y dos más en /dev/sdb y /dev/sdc, la partición /dev/sdd7 que descrita como
(hd1,6). A lo mejor puede sonar raro y bien podría serlo, pero como veremos, GRUB ofrece un mecanismo de terminación por
tabulador que es de gran ayuda para los que tienen una gran cantidad de discos duros y que andan algo perdidos con este
esquema de numeración.
Instalar GRUB
Importante: Si está utilizando un perfil no multilib y tiene la intención de utilizar GRUB Heredado (en lugar de GRUB2), no debe hacer
emerge de grub:0 sino de grub-static (esto es posible únicamente si ha deshabilitado la emulación IA-32).
# emerge sys-boot/grub:0
Aunque GRUB esté instalado, todavía necesitamos crear un archivo de configuración para él e instalar GRUB en nuestro MBR
para que pueda arrancar automáticamente nuestro núcleo recién creado. Cree el archivo /boot/grub/grub.conf con nano, o
cualquier otro editor:
# nano -w /boot/grub/grub.conf
Ahora vamos a escribir el grub.conf. Asegúrese de utilizar el nombre de su archivo de imagen del núcleo y, si es necesario, el
nombre de su imagen initrd.
39 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Nota: Grub asigna las designaciones según el BIOS. Al cambiar la configuración del BIOS, cambiarán también las designaciones de los
dispositivos. Por ejemplo, si cambia el orden de los dispositivos para el arranque, tal vez tenga que cambiar la configuración grub también.
Nota: Si su sistema de ficheros para root es JFS, deberá añadir "ro" a la línea del núcleo ya que JFS necesita leer su log antes de permitir
montajes de lectura-escritura.
Nota: Si realiza un arranque dual con Windows, el ejemplo de particionamiento utilizado en esta guía no será suficiente (nuestro ejemplo
utiliza todas las particiones para Lnux, mientras que al menos una debería ser extendida si se va a instalar Windows en una partición lógica).
Por favor, vaya con cuidado y considere este listado como un ejemplo que necesitará modificar para que se adapte a sus necesidades.
# Las siguientes cuatro líneas solo se usan en caso de arranque dual con un sistema Windows.
# En este caso, Windows reside en la partición /dev/sda6.
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
Cuando construya el núcleo Linux, si opta por incluir un initramfs desde el cual iniciar, entonces tendrá que cambiar la
configuración haciendo referencia a este fichero initramfs e indicándole donde se encuentra su sistema de ficheros raíz en:
Listado de Código 4.4: Fragmento de GRUB para construcciones de núcleo con initramfs habilitado
Si se utiliza un esquema de particiones y/o imagen de núcleo distinta, haga los ajustes respectivos. Sin embargo, asegúrese que
cualquier cosa que siga un dispositivo GRUB (tal como (hd0,1)) sea relativa al punto de montaje y no de la raíz. En otras
palabras, (hd0,1)/grub/splash.xpm.gz es en realidad /boot/grub/splash.xpm.gz ya que (hd0,1) es /boot.
Además, si se eligió utilizar un esquema de particionamiento diferente y no colocó /boot en una partición separada, el prefijo
/boot empleado en los ejemplos anteriores, es realmente necesario. Si ha seguido el plan de particionamiento sugerido, el
prefijo /boot no es obligatorio, un enlace simbólico /bootlo hace funcionar. En resumen, los ejemplos anteriores deberían
funcionar si ha definido una partición separada para /boot o no.
Si necesita pasar algún parámetro adicional al núcleo, sencillamente agréguelo al final de la línea de comandos del núcleo. Ya
estamos pasando una opción (root=/dev/sda4 o real_root=/dev/sda4), pero se pueden pasar otras también, como el
parámetro video del que hablamos previamente.
Si su archivo de configuración del gestor de arranque contiene el parámetro real_root, use el parámetro real_rootflags para
establecer las opciones de montaje del sistema de archivos raíz.
Si está utilizando un núcleo 2.6.7 o superior y ha puenteado su disco duro porque la BIOS no puede manejar discos duros
grandes, necesitará añadir sda=stroke.
Los usuarios de genkernel deben saber que sus núcleos usan las mismas opciones de arranque que el CD de instalación. Por
ejemplo, si tiene dispositivos scsi, debería agregar el parámetro doscsi al núcleo.
Ahora grabe el archivo grub.conf y salga. Aún necesita instalar GRUB en el MBR (Master Boot Record) para que GRUB se ejecute
automáticamente cuando arranque su sistema.
Los desarrolladores de GRUB recomiendan utilizar grub-install. Sin embargo, si por alguna razón grub-install no funciona
correctamente todavía tiene la opción de instalar GRUB manualmente.
Continúe con Predeterminado: Configurando GRUB utilizando grub-install o Alternativa: Configurando GRUB a mano, utilizando
instrucciones.
40 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Para instalar GRUB necesita ejecutar la orden grub-install. Sin embargo grub-install no funcionará tal cual se instala, ya
que estamos dentro de un entorno chroot. Antes de seguir, necesitará actualizar /etc/mtab, el cual contiene la información
relativa a todos los sistemas de archivos montados. Afortunadamente hay una manera sencilla de realizar esto, simplemente
copie /proc/mounts a /etc/mtab, excluyendo la línea rootfs si no ha creado una partición separada para boot. La siguiente
orden funcionará en ambos casos:
Cuando se utilicen discos virtio Linux, necesitaremos indicarle a grub donde puede encontrar los discos, de lo contrario la orden
grub-install fallará. Para evitar esto, se puede añadir la definición del dispositivo al fichero device.map:
Si tiene alguna pregunta más acerca de GRUB, por favor consulte el FAQ de GRUB , la Wiki de GRUB, o lea info grub en su
terminal (estos documentos están en inglés).
Para comenzar a configurar GRUB, debe ejecutar las órdenes dentro de grub. Se le presentará el intérprete de comandos propio
de grub grub>. Ahora necesita ejecutar las órdenes necesarias para instalar el registro de arranque de GRUB en su disco duro.
# grub --no-floppy
Nota: Si su sistema no tiene ningún dispositivo de disquetes, añada la opción --no-floppy a la orden anterior para evitar que grub pruebe
los dispositivos (no existentes) de disquetes.
En el ejemplo de configuración queremos instalar GRUB para que lea la información de la partición de arranque /dev/sda2, e
instala el registro de arranque de GRUB en el MBR (Master boot Record) de su disco duro para que lo primero que veamos
aparecer al encender el ordenador sea GRUB. Por supuesto, si no ha seguido el ejemplo de configuración durante la instalación,
cambie las órdenes de acuerdo a su modelo:
El mecanismo de completar órdenes con la tecla tabulador puede utilizarse dentro de GRUB. Por ejemplo, si escribe "root ("
seguido de una tabulación, notará que se le presenta una lista de dispositivos (como pueda ser hd0). Si tecleamos "root (hd0,"
seguido de una tabulación recibiremos una lista de particiones disponibles para elegir (como pueda ser hd0,1).
Mediante el uso de este mecanismo para completar por tabulación, configurar GRUB no debería resultar tan duro. Ahora vamos a
por ello, ¡Configuremos GRUB!.
Nota: Si quiere instalar GRUB en una partición concreta en lugar del MBR, debe modificar la orden setup para que apunte a la partición
correcta. Por ejemplo, si quiere que GRUB se instale en /dev/sda4, la orden adecuada sería setup (hd0,3). Sin embargo, pocos usuarios
querrán hacer esto.
Si tiene alguna pregunta más acerca de GRUB, por favor consulte el FAQ de GRUB , la Wiki de GRUB, o lea info grub en su
terminal (estos documentos están en inglés).
Salga del entorno chroot y desmonte todas las particiones que continúen montadas. Luego escriba la orden mágica que estaba
esperando: reboot.
41 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
# exit
cdimage ~# cd
cdimage ~# umount -l /mnt/gentoo/dev{/pts,/shm,}
cdimage ~# umount /mnt/gentoo{/boot,/sys,/proc,}
cdimage ~# reboot
Por supuesto, no olvide quitar el CD arrancable, o el CD será arrancado de nuevo en lugar de su nuevo sistema Gentoo.
Una vez que haya reiniciado su instalación de Gentoo, termínela con Finalizar su instalación de Gentoo.
Trabajar como root en un sistema Unix/Linux es peligroso y su uso debería evitarse tanto como sea posible. Es por ello que se
recomienda encarecidamente añadir un usuario para el uso cotidiano del sistema.
Los grupos a los que pertenece el usuario definen que actividades puede realizar. La siguiente tabla muestra una lista de los
grupos más importantes que podría querer utilizar.
Grupo Descripción
audio para ser capaz de acceder a los dispositivos de audio
cdrom para poder acceder directamente a dispositivos de lectura óptica
floppy para poder acceder directamente a los dispositivos de disquete
games para poder utilizar los juegos
portage para ser capaz de utilizar emerge --pretend como usuario normal
usb para poder acceder a los dispositivos USB
video para acceder al hardware de captura de vídeo y a la aceleración por hardware
wheel para poder utilizar su
Por ejemplo, para crear un usuario llamado juan que pertenezca a los grupos wheel, users y audio, entre en el sistema como
root (solo root puede crear usuarios) y ejecute useradd:
Login: root
Password: (Su contraseña de root)
Si alguna vez este usuario necesita realizar alguna tarea como root, puede utilizar su - para obtener temporalmente privilegios
de root. Otra forma es utilizar el paquete sudo el cual, correctamente configurado, es muy seguro.
Ahora que ya se ha instalado Gentoo y reiniciado, si todo ha ido bien, puede eliminar el tarball de stage3 de su disco duro.
Recuerde que se habrán descargado a su directorio /
# rm /stage3-*.tar.bz2*
12.a. Documentación
¡Enhorabuena! Ya tiene funcionando un sistema Gentoo. Pero ¿A donde ir desde aquí? ¿Cuáles son ahora sus opciones? ¿Qué
explorar primero? Gentoo ofrece a sus usuarios muchas posibilidades y, por lo tanto, muchas características documentadas (y
menos documentadas).
Definitivamente debería ojear la siguiente parte del Manual de Gentoo titulada Trabajando con Gentoo la cual explica cómo
mantener su software al día, cómo instalar más software, qué parámetros USE hay, cómo funciona el sistema de inicialización de
Gentoo (Gentoo Init system), etc.
Tenemos también una Wiki de Gentoo oficial en laque se puede encontrar documentación realizada por la comunidad. El equipo
42 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Puede que quiera utilizar nuestra Guía de localización para hacer que el sistema se sienta cómo en casa.
También disponemos de un Manual de seguridad en Gentoo cuya lectura puede ser muy valiosa.
Por supuesto, siempre será bienvenido a nuestros Foros de Gentoo o a alguno de nuestros canales de IRC.
También tenemos varias listas de correo abiertas a todos nuestros usuarios. La información de cómo entrar en las mismas está
disponible en esa página.
Portage es probablemente la más importante innovación de Gentoo en la gestión de software. Debido a su potente flexibilidad y
una gran cantidad de funcionalidades, es frecuentemente apreciado como la mejor herramienta de gestión de software
disponible para Linux.
Portage esta completamente escrito en Python y Bash y, por tanto, totalmente a la vista de los usuarios al ser ambos lenguajes
interpretados.
La mayoría de usuarios trabajarán con Portage a través de la herramienta emerge. Este capítulo no pretende duplicar la
información disponible en la página de man sobre emerge. Para una completa información sobre las opciones de emerge, por
favor, consulte la página del manual:
$ man emerge
Ebuilds
Cuando hablamos sobre paquetes, nos referimos normalmente a programas software disponibles para los usuarios de Gentoo a
través del árbol Portage. El árbol Portage es una colección de ebuilds, archivos que contienen toda la información que Portage
necesita para mantener el software (instalar, buscar, ...). Estos ebuilds residen por defecto en /usr/portage.
Cuando se pida a Portage que ejecute alguna acción relacionada con los programas, éste utilizará los ebuilds de su sistema
como base. Por tanto, es importante que actualice los ebuilds de su sistema para que Portage conozca el nuevo software,
actualizaciones de seguridad, etc.
El árbol Portage se actualiza normalmente con rsync, una utilidad rápida de transferencia de archivos incremental. La
actualización es muy sencilla, ya que la orden emerge proporciona una interfaz para rsync:
# emerge --sync
Si no es capaz de realizar rsync debido a restricciones de cortafuegos puede actualizar su árbol Portage a través de nuestras tres
imágenes de Portage generadas diariamente. La herramienta emerge-webrsync automáticamente comprueba e instala la última
en su sistema.
# emerge-webrsync
Una ventaja adicional de utilizar emerge-webrsync es que permite al administrador descargar únicamente instantáneas del árbol
portage que están firmadas con la clave GPG del equipo de ingeniería de versiones de Gentoo. Se puede encontrar más
información sobre esto en la sección Características de Portage en Obteniendo instantáneas validadas del árbol Portage.
Buscar software
43 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Para buscar software utilizando el árbol de Portage, puede emplear las funcionalidades de búsquedas propias de emerge. Por
defecto, emerge --search devuelve el nombre de los paquetes cuyo nombre coincide (tanto total como parcialmente) con el
término de búsqueda introducido.
Por ejemplo, para buscar todos los paquetes que tengan "pdf" en su nombre:
Si quiere buscar también en las descripciones puede utilizar la opción --searchdesc (o -S).
Cuando eche un vistazo al resultado, notará que le proporciona mucha información. Los campos son etiquetados claramente con
lo cual no entraremos en explicar sus significados.
* net-print/cups-pdf
Latest version available: 1.5.2
Latest version installed: [ Not Installed ]
Size of downloaded files: 15 kB
Homepage: http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
Description: Provides a virtual printer for CUPS to produce PDF files.
License: GPL-2
Instalar Software
Una vez que haya encontrado el nombre del software que necesite, puede fácilmente instalarlo con emerge: simplemente añada
el nombre del paquete. Por ejemplo, para instalar gnumeric:
# emerge gnumeric
Muchas aplicaciones dependen unas de otras, esto implica que cualquier intento de instalar un cierto paquete de software podría
derivar en la instalación de varias dependencias. No se preocupe. Portage maneja también las dependencias. Si quiere conocer
qué instalará Portage cuando le pida que instale un cierto paquete, añada la opción --pretend. Por ejemplo:
Cuando le pida a Portage que instale un paquete, descargará las fuentes necesarias desde Internet (si fuera necesario) y las
guardará por defecto en /usr/portage/distfiles. Después, el paquete será descomprimido, compilado e instalado. Si quiere
que portage solamente descargue las fuentes sin instalarlas, añada la opción --fetchonly a la orden emerge:
Muchos paquetes vienen con su propia documentación. Algunas veces, el ajuste USE doc determina si la documentación debe
instalarse o no. Puede comprobar la existencia del ajuste USE doc con la orden emerge -vp <nombre paquete>.
La mejor manera de activar el ajuste USE doc es por paquete, por medio de /etc/portage/package.use, de manera que solo
obtendrá la documentación para los paquetes que le interesan. Activando este ajuste de manera global puede causar problemas
con dependencias circulares. Para más información, por favor lea el capítulo acerca de los Ajustes USE.
Una vez que el paquete está instalado, su documentación se encuentra normalmente en un subdirectorio llamado igual que el
paquete, bajo el directorio /usr/share/doc. También puede obtener un listado de todos los archivos instalados con la
herramienta equery la cual es parte del paquete app-portage/gentoolkit.
44 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
# ls -l /usr/share/doc/alsa-lib-1.0.14_rc1
total 28
-rw-r--r-- 1 root root 669 May 17 21:54 ChangeLog.gz
-rw-r--r-- 1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x 2 root root 8560 May 17 21:54 html
-rw-r--r-- 1 root root 196 May 17 21:54 TODO.gz
Desinstalando Software
Cuando quiera desinstalar un paquete software de su sistema, utilice emerge --unmerge. Esto le indicará a Portage que
desinstale todos los archivos instalados por el paquete en su sistema excepto los archivos de configuración de esa aplicación si
la había modificado después de la instalación. Esto le permite continuar trabajando con los mismos archivos de configuración si
alguna vez decide volver a instalar la aplicación.
Sin embargo, hemos de tener algo muy en cuenta: Portage no comprueba si el paquete que está intentando desinstalar es
necesario para algún otro. A pesar de esto, le avisará cuando quiera eliminar un paquete importante que pueda romper su
sistema si lo desinstala.
Cuando desinstala un paquete de su sistema, las dependencias de ese paquete que se instalaron automáticamente cuando
instaló el software, permanecerán. Para hacer que Portage localice todas las dependencias que puede ser eliminadas
actualmente, utilice la funcionalidad de emerge --depclean. Hablaremos de esto un poco más adelante.
Actualizando su Sistema
Para mantener su sistema en perfecto estado (sin mencionar la instalación de los últimas actualizaciones de seguridad) necesita
actualizarlo frecuentemente. Partiendo de que Portage solamente comprueba los ebuilds en su árbol Portage, lo primero sería
actualizar el propio árbol. Cuando tenga el árbol Portage actualizado, puede actualizar su sistema con emerge --update
@world. En el siguiente ejemplo, además hemos utilizado la opción --ask que le indica a Portage que muestre la lista de
paquetes que quiere actualizar y pregunte si se quiere continuar:
Portage buscará entonces las nuevas versiones de las aplicaciones que explícitamente haya instalado (las listadas en /var/lib
/portage/world), sin embargo, no revisa minuciosamente sus dependencias. Si desea actualizar también esas dependencias,
añada la opción --deep:
Aunque esto no indica todos los paquetes: algunos paquetes de su sistema son necesarios durante los procesos de compilación y
construcción de los paquetes, pero, una vez que los paquetes se han instalado, estas dependencias ya no se necesitan. Portage
denomina a éstas dependencias de construcción (build dependencies). Para incluirlas en un ciclo de actualización, añada
--with-bdeps=y:
Ya que las actualizaciones de seguridad también afectan a paquetes que no han sido explícitamente instalados en el sistema
(pero que son dependencias de otros programas), es recomendable ejecutar la orden de arriba de vez en cuando.
Si ha cambiado últimamente alguno de sus ajustes USE quizá quiera añadir también --newuse. Portage comprobará si los
cambios requieren la instalación de nuevos paquetes o la recompilación de los existentes:
Meta-paquetes
45 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Algunos paquetes del árbol Portage no tienen contenido real pero son utilizados para instalar un conjunto de paquetes. Por
ejemplo, el paquete kde-meta instalará un entorno KDE completo en su sistema incluyendo varios paquetes relacionados con
KDE y también sus dependencias.
Si quiere desinstalar dicho paquete de su sistema, ejecutando emerge --unmerge sobre el paquete no tendrá efecto total ya que
las dependencias permanecerán en su sistema.
Portage tiene la funcionalidad de eliminar las dependencias huérfanas, pero la disponibilidad de software necesita que primero
actualice completamente su sistema, incluyendo los nuevos cambios que ha aplicado si actualizó los ajustes USE. Después de
esto, puede ejecutar emerge --depclean para eliminar las dependencias huérfanas. Cuando haya terminado, necesitará
reconstruir las aplicaciones que estuvieran enlazadas dinámicamente a las que acaban de ser eliminadas pero no son
necesarias.
# emerge gentoolkit
1.d. Licencias
A partir de la versión 2.1.7 de Portage, puede aceptar o rechazar la instalación de software basada en esta licencia. Todos los
paquetes del árbol contienen una entrada LICENSE en sus ebuilds. Ejecutando emerge --search nombredepaquete le mostrará
la licencia del paquete.
Por defecto Portage permite todas las licencias, excepto Acuerdos Finales de la Licencia de Usuario (End User License
Agreements o EULAs) que requieren la lectura y firma de un acuerdo de aceptación.
La variable que controla las licencias permitidas es ACCEPT_LICENSE, la cual se puede ajustar en /etc/portage/make.conf. En
el siguiente ejemplo, se muestra este valor por defecto:
ACCEPT_LICENSE="* -@EULA"
Con esta configuración, los paquetes que requieren interacción durante la instalación para aprobar su EULA no se podrán
instalar. Los paquetes sin una EULA se podrán instalar.
Puede ajustar ACCEPT_LICENSE globalmente en /etc/portage/make.conf, o puede especificarlo en de forma que afecte a solo
un paquete en /etc/portage/package.license.
Por ejemplo, si quiere permitir la licencia truecrypt-2.7 para app-crypt/truecrypt, añada lo siguiente a /etc/portage
/package.license:
app-crypt/truecrypt truecrypt-2.7
Esto permite la instalación de versiones de truecrypt que tengan la licencia truecrypt-2.7, pero no versiones con la licencia
truecrypt-2.8.
Importante: Las licencias se almacenan en /usr/portage/licenses, y los grupos de licencias se guardan en /usr/portage/profiles
/license_groups. La primera entrada de cada línea en letras MAYÚSCULAS, es el nombre del grupo de licencias, y cada entrada detrás de
ésta es una licencia individual.
Los grupos de licencias definidos en ACCEPT_LICENSE se prefijan con un el símbolo @. Un ajuste que se demanda
frecuentemente es el de permitir únicamente la instalación de software y documentación libres. Para conseguir esto, se pueden
eliminar todas las licencias aceptadas (mediante -*) y a continuación permitir solo las licencias en el grupo FREE, tal y como se
muestra a continuación:
Listado de Código 4.3: Permitir únicamente las licencias de software y documentación libres en /etc/portage/make.conf
ACCEPT_LICENSE="-* @FREE"
En este caso, "free" está definido por la FSF y la OSI. Cualquier paquete cuya licencia no se ajuste a estos requisitos no se podrá
instalar en su sistema.
46 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Como mencionamos anteriormente, Portage es muy potente y soporta muchas características de las que carecen otras
herramientas de gestión de software. Para comprender esto, explicaremos unos cuantos aspectos de Portage sin profundizar
demasiado en los detalles.
Con Portage, diferentes versiones de un mismo paquete pueden coexistir en un sistema. Mientras otras distribuciones tienden a
renombrar el paquete con sus versiones (por ejemplo freetype and freetype2). Portage usa una tecnología llamada SLOTs
(ranuras). Un ebuild declara un cierto SLOT para su versión. Ebuilds con diferentes SLOTs pueden coexistir en el mismo sistema.
Por ejemplo, el paquete freetype tiene ebuilds con SLOT="1" y SLOT="2".
También existen paquetes que proporcionan la misma funcionalidad pero están implementados de maneras distintas. Por
ejemplo, metalogd, sysklogd y syslog-ng son todos paquetes de registro del sistema. Aplicaciones que necesitan la
disponibilidad de un "registrador del sistema" no pueden depender, por ejemplo, de metalogd, ya que el resto de registradores
del sistema son igualmente válidos. Portage permite virtuals: cada paquete de registro del sistema se lista como una
dependencia "exclusiva" del servicio de registro en el paquete virtual logger de la categoría virtual, de esta forma las
aplicaciones pueden depender del paquete virtual/logger. Cuando se instala el paquete, se obtendrá el primer paquete de
registro mencionado, a menos que ya se haya instalado previamente un paquete que ofrezca el servicio (en este caso, la
dependencia virtual ya está satisfecha).
Los programas en el árbol Portage puede residir en diferentes ramas. Por defecto, su sistema solamente acepta paquetes que
Gentoo considera estables. La mayoría de los paquetes nuevos, cuando son aceptados, ingresan en la rama inestable. Esto
implica que necesitan hacerse más pruebas antes de marcarlo como estable. Aunque puede ver los ebuilds de ese software en
su árbol de Portage, Portage no los actualizará hasta que sean marcados como estables.
Algunos programas solo están disponibles para unas pocas arquitecturas. O los programas no funcionan en otras arquitecturas, o
necesitan más pruebas, o el desarrollador que añade el programa a Portage no es capaz de verificar si el paquete funciona en
diferentes arquitecturas.
Cada instalación de Gentoo adhiere un cierto perfil el cual contiene, entre otra información, la lista de paquetes necesarios
para que el sistema funcione normalmente.
Paquetes bloqueados
Listado de Código 5.1: Aviso de Portage sobre paquetes bloqueados (con --pretend)
Listado de Código 5.2: Aviso de Portage sobre paquetes bloqueados (sin --pretend)
Los Ebuilds contienen campos específicos que informan a Portage sobre sus dependencias. Hay dos posibles dependencias:
dependencias de compilación, declaradas en DEPEND y dependencias en tiempo de ejecución, declaradas en RDEPEND. Cuando
una de estas dependencias marca explícitamente un paquete o paquete virtual como no compatible, se dispara un bloqueo.
Aunque las versiones recientes de Portage son lo suficientemente inteligentes para resolver los bloqueos de menor importancia
sin necesidad de la intervención del usuario, ocasionalmente necesitará resolverlo a mano como se explica abajo.
Para solucionar un bloqueo, puede elegir no instalar el paquete o desinstalar primero el paquete conflictivo. En el ejemplo
anterior, puedes optar por no instalar postfix o eliminar primero ssmtp.
También puede ocurrir que vea los paquetes en conflicto con operadores lógicos concretos, como por ejemplo <media-
video/mplayer-1.0_rc1-r2. En este caso, actualizar a la versión más reciente del paquete bloqueante debería eliminar el bloqueo.
También es posible que dos paquetes que aún no se han instalado se estén bloqueando mutuamente. En este caso (poco
frecuente), se debería investigar por que necesitamos instalar ambos. En la mayoría de los casos se puede realizar con uno solo
de los paquetes. Si no, por favor envíe un informe de error al sistema de seguimiento de errores de Gentoo.
!!! all ebuilds that could satisfy "bootsplash" have been masked.
47 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Cuando quiera instalar un paquete que no está disponible para su sistema, recibirá un error de enmascaramiento. Debería
probar a instalar una aplicación distinta que este disponible para su sistema o esperar hasta que el paquete este disponible.
Siempre hay una razón para que un paquete esté enmascarado:
~arch keyword implica que la aplicación no esta probada lo suficiente para ser parte de la rama estable. Espere unos
cuantos días o semanas y vuelva a intentarlo.
-arch keyword o -* keyword implica que la aplicación no funciona en su arquitectura. Si cree que el paquete funcionará,
cree un bug en nuestro sitio web bugzilla.
missing keyword indica que la aplicación aún no ha sido probada para su arquitectura. Pida al correspondiente equipo de
arquitectura que pruebe el paquete o pruébelo por ellos e informe de su experiencia en nuestro sitio web bugzilla.
package.mask implica que el paquete se ha encontrado corrupto, inestable o peor y ha sido marcada deliberadamente
para que no se use.
profile implica que el paquete no está disponible para su perfil. La aplicación podría romper su sistema si la instala o no es
compatible con el perfil que está usando.
license significa que la licencia del paquete no es compatible con su ajuste ACCEPT_LICENSE. Debe permitir
explícitamente su licencia o grupo de licencias ajustándolo en /etc/portage/make.conf o en /etc/portage
/package.license. Consulte Licencias para aprender cómo se gestionan las licencias.
Listado de Código 5.5: Advertencia de Portage acerca de cambios requeridos en los ajustes USE
Listado de Código 5.6: Error de Portage acerca de cambios requeridos en los ajustes USE
emerge: there are no ebuilds built with USE flags to satisfy "app-text/feelings[test]".
!!! One of the following packages is required to complete your request:
- app-text/feelings-1.0.0 (Change USE: +test)
(dependency required by "app-text/happypackage-2.0" [ebuild])
(dependency required by "happypackage" [argument])
Esta advertencia y error suceden cuando se quiere instalar un paquete que no solo depende de otro paquete, sino que requiere
que ese paquete se haya construido con un ajuste USE en particular (o un conjunto de ajustes USE). En el ejemplo dado, el
paquete app-text/feelings necesita construirse con USE="test", sin embargo, este ajuste USE no está habilitado en el
sistema.
Para resolver esta situación, puede añadir el ajuste USE requerido a sus ajustes globales en /etc/portage/make.conf, o
definirlo específicamente para el paquete en /etc/portage/package.use.
Dependencias perdidas
La aplicación que está tratando instalar depende de otro paquete que no esta disponible para su sistema. Por favor, compruebe
bugzilla para ver si el problema se conoce o no, en este caso informe de ello. A menos que este mezclando ramas esto no
debería ocurrir y lo consideraremos un error.
* dev-tinyos/listen [ Masked ]
Latest version available: 1.1.15
Latest version installed: [ Not Installed ]
Size of files: 10,032 kB
Homepage: http://www.tinyos.net/
48 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
* media-sound/listen [ Masked ]
Latest version available: 0.6.3
Latest version installed: [ Not Installed ]
Size of files: 859 kB
Homepage: http://www.listen-project.org
Description: A Music player and management for GNOME
License: GPL-2
La aplicación que quiere instalar tiene un nombre que corresponde con más de un paquete. Necesita aportar también el nombre
de la categoría. Portage le informará de los posibles casos entre los que puede elegir.
Dependencias Circulares
Dos (o más) paquetes que quiere instalar dependen uno de otro y, por tanto, no pueden instalarse. Esto casi siempre se
considera un error en el árbol Portage. Por favor, vuelva a sincronizar después de un tiempo e inténtelo de nuevo. También
puede comprobar bugzilla para saber si se tiene conocimiento sobre el tema o si no, en cuyo caso informe sobre ello.
Fallo en la descarga
Portage no es capaz de descargar las fuentes para una aplicación específica y tratará de continuar instalando el resto de
aplicaciones (si es posible). Este fallo puede deberse a que un servidor réplica no esta bien sincronizado o a que el ebuild apunta
a una localización incorrecta. El servidor donde residen las fuentes podría estar caído por alguna razón.
Listado de Código 5.11: Aviso de Portage sobre un paquete protegido por perfil
Está intentando eliminar un paquete que es parte del fundamental de su sistema. Éste se haya en su perfil y es necesario, por
tanto, no debería ser eliminado del sistema.
A veces, al intentar hacer emerge a un paquete, éste fallará, con el siguiente mensaje:
Esta es una señal que hay algún problema con el árbol Portage -- muchas veces esto es porque un desarrollador ha cometido
una equivocación al ingresar un paquete en el árbol.
Cuando falla la verificación del digest, no intente recalcularlo. El ejecutar ebuild foo manifest no va a resolver el problema;
seguramente ¡lo empeorará!
En lugar de esto, espere una o dos hora que el árbol estabilice. Es probable que el error haya sido detectado enseguida, pero
podrá tomar algún tiempo para que propague la corrección al árbol Portage. Mientras espera, revise Bugzilla a ver si alguien ha
reportado el problema, si no, siga adelante y archive un "bug" reportando el paquete roto.
Una vez que compruebe que el error ha sido reparado, tal vez quiera re-sincronizar para recoger la suma de control reparada.
Importante: ¡Esto no implica que vaya re-sincronizar su árbol Portage múltiples veces! Tal como se establece en la directriz de rsync (al
ejecutar emerge --sync), los usuarios que sincronicen con demasiada frecuencia ¡serán bloqueados! De hecho, es mejor esperar a su
49 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Mientras esté instalando Gentoo (o cualquier otra distribución, incluso otro sistema operativo), tomará varias decisiones
dependiendo del entorno en el que esté trabajando. Una instalación para un servidor es distinta a una para una estación de
trabajo. También una estación de trabajo dedicada a juegos es diferente a una estación de trabajo que se use para renderizados
en 3D.
Estas diferencias no solo dependen de los paquetes instalados, si no también de las características para las que ciertos paquetes
tienen soporte. Si no necesita OpenGL, ¿para qué molestarse en instalar OpenGL y construir la mayoría de sus aplicaciones con
soporte OpenGL? Si no quiere usar KDE, ¿para qué molestarte en compilar paquetes con soporte para KDE si podrían funcionar
perfectamente sin él?
Para ayudar a los usuarios a decidir qué instalar/activar o no, necesitamos que el usuario especifique su entorno de una manera
sencilla. Esto obliga al usuario a decidir que es lo que realmente quiere; además de facilitar a Portage, nuestro sistema de
gestión de paquetes, la tarea de tomar decisiones útiles.
Comencemos por definir qué son los ajustes USE. Un ajuste USE es una palabra clave que incorpora información de soporte y
dependencias para un concepto en concreto. Si define un determinado ajuste USE, Portage sabrá que el usuario desea soporte
para la palabra clave escogida. Por supuesto, también altera las dependencias de un paquete.
Veamos un ejemplo específico: la palabra clave kde. Si no la tiene en su variable USE, todos los paquetes que tengan soporte
opcional para KDE se construirán sin él. Los que tengan una dependencia opcional con KDE se instalarán sin instalar las librerías
de KDE (como dependencia). Si ha definido la palabra clave kde, entonces dichos paquetes sí se construirán con soporte para
KDE, y las librería de KDE serán instaladas
Definiendo correctamente las palabras clave, conseguirá un sistema confeccionado específicamente para sus necesidades.
Un ajuste USE global lo usan varios paquetes, en todo el sistema. Es lo que la mayoría de la gente entiende como ajustes
USE.
Un ajuste USE local lo utiliza un solo paquete para tomar decisiones específicas para dicho paquete.
Puede encontrar una lista de los ajustes USE globales en línea o localmente en /usr/portage/profiles/use.desc.
Se puede encontrar una lista de los ajustes USE locales en línea o localmente en /usr/portage/profiles/use.local.desc.
Esperamos que se haya convencido de la importancia de los ajustes USE. Ahora pasaremos a explicar como se declaran estos
ajustes.
Como ya se ha dicho anteriormente, todos los ajustes USE se declaran dentro de la variable USE. Para simplificar al usuario la
tarea de buscar y escoger ajustes USE, ya proporcionamos una configuración predeterminada. Esta configuración es un
compendio de ajustes que creemos se utilizan frecuentemente por los usuarios de Gentoo. Dicha configuración predeterminada
se declara en los ficheros make.defaults que forman parte de su perfil.
El perfil al que atiende su sistema lo indica el enlace simbólico /etc/portage/make.profile. Cada perfil funciona sobre otro,
más extenso, y el resultado final es una suma de todos ellos. El perfil más alto es el perfil base (/usr/portage/profiles/base).
Listado de Código 2.1: Variable USE acumulada de make.defaults para el perfil 13.0
Como puede ver, esta variable contiene bastantes palabras clave. No modifique el fichero make.defaults para ajustar la
50 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
variable USE a sus necesidades: ¡los cambios se perderán al actualizar el árbol del Portage!
Para modificar esta configuración predeterminada, necesita añadir o eliminar palabras clave a la variable USE. Para llevarlo a
cabo, se define la variable USE en /etc/portage/make.conf. En esta variable añada los ajustes USE que necesite o elimine los
que no quiera. Para eliminarlos coloque el símbolo menos ("-") delante.
Por ejemplo, para eliminar el soporte para KDE y QT además de añadir soporte para ldap, puede definirse el siguiente ajuste USE
en /etc/portage/make.conf:
A veces le interesará establecer un cierto ajuste USE tan solo para una o dos aplicaciones, pero no para todo el sistema. Para
solventar, esto, necesitará crear el directorio /etc/portage (si no existiera) y editar /etc/portage/package.use. Esta ruta es
generalmente un único fichero pero podria ser un directorio; vea man portaga para más información. Los siguientes ejemplos
asumirán que package.use es un único fichero.
Por ejemplo, si no le interesa soporte global para berkdb pero lo quiere para mysql, necesita añadir:
dev-db/mysql berkdb
Por supuesto también puede desactivar el empleo específico de un ajuste USE para una aplicación en concreto. Por ejemplo si no
quiere soporte para java en PHP:
dev-php/php -java
A veces necesitará utilizar una cierta configuración de USE tan solo una vez. En lugar de editar /etc/portage/make.conf dos
veces (una para hacer y otra para deshacer los cambios) puede declarar la variable USE como una variable de entorno. Recuerde
que, si utiliza este método, cuando vuelva a emerger o actualice este aplicación (tanto si es particular como si forma parte de
una actualización del sistema) ¡Perderá los cambios!
Como ejemplo, vamos a eliminar temporalmente el ajuste USE java durante la instalación de seamonkey.
Precedencia
Por supuesto, hay una determinada precedencia respecto a qué configuración tiene prioridad sobre la configuración del USE. No
querrá declarar USE="-java" y comprobar posteriormente que java continua utilizándose debido a una configuración que tiene
mayor prioridad. La precedencia para la configuración del USE es (el primero tiene la mínima prioridad):
Para observar el valor final del USE tal y como lo verá Portage, ejecute emerge --info. Se listarán una serie de variables
importantes (incluyendo la variable USE) con sus valores correspondientes.
# emerge --info
Si ha cambiado sus ajustes USE y desea actualizar todo su sistema para que utilice el nuevo ajuste, utilice la opción de emerge
llamada --newuse:
A continuación, ejecute una limpieza completa de Portage para eliminar las dependencias que habían sido instaladas en su
"antiguo" sistema pero que han quedado obsoletas por los nuevos ajustes USE.
51 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Aviso: Ejecutar emerge depclean es una operación peligrosa y debería tratarse con cuidado. Revise en profundidad la lista de paquetes
"obsoletos" y asegúrese de que no elimina ningún paquete que necesite. En el siguiente ejemplo hemos añadido -p para mostrar la lista de
paquetes que serían eliminados pero sin eliminarlos físicamente.
# emerge -p depclean
Cuando haya finalizado la limpieza, ejecute revdep-rebuild para recompilar las aplicaciones que están enlazadas
dinámicamente con los objetos que proporcionaban los paquetes eliminados. revdep-rebuild forma parte del paquete
gentoolkit; no olvide hacer emerge primero.
# revdep-rebuild
Cuando todo esto haya terminado, su sistema estará utilizando la nueva configuración de los ajustes USE.
Veamos el ejemplo de seamonkey: ¿Qué ajustes USE influyen sobre él? Para averiguarlo, usamos emerge con las opciones
--pretend (simula llevar a cabo la acción) y --verbose (obtener una salida más detallada):
emerge no es la única herramienta disponible para esta labor. De hecho, tenemos una herramienta llamada equery dedicada a
obtener información sobre los paquetes; la cual se encuentra en el paquete gentoolkit. En primer lugar, instale gentoolkit:
# emerge gentoolkit
Ahora ejecute equery con el argumento uses para ver los ajustes USE de un paquete en concreto. Por ejemplo, en el caso del
paquete gnumeric:
Listado de Código 3.3: Utilizar equery para ver los ajustes USE utilizados
3. Características de Portage
Portage tiene varias características adicionales que hacen de su experiencia con Gentoo algo mucho mejor. Muchas de estas
características residen en ciertas herramientas software que mejoran el rendimiento, la estabilidad, la seguridad, ...
Para activar o desactivar ciertas características de Portage necesita editar la variable FEATURES del archivo /etc/portage
/make.conf. Esta variable contiene una lista con las palabras clave de cada característica separadas por un espacio en blanco.
En algunos casos necesita además instalar la herramienta que implementa la característica.
No todas las características que soporta Portage están aquí reflejadas. Para una consulta completa por favor revise la página de
la ayuda referente a make.conf
52 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
$ man make.conf
Para conocer qué características están siendo utilizadas por defecto, ejecute emerge --info y busque la variable FEATURES o
utilice grep:
Usar distcc
distcc es un programa para distribuir un trabajo de compilación a través de muchas, no necesariamente idénticas, máquinas en
una red. Los clientes de distcc envían toda la información necesaria a los servidores DistCC disponibles (corriendo distccd) así
pueden compilar trozos de código fuente para el cliente. El resultado final, es un tiempo de compilación más rápido.
Puede encontrar información más detallada sobre distcc (e información de como tenerlo funcionando sobre Gentoo) en nuestra
Documentación Gentoo sobre Distcc.
Instalar distcc
Distcc se distribuye con un monitor gráfico para monitorizar las tareas que su computador está enviando para compilar. Si usa
Gnome entonces ponga 'gnome' en su configuración USE. De todas formas, si no usa Gnome pero sigue deseando disponer de un
monitor, entonces debería poner 'gtk' en su configuración USE.
# emerge distcc
Añada distcc a la variable FEATURES dentro de /etc/portage/make.conf. Hecho esto, edite la variable MAKEOPTS conforme a
sus necesidades. Una pauta conocida para configurarla es poner -jX con X representando el número de CPUs que ejecutan
distccd (incluyendo la máquina local) más uno, pero quizá obtenga mejores resultados con otros números.
Ahora ejecute distcc-config y cree una lista de los servidores distcc disponibles. Para un ejemplo simple, supondremos que los
servidores DistCC son 192.168.1.102 (el host local), 192.168.1.103 y 192.168.1.104 (los dos hosts "remotos"):
Listado de Código 2.2: Configurar distcc para usar los tres servidores DistCC disponibles
Acerca de ccache
ccache es un caché de compilación rápida. Cuando compila un programa, puede cachear resultados intermedios, de forma que,
si recompila el mismo programa, el tiempo de compilación se reducirá ampliamente. La primera vez que se ejecuta ccache, ésta
será más lenta que una compilación normal. Recompilaciones posteriores deberían ser más rápidas. La herramienta ccache solo
es útil si va a recompilar la misma aplicación muchas veces; por lo tanto en la mayoría de los casos es útil únicamente para los
desarrolladores de software.
Si esta interesado en los pros y los contras de ccache, por favor visite la página web de ccache.
Aviso: ccache puede causar numerosos fallos de compilación. Algunas veces ccache mantendrá objetos con código obsoleto o ficheros
corruptos que pueden llevar a que no se pueda hacer emerge de ciertos paquetes. Si esto ocurre (Si obtiene errores como "File not
recognized: File truncated"), intente recompilar la aplicación con ccache deshabilitado (FEATURES="-ccache" en /etc/portage/make.conf)
antes de informar de una incidencia bug. A menos que esté realizando trabajo de desarrollo, no active ccache.
Instalar ccache
53 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
# emerge ccache
Primero, edite el fichero /etc/portage/make.conf y añada a la variable FEATURES la palabra clave ccache. A continuación,
añada una nueva variable llamada CCACHE_SIZE y dele el valor "2G":
CCACHE_SIZE="2G"
Para comprobar si ccache funciona, pídale a ccache que te muestre las estadísticas. Ya que Portage utiliza un directorio diferente
para guardar los datos, se necesita fijar la variable CCACHE_DIR para reflejar esto:
# CCACHE_DIR="/var/tmp/ccache" ccache -s
La ruta /var/tmp/ccache es el directorio por defecto que emplea Portage para ccache; si quiere cambiar esta variable, configure
CCACHE_DIR en /etc/portage/make.conf.
Sin embargo, si ejecuta ccache, empleará como directorio por defecto ${HOME}/.ccache, que es la razón por la cual necesita
configurar la variable CCACHE_DIR cuando se le pide a Portage que muestre las estadísticas de ccache.
Si quiere utilizar ccache para compilaciones que no tengan que ver con Portage, añada /usr/lib/ccache/bin al principio de su
variable PATH (antes de /usr/bin). Esto puede llevarse a cabo editando el fichero .bash_profile de su directorio home de
usuario. .bash_profile es una de las maneras de definir las variables PATH.
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
Portage soporta la instalación de paquetes precompilados. A pesar de que Gentoo no proporciona paquetes precompilados por sí
mismo, Portage puede funcionar perfectamente con paquetes precompilados.
Para crear un paquete precompilado puede utilizar quickpkg si el paquete está instado en su sistema, o emerge con las opciones
--buildpkg o --buildpkgonly.
Si quiere que Portage cree paquetes precompilados de cada paquete individual que instale, añada buildpkg a la variable
FEATURES.
Puede encontrar mayor soporte para la creación de conjuntos de paquetes precompilados con catalyst. Para más información
sobre catalyst, por favor lea las Preguntas frecuentes sobre Catalyst (en inglés).
A pesar de que Gentoo no proporciona uno, puede crear un repositorio central donde almacene paquetes precompilados. Si
quiere utilizar este repositorio, necesita que Portage lo conozca a través de la variable PORTAGE_BINHOST que debe apuntar al
repositorio. Por ejemplo, si los paquetes precompilados están en ftp://buildhost/gentoo:
PORTAGE_BINHOST="ftp://buildhost/gentoo"
Cuando quiera instalar un paquete precompilado, añada la opción --getbinpkg a la orden emerge junto a la opción --usepkg.
La primera le indica a emerge que descargue el paquete precompilado del servidor definido previamente, mientras que el
segundo indica a emerge que intente instalar el paquete precompilado antes de buscar el código fuente y compilarlo.
Más información sobre las opciones para utilizar paquetes precompilados con emerge puede consultarse en la página de la
ayuda:
54 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
$ man emerge
Parallel fetch
Al hacer emerge a una serie de paquetes, Portage puede obtener las fuentes para el siguiente paquete en el lista aún mientras
está compilando otro paquete, acortando los tiempos de instalación. Para hacer uso de esta opción agregue "parallel-fetch" a su
variable FEATURES. Observe que está activada por defecto de modo que no necesitaría activarla explícitamente.
Userfetch
Cuando Portage se ejecuta por el usuario root, FEATURES="userfetch" permitirá que Portage ejecute sin los privilegios de
superusuario mientras obtiene las fuentes. Este es una pequeña mejora en la seguridad.
Como administrador, puede optar por actualizar únicamente su árbol Portage local con una instantánea del árbol validada
criptográficamente tal y como publica el equipo de infraestructura de Gentoo. Con esto se asegura que ningún otro servidor
réplica falso está añadiendo código no deseado u otros paquete en el árbol que está descargando.
Para configurar Portage, en primer lugar cree un almacén de confianza en el cual pueda descargar y aceptar las claves del
equipo de infraestructura de Gentoo responsable del firmado de las instantáneas del árbol Portage. Desde luego, si lo desea
puede validar esta clave GPG tal y como muestran estas instrucciones (por ejemplo comprobar la huella digital). Puede encontrar
una lista de las claves GPG usadas por el equipo de ingeniería de lanzamientos en su página de proyecto.
# mkdir -p /etc/portage/gpg
# chmod 0700 /etc/portage/gpg
(... Sustituya las claves con las mencionadas en el sitio del
proyecto de ingeniería de lanzamientos ...)
# gpg --homedir /etc/portage/gpg --keyserver subkeys.pgp.net --recv-keys 0xDB6B8C1F96D8BF6D
# gpg --homedir /etc/portage/gpg --edit-key 0xDB6B8C1F96D8BF6D trust
A continuación, edite el fichero /etc/portage/make.conf y active el soporte para la validación de las instantáneas del árbol
Portage firmadas (usando FEATURES="webrsync-gpg") y deshabilite la actualización del árbol Portage usando el método común
emerge --sync.
FEATURES="webrsync-gpg"
PORTAGE_GPG_DIR="/etc/portage/gpg"
Eso es todo. La próxima vez que ejecute emerge-webrsync, únicamente las instantáneas con una firma válida se expandirán en
su sistema de ficheros.
4. Guiones de inicio
Iniciando su sistema
Al iniciar, notará que pasará al frente suyo una gran cantidad de texto. Si pone atención, notará que estos textos son iguales
cada vez que reinicie su sistema. La secuencia de todas estas acciones se llama la secuencia de inicio y es (más o menos)
definido estáticamente.
En primer lugar, su gestor de arranque cargará en memoria la imagen del núcleo que definió en la configuración del gestor de
arranque, después de lo cual, se indica a la CPU que debe ejecutar el núcleo. Al ser cargado y luego ejecutado inicializa todas las
estructuras y tareas específicas del núcleo e inicia el proceso init.
Este proceso asegura que todos los sistemas de archivo (definidos en /etc/fstab) estén montados y listos para usar. Luego
ejecuta varios guiones en /etc/init.d, correspondientes a los servicios requeridos para tener un sistema correctamente
iniciado.
Finalmente, al concluir la ejecución de los guiones, init activa los terminales (generalmente solo las consolas virtuales
accesibles con Alt-F1, Alt-F2, etc.) fijándoles un proceso especial denominado agetty. Este proceso hará posible que pueda
ingresar al sistema a través de uno de estos terminales ejecutando login.
55 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Ahora bien, init no solamente ejecuta los guiones contenidos en /etc/init.d de manera aleatoria. Aún más, no ejecuta todos
los guiones del /etc/init.d, solamente los que han sido seleccionados para ejecutar. Los guiones seleccionados para ejecutar
se encuentran dentro del directorio /etc/runlevels.
Primero, init ejecuta todos los guiones de /etc/init.d cuyos vínculos simbólicos se encuentran dentro de /etc/runlevels
/boot. Usualmente los iniciará en orden alfabético, pero algunos guiones tienen información relativa a dependencias, para lo
cual otros guiones deben ser iniciados anteriormente.
Cuando se ejecuten todos los guiones referenciados en /etc/runlevels/boot, init continua su trabajo con los guiones en
/etc/runlevels/default. Una vez más, usará el orden alfabético, salvo cuando hay dependencias, en cuyo caso es alterado el
orden de inicio para realizar una secuencia válida de arranque.
Por supuesto que init no decide todo eso por su cuenta. Requiere un archivo de configuración que especifica las acciones a
tomar. Este archivo es /etc/inittab.
Si recuerda al secuencia de inicio recién explicada, recordará que la primera acción de init es montar todos los sistemas de
archivo. Esto está definido en la siguiente línea de /etc/inittab:
si::sysinit:/sbin/rc sysinit
Esa línea dice a init que debe ejecutar /sbin/rc sysinit al iniciar el sistema. Los guiones /sbin/rc se encargan de la
inicialización, con lo que podríamos decir que init no hace mucho, delega la tarea de inicialización del sistema a otro proceso.
En segundo lugar, init ejecutó los guiones con vínculos simbólicos en /etc/runlevels/boot. Esto se define en la siguiente
línea:
rc::bootwait:/sbin/rc boot
Una vez más, el guión rc lleva a cabo las tareas necesarias. Note que la opción de rc (boot) corresponde al subdirectorio usado
bajo /etc/runlevels.
Ahora init revisa su archivo de configuración para ver que nivel de ejecución debe ejecutar. Para decidirlo, lee la siguiente línea
de /etc/inittab:
id:3:initdefault:
En este caso (para la mayoría de usuarios Gentoo), el identificador del nivel de ejecución será el 3. Con esta información init
revisa qué debe ejecutar para iniciar el nivel de ejecución 3:
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot
La línea que define el nivel 3, de nuevo usa el guión rc para iniciar los servicios (ahora con el parámetro por defecto default).
Note una vez más que el parámetro pasado al guión rc corresponde al subdirectorio de /etc/runlevels.
Al terminar rc, init decide cuáles consolas virtuales debe activar y qué órdenes se deben ejecutar para cada una:
Ha visto que init utiliza un esquema de numeración para decidir cual nivel de ejecución debe activar. Un nivel de ejecución es
un estado en el cual su sistema está corriendo y contiene guiones (del nivel de ejecución o initscripts) que serán ejecutados al
56 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
En Gentoo, hay siete niveles de ejecución definidos: tres internos y cuatro definidos por el usuario. Los internos se llaman sysinit,
shutdown y reboot y hacen exactamente lo que implican sus nombres, inicialización, apagado y reinicio del sistema.
Los niveles de ejecución definidos por el usuario están acompañados de un subdirectorio bajo /etc/runlevels: boot, default,
nonetwork y single. El nivel de ejecución boot inicia los servicios necesarios que requieren los demás niveles de ejecución. Los
tres niveles de ejecución restantes difieren respecto a los servicios que inician: default es para uso diario, nonetwork en caso
de no requerirse la red y single es utilizado en caso de necesitar arreglar el sistema.
Los guiones iniciados por el proceso rc son llamados guiones de inicio o init scripts. Cada guión en /etc/init.d puede ser
ejecutado con los parámetros start, stop, restart, zap, status, ineed, iuse, needsme, usesme o broken.
Para iniciar, parar o reiniciar un servicio (y sus respectivas dependencias), deben usarse start, stop y restart:
# /etc/init.d/postfix start
Nota: Solo los servicios que necesiten (need) del servicio nombrado serán parados o reiniciados. Los demás servicios, aquellos que usen
(use) el servicio nombrado, pero que no lo necesiten) continuarán sin ser tocados.
Si desea parar un servicio, pero no los que dependan de el, puede usar el parámetro --nodeps junto con el comando stop:
Listado de Código 1.7: Detener postfix, manteniendo la ejecución de los demás servicios
Si desea ver el estado de un servicio (iniciado, parado, ...) puede usar el parámetro status:
# /etc/init.d/postfix status
Si la respuesta a status indica que el servicio está corriendo, pero realmente no es así, puede reajustarlo manualmente con el
parámetro zap:
# /etc/init.d/postfix zap
Para preguntar por las dependencias que tiene un servicio, puede usar iuse o ineed. Con ineed puede ver cuales servicios son
realmente necesarios para el correcto funcionamiento del servicio nombrado. Por otra parte, el parámetro iuse muestra los
servicios que pueden ser usados por el servicio nombrado, pero que no son requeridos para su correcto funcionamiento.
Listado de Código 1.10: Solicitar una lista de servicios de los cuales depende postfix
# /etc/init.d/postfix ineed
De igual manera, puede indagar que servicios requieren el servicio nombrado (needsme) o cuáles pueden usarlo (usesme):
Listado de Código 1.11: Solicitar una lista de todos los servicios que requieren postfix
# /etc/init.d/postfix needsme
Listado de Código 1.12: Solicitar una lista de dependencias faltantes para postfix
# /etc/init.d/postfix broken
¿Qué es rc-update?
El sistema de inicio (init) de Gentoo usa un árbol de dependencias para decidir qué servicios deben iniciarse primero. Como ésta
es una tarea tediosa, que no deseamos que nuestros usuarios tengan que hacer manualmente, hemos creado unas herramientas
para facilitar la administración de los niveles de ejecución y los guiones de inicio.
Con rc-update puede añadir o quitar guiones de inicio a un nivel de ejecución. La herramienta rc-update automáticamente
usará el guión depscan.sh para reconstruir el árbol de dependencias.
57 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Ya hemos agregado guiones de inicio al nivel de ejecución por defecto durante la instalación de Gentoo. En ese instante tal vez
no haya tenido una idea clara acerca del uso de un nivel de ejecución "por defecto", aunque ahora sí. El guión rc-update
requiere un segundo parámetro que define la acción a llevar a cabo: add, del o show para agregar, borrar o mostrar.
Para añadir o quitar un guión de inicio, use rc-update con el parámetro add o del, seguido por el nombre del guión de inicio y el
nivel de ejecución, por ejemplo:
Listado de Código 2.1: Quitar postfix del nivel de ejecución por defecto
La orden rc-update -v show mostrará todos los guiones de inicio con los niveles de ejecución donde ejecutarán:
# rc-update -v show
Es posible ejecutar también rc-update show (sin -v) simplemente para ver los guiones de inicio activos y sus respectivos
niveles de ejecución.
Los guiones de inicio pueden ser bastante complejos, por lo cual no es interesante que los usuarios modifiquen directamente el
guión de inicio, ya que esto puede ser propenso a errores. Sin embargo es importante poder configurar estos servicios, en caso
que se quieren dar más opciones al servicio.
Una segunda razón para mantener esta información fuera del guión de inicio es para poder actualizar estos guiones sin que los
cambios de configuración sean perdidos.
El directorio /etc/conf.d
Gentoo provee una manera fácil de configurar estos servicios: cada guión de inicio configurable tiene un archivo dispuesto en
/etc/conf.d. Por ejemplo, el guión de inicio apache2 (llamado /etc/init.d/apache2) tiene un archivo de configuración de
nombre /etc/conf.d/apache2, el cual contiene las opciones a pasar al servidor web Apache 2 en el momento de inicio:
APACHE2_OPTS="-D PHP5"
Este tipo de archivo de configuración contiene solamente variables (como /etc/portage/make.conf), lo que facilita la
configuración de servicios. También nos permite suministrar información adicional acerca de las variables (en forma de
comentarios).
Realmente, no. Escribir un guión de inicio usualmente no hace falta, ya que Gentoo provee guiones listos para usar para todos
los servicios suministrados. Sin embargo, puede haber instalado un servicio sin usar Portage, en cuyo caso probablemente tenga
que crear un guión de inicio.
No use el guión de inicio suministrado por el servicio si no está explícitamente escrito para Gentoo: los guiones de inicio de
Gentoo ¡no son compatibles con los de las demás distribuciones!
Disposición
#!/sbin/runscript
depend() {
(Información acerca de las dependencias)
}
start() {
(Órdenes requeridas para iniciar el servicio)
}
stop() {
(Órdenes requeridos para parar el servicio)
}
58 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Cualquier guión de inicio requiere la definición de la función start(). Todas las demás son opcionales.
Dependencias
Hay dos dependencias que puede definir: use y need. Tal como hemos mencionado anteriormente, la dependencia need es más
estricta que la dependencia use. Siguiendo este esquema, se declaran los servicios que dependen de éste o la dependencia
virtual. Existen dos ajustes relacionados con las dependencias que puede definir y que influyen en el arranque o secuenciación
de los guiones de inicio: use y need. Aparte de estas dos, existen también dos métodos que influyen en el orden llamados:
before y after. Estos últimos no son dependencias en sí mismos, no provocan el fallo del guión de inicio si el guión
seleccionado no está programado para ser iniciado (o falla al iniciar).
Los ajustes use informan al sistema de inicio que este guión utiliza funcionalidad ofrecida por el guión seleccionado, sin
embargo no depende directamente de él. Un buen ejemplo sería use logger o use dns. Si estos servicios están
disponibles, se usarán de forma correcta, pero aunque no tenga instalado un programa de registro (logger) o servidor DNS,
los servicios funcionarán de todos modos. Si estos servicios están presentes en su sistema, entonces se arrancarán antes
del guión que los utiliza.
El ajuste need es una dependencia inevitable. Esto significa que el guión que necesita otro guión, no podrá arrancar antes
de que el otro guión se arranque de forma correcta. Si el otro guión es reiniciado, entonces el guión que depende de él
será reiniciado igualmente.
Cuando se utiliza before, el guión dado es arrancado antes del guión seleccionado si el seleccionado forma parte del nivel
de inicio. Por lo tanto, si el guión de inicio xdm define before alsasound, será arrancado antes que el guión alsasound,
pero solo si alsasound está también programado para ser arrancado en el mismo nivel de inicio. Si alsasound no está
programado para arrancar, entonces este ajuste en particular no tiene efecto y el guión xdm será arrancado cuando el
sistema de inicio lo juzgue apropiado.
De modo similar, after informa al sistema de inicio que el guión dado debería ser arrancado antes que el seleccionado si
el guión seleccionado forma parte de nivel de inicio. En caso contrario, el ajuste no tiene efecto y el guión será arrancado
por el sistema de inicio cuando éste lo juzgue apropiado.
Debería quedar claro una vez leida la parte de arriba, que need es el único ajuste que define un "auténtica" dependencia ya que
afecta al hecho de que el guión sea arrancado o no. Las demás son simplemente apuntes al sistema de inicio para clarificar el
orden en el que los guiones deben (o deberían ser arrancados).
Si echa un vistazo al muchos de los guiones de inicio disponibles en Gentoo, observará que algunos tienen dependencias de
objetos que no son guiones de inicio. Estos "objetos" son los llamados virtuals (virtuales).
Una dependencia virtual es una suministrada por un servicio, pero no solo por ese servicio. Su guión de inicio puede depender
de un gestor de registro de sistema, habiendo disponibilidad de varios (metalogd, syslog-ng, sysklogd, ...). Como no se
necesitan todos (ningún sistema normal tiene todos estos gestores de registro instalados y corriendo) nos aseguramos que
todos estos servicios provean una dependencia virtual.
depend() {
need net
use logger dns
provide mta
}
Controlando el orden
Tal y como se ha descrito en la sección anterior, puede indicarle al sistema de inicio qué orden debe seguir para arrancar (o
parar) los guiones. Este orden es manejado tanto por los ajustes de dependencia use y need, como por los ajustes de orden
before y after. Como ya hemos descrito estos ajustes, echemos un vistazo al servicio Portmap como ejemplo de guión de
inicio.
depend() {
need net
before inetd
before xinetd
}
También puede usar el carácter que engloba "*" para todos los servicios, aunque no es aconsejable.
59 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Listado de Código 4.4: Ejecutando un guión de inicio como el primer guión del nivel de ejecución
depend() {
before *
}
Si su servicio debe escribir a discos locales, debe necesitar localmount. Si escribe algo en /var/run como un archivo pid,
entonces debería comenzar después de bootmisc:
depend() {
need localmount
after bootmisc
}
Funciones estándar
Junto con la función depend(), hará falta definir la función start(), que contiene las órdenes necesarias para inicializar su
servicio. Es aconsejable usar las funciones ebegin y eend para informarle al usuario acerca de lo que está ocurriendo:
start() {
if [ "${RC_CMD}" = "restart" ];
then
# Hacer algo en caso de que restart requiera algo más que para y arrancar
fi
Ambos --exec y --pidfile deben usarse en las funciones start y stop. Si el servicio no crea un archivo pid, entonces use
--make-pidfile si es posible, aunque debe probar esto para estar seguro. De otra manera, no use archivos pid. Puede también
agregar --quiet a las opciones al start-stop-daemon, pero esto no es recomendado a no ser que el el servicio sea
extremadamente verboso. Usando --quiet puede interferir con la depuración si el servicio no logra arrancar.
Otro ajuste notable usado en el ejemplo de arriba es la comprobación de los contenidos de la variable RC_CMD. Al contrario que el
sistema de guiones de inicio anterior, el nuevo sistema openrc no soporta funcionalidad de reinicio específica de los guiones. En
lugar de esto, el guión necesita comprobar el contenido de la variable RC_CMD para var si una función (sea start() o stop()) se
llama como parte del reinicio o no.
Nota: Asegúrese que --exec de hecho llame un servicio y no solamente un guión que lanza un servicio y termina -- después de todo, eso es
lo que el guión de inicio está supuesto de hacer.
Si requiere más ejemplos de funciones start(), favor leer directamente las fuentes de los guiones de inicio en su directorio
/etc/init.d.
Otra función que puede definir es stop(). Sin embargo, ¡No está obligado a definir esta función! Nuestro sistema de inicio es lo
suficientemente inteligente para rellenar esta función por sí mismo si utiliza start-stop-daemon.
stop() {
ebegin "Stopping my_service"
start-stop-daemon --stop --exec /path/to/my_service \
--pidfile /path/to/my_pidfile
eend $?
}
Si su servicio corre otro guión (por ejemplo, bash, python o perl), y este guión luego cambia algún nombre (por ejemplo, foo.py
a foo), entonces hará falta agregar --name al start-stop-daemon. Debe especificar el nombre al cual cambiará el guión. En este
ejemplo, un servicio inicia foo.py, el cual cambia de nombre a foo:
start() {
ebegin "Starting my_script"
start-stop-daemon --start --exec /path/to/my_script \
--pidfile /path/to/my_pidfile --name foo
eend $?
}
60 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
$ man start-stop-daemon
La sintaxis de los guiones de inicio de Gentoo está basada en el intérprete de comandos POSIX, de manera que es libre de usar
construcciones compatibles con sh dentro del guión de inicio. No utilice otras construcciones, por ejemplo las del tipo bash, en
los guiones de inicio para asegurarse de que los guiones funcionen en el futuro incluso si se cambia el sistema de inicio de
Gentoo.
Si desea que su guión de inicio soporte un mayor número de opciones de las que hemos encontrado hasta ahora, debe agregar
la opción a la variable extra_commands y crear una función con el mismo nombre que la opción. Por ejemplo, para dar soporte a
una opción llamada restartdelay:
extra_commands="restartdelay"
restartdelay() {
stop
sleep 3 # Espere 3 segundo antes de reiniciar
start
}
No hay que hacer nada para soportar un archivo de configuración en /etc/conf.d: si su guión de inicio se ejecuta, los siguientes
archivos serán automáticamente leídos (sourced) y las variables estarán disponibles para usar.
También, si su guión de inicio provee una dependencia virtual (como net), el archivo asociado a esa dependencia (el
/etc/conf.d/net) será leído también.
Muchos usuarios de equipos portátiles conocen la situación: en casa necesita iniciar net.eth0 mientras que puede no querer
iniciar net.eth0 mientras está de viaja (cuando no hay una red disponible). Con Gentoo puede modificar el comportamiento del
nivel de ejecución para sus propios propósitos.
Por ejemplo puede crear un segundo nivel de ejecución "default" con el cual puede arrancar y que utiliza otros guiones de inicio
que le han sido asignados. Puede seleccionar al arrancar que nivel de ejecución quiere utilizar.
Utilizando softlevel
Antes de nada, cree el directorio para su segundo nivel de ejecución "default". Como ejemplo vamos a crear el nivel de ejecución
offline:
# mkdir /etc/runlevels/offline
Añada los guiones de inicio necesarios para el nuevo nivel de ejecución. Por ejemplo, si quiere una copia exacta de su actual
"default" pero sin net.eth0:
(Copiar todos los servicios desde el nivel de ejecución default al nivel offline)
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
(Eliminar servicios no deseados en el nivel offline)
# rc-update del net.eth0 offline
(Mostrar los servicios activos en el nivel offline)
# rc-update show offline
(Salida incompleta de ejemplo)
acpid | offline
61 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
domainname | offline
local | offline
net.eth0 |
Incluso aunque se haya eliminado net.eth0 del nivel de ejecución offline, puede que udev quiera intentar iniciar cualquier
dispositivo que detecte y lanzar los servicios apropiados, una funcionalidad llamada hotplugging (enchufado en caliente). Por
defecto Gentoo no habilita esta funcionalidad.
Si quiere habilitar el hotplugging pero solo para un conjunto seleccionado de guiones, utilice la variable rc_hotplug en
/etc/rc.conf:
Listado de Código 5.3: Deshabilitando los servicions iniciados por dispositivos en /etc/rc.conf
Nota: Para más información sobre los servicios iniciados en función de dispositivos, consulte los comentarios del archivo /etc/rc.conf.
Ahora edite la configuración de su gestor de arranca y añada una nueva entrada para el nivel de ejecución offline. Por ejemplo,
en /boot/grub/grub.conf:
Listado de Código 5.4: Añadiendo una entrada para el nivel de ejecución offline
Listo, ha terminado de configurarlo. Si arranca su sistema y selecciona la nueva entrada al inicio, el nivel de ejecución offline
será el utilizado en lugar del default.
Utilizando bootlevel
Utilizar bootlevel es completamente análogo a softlevel. La única diferencia es que se define un segundo nivel de ejecución
"boot" en lugar de un segundo "default".
5. Variables de entorno
¿Qué son?
Una variable de entorno es un objeto designado para contener información usada por una o más aplicaciones. Algunos usuarios
(especialmente aquellos nuevos en Linux) encuentran esto un poco extraño o inmanejable. Sin embargo esto no es cierto:
usando variables de entorno hace que cualquiera pueda cambiar una opción de configuración para una o más aplicaciones
fácilmente.
Ejemplos Importantes
La siguiente tabla muestra un listado de variables de entorno usado por un sistema Linux y describe su uso. Los valores de
ejemplo se encuentran después de la tabla.
Variable Descripción
PATH Esta variable contiene una lista de directorios separados por ":" en la cual el sistema buscará los archivos ejecutables. Al
introducir el nombre de un ejecutable (como ls, rc-update o emerge) que no se encuentre en un de los directorios listados, el
sistema no lo encontrará, (a menos que se introduzca la ruta completa, por ejemplo: /bin/ls).
ROOTPATH Esta variable tiene la misma función que PATH, pero únicamente contiene los directorios que el sistema debe revisar cuando el
usuario root introduce una orden.
LDPATH Esta variable contiene una lista de directorios separados por ":" en la cual el enlazador dinámico busca para encontrar una librería.
MANPATH Esta variable contiene una lista de directorios separados por ":" en los cuales la orden man buscará las páginas de manual.
INFODIR Esta variable contiene una lista de directorios separados por ":" en la cual la orden info buscará las páginas info.
PAGER Esta variable contiene la ruta hacia el programa utilizado para mostrar el contenido de los ficheros (como less o more).
EDITOR Esta variable contiene la ruta hacia el programa utilizado para modificar el contenido de los archivos (como nano o vi).
KDEDIRS Esta variable contiene una lista de directorios separados por ":" los cuales contienen material específico de KDE.
CONFIG_PROTECT Esta variable una lista de directorios separados por espacio los cuales deben ser protegidos por Portage durante las
actualizaciones.
CONFIG_PROTECT_MASK Esta variable una lista de directorios separados por espacio los cuales no deben ser protegidos por Portage durante las
actualizaciones.
62 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf"
El directorio /etc/env.d
Para centralizar la definición de estas variables, Gentoo introduce el directorio /etc/env.d. Dentro de este directorio se
encuentran varios ficheros como por ejemplo 00basic, 05gcc, etc. los cuales contienen las variables necesarias para la
aplicación de la cual llevan el nombre.
Por ejemplo, al instalar gcc, un fichero llamado 05gcc que contiene la definición de las siguientes variables, fue creado por el
ebuild:
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
Otras distribuciones le piden modificar o añadir definiciones de variables de entorno semejantes en /etc/profile o en otros
sitios. Por otro lado, Gentoo nos hace (y a Portage) más fácil mantener y manejar las variables de entorno sin tener que prestar
atención a los numerosos ficheros que pueden contenerlas.
Por ejemplo, cuando gcc es actualizado, también es actualizado el fichero /etc/env.d/05gcc sin ser necesaria ninguna
interacción por parte del usuario.
Esto no solo beneficia a Portage, sino también al usuario. En ocasiones se podrá pedir establecer cierta variable de entorno para
todo el sistema. Como ejemplo, tomamos la variable http_proxy. En lugar de perder el tiempo con /etc/profile, puedes crear
el fichero (/etc/env.d/99local) y introducir la(s) definición(es) en él:
http_proxy="proxy.server.com:8080"
Usando el mismo fichero para todas las variables, se obtiene una visión rápida de las variables que definidas por uno mismo.
El guión env-update
Varios archivos de /etc/env.d definen la variable PATH. esto no es un error: cuando ejecute env-update, este concatenará las
múltiples definiciones antes de actualizar las variables de entorno, haciendo más fácil a los paquetes (o usuarios) añadir sus
propias opciones en las variables de entorno sin interferir con los valores ya existentes.
El guión env-update concatenará los valores alfabéticamente ordenados por el nombre de los ficheros de /etc/env.d. Los
nombres de fichero deben comenzar con dos dígitos decimales.
La concatenación de variables no siempre funciona, solo con las siguientes variables: ADA_INCLUDE_PATH, ADA_OBJECTS_PATH,
CLASSPATH, KDEDIRS, PATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK,
PRELINK_PATH, PRELINK_PATH_MASK, PKG_CONFIG_PATH y PYTHONPATH. Para el resto de variables, se utiliza el último valor
definido (en orden alfabético de ficheros en /etc/env.d).
Puede incluir más variables en esta lista de variables concatenadas añadiendo el nombre de la variable a la variable
COLON_SEPARATED o a la variable SPACE_SEPARATED (definidas también en el fichero env.d).
Cuando ejecute env-update, el guión creará todas las variables de entorno y las colocará en /etc/profile.env (el cual es
usado por /etc/profile). Además, también extraerá la información de la variable LDPATH y la usará para crear
63 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
/etc/ld.so.conf. Después de esto, ejecutará ldconfig para recrear el archivo usado por el enlazador dinámico:
/etc/ld.so.cache.
Si quiere observar el efecto de env-update inmediatamente después de ejecutarlo, ejecute la siguiente orden para actualizar su
entorno. Posiblemente, los usuarios que instalaron Gentoo ellos mismos, recordarán estas instrucciones de la instalación:
Nota: La orden anterior actualiza únicamente las variables en la terminal actual, en las nuevas consolas y sus hijas. Sabiendo esto, si se está
trabajando en X11, necesitará ejecutar source /etc/profile en las nuevas terminales que abra o reiniciar las X para que las nuevas
terminales definan las nuevas variables. Si está utilizando un gestor de inicio, conviértase en root y ejecute /etc/init.d/xdm restart. En
caso contrario, necesitará salir de la sesión y volver a entrar para que las X generen hijos con las nuevas variables.
Importante: No se pueden utilizar las variables del terminal para definir otras variables. Esto implica que cosas como FOO="$BAR" (donde
$BAR es otra variable) están prohibidas.
Específicas de usuario
No siempre queremos definir variables de entorno globales. Por ejemplo, podríamos querer añadir /home/my_user/bin y el
directorio de trabajo actual (en el cual nos encontramos), a la variable PATH, pero no queremos que todos los usuarios de nuestro
sistema lo tengan en su PATH. Si queremos definir una variable localmente, debemos usar ~/.bashrc o ~/.bash_profile:
Listado de Código 3.1: Ampliar el PATH para uso local en: ~/.bashrc
Específicas de sesión
En ocasiones, se requieren definiciones aún más estrictas. Puede querer usar binarios de un directorio temporal que ha creado
sin tener que usar la trayectoria completa a los binarios o sin editar ~/.bashrc. Para estos momentos necesitará esto.
En este caso, puede definir la variable PATH en su sesión activa usando la orden export. Mientras no cierre la sesión, la variable
PATH usará los valores temporales.
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
Directivas de configuración
Portage viene con una configuración predefinida guardada en /usr/share/portage/config/make.globals. Cuando le eche un
vistazo, comprobará que toda la configuración de Portage se realiza a través de variables. A qué variables atiende Portage y que
significan se describe un poco después.
Como muchas directivas de configuración varían de unas arquitecturas a otras, Portage también posee algunos archivos de
configuración que son parte de perfil. Su perfil está apuntado por el enlace simbólico /etc/portage/make.profile; las
configuraciones de Portage se realizan en los archivos make.defaults de su perfil y de todos los perfiles padres. Explicaremos
algo más sobre perfiles y el directorio /etc/portage/make.profile más adelante.
También puede definir una variable de configuración para Portage como una variable de entorno, pero no es recomendable.
Ya hemos hablado del directorio /etc/portage/make.profile. Bien, exactamente no es un directorio pero es un enlace
simbólico a un perfil, por defecto uno perteneciente a /usr/portage/profiles también puede crear un perfil en cualquier otro
64 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
lado y apuntarlo. El perfil al cual apunta el enlace simbólico será el que tenga en cuenta su sistema.
Un perfil contiene información específica para Portage sobre cada arquitectura, tal como una lista de paquetes que pertenecen al
sistema correspondiente con ese perfil, una lista de paquetes que no funcionan (o están enmascarados) para ese perfil, etc.
Cuando necesite sobreescribir una característica de Portage relativa a la instalación de software, necesitará editar los archivos
contenidos en /etc/portage.¡ Se recomienda encarecidamente que utilice los archivos pertenecientes a /etc/portage y está
desaconsejada la sobreescritura de estas características con variables de entorno.!
package.mask el cual especifica los paquetes que nunca quiere que Portage instale en su sistema.
package.unmask especifica los paquetes que quiere instalar a pesar de haber sido desaconsejados por los desarrolladores.
package.accept_keywords especifica los paquetes que quiere instalar a pesar de no haber sido considerados adecuados
para su sistema o arquitectura (todavía).
package.use especifica la lista de variables USE que quiere utilizar para unos determinados paquetes sin tener que
configurar el sistema por completo para que use esas variables USE.
Estos no tienen que ser archivos; también pueden ser directorios que contengan un archivo por paquete. Podemos obtener más
información acerca del directorio /etc/portage y una lista de archivos que pueden crearse allí en la página man de Portage.
$ man portage
Los archivos de configuración mencionados anteriormente no pueden ser guardados en ningún otro sitio, Portage siempre los
buscará en esos lugares exactos. Sin embargo, Portage utiliza otras muchos lugares para varios propósitos: el directorio de
compilación, el lugar donde guardar el código fuente, la localización del árbol de Portage, ...
Todos estos propósitos tienen unas direcciones predeterminadas muy claras pero puede cambiarlas por las que más le gusten
indicándolo en /etc/portage/make.conf. El resto de este capítulo explica los lugares destinados a un propósito especial que
utiliza Portage y como puede ser modificado su emplazamiento en el sistema de ficheros.
Este documento no pretende ser utilizado como referencia. Si necesita una cobertura 100%, por favor consulte las páginas del
man relativas a Portage y make.conf:
Listado de Código 1.2: Leyendo las páginas del manual sobre Portage y make.conf
$ man portage
$ man make.conf
El árbol Portage
La ubicación predeterminada del árbol de Portage es /usr/portage. Esta definida por la variable PORTDIR. Cuando guarde el
árbol de Portage en cualquier otro lugar (modificando esta variable), no olvide cambiar el enlace simbólico /etc/portage
/make.profile de acuerdo con su cambio.
Si modifica la variable PORTDIR, seguramente quiera cambiar las siguientes variables ya que no tienen constancia del cambio de
PORTDIR. Esto es debido a cómo Portage maneja las variables: PKGDIR, DISTDIR, RPMDIR.
Binarios Pre-compilados
Aunque Portage no utilice binarios pre-compilados por defecto, tiene un buen soporte para ellos. Cuando a Portage se le indica
que trabaje con paquetes pre-compilados, los buscará en /usr/portage/packages. Esta ubicación está definida por la variable
PKGDIR.
Código Fuente
El código fuente de las aplicaciones se guarda por defecto en /usr/portage/distfiles. Esta ubicación viene definida por la
variable DISTDIR.
Portage guarda el estado del sistema (que paquetes están instalados, qué archivos pertenecen a cada paquete, ...) en
/var/db/pkg. ¡No se deben modificar estos archivos manualmente! Podría romper el conocimiento que tiene Portage sobre el
sistema.
Caché de Portage
65 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
La caché de Portage (con modificaciones temporales, paquetes virtuales, árbol de dependencias, ...) se guarda en
/var/cache/edb. Esta ubicación es una verdadera caché: se puede limpiar si no se está ejecutando ninguna aplicación que
tenga relación con Portage en este momento.
Los ficheros temporales de portage se guardan por defecto en /var/tmp. Esta ubicación se define en la variable
PORTAGE_TMPDIR.
Si modifica la variable PORTAGE_TMPDIR, necesitará cambiar las siguientes variables ya que no tendrán constancia del cambio.
Esto es debido a cómo Portage maneja la variable: BUILD_PREFIX.
Directorio de compilación
Portage crea directorios de compilación específicos para cada paquete que se emerge dentro de /var/tmp/portage. Esta
ubicación viene definida por la variable BUILD_PREFIX.
Por defecto, Portage instala todas los archivos en el sistema de ficheros activo (/), pero puede cambiarse esta configuración a
través de la variable de entorno ROOT. Esto es útil cuando quiera crear nuevas imágenes compiladas.
Portage puede crear un registro por ebuild, pero solamente cuando la variable PORT_LOGDIR esté configurada y apuntando a una
dirección con permisos de escritura para Portage (usuario Portage). De manera predeterminada está variable está desactivada.
Si no configura PORT_LOGDIR no recibirá los registros con el sistema de registro actual, aunque tal vez reciba algún registro del
nuevo elog. Si no tiene definido PORT_LOGDIR y usa elog, recibirá los registros de construcción de paquetes y cualquier otro
registro salvado por elog, como se explica a continuación.
Portage ofrece un control de grano fino sobre el registro de sistema mediante el uso de elog:
PORTAGE_ELOG_CLASSES: Es donde se define cuáles mensajes serán registrados. Puede utilizarse cualquier cualquier
combinación separada por espacios en blanco de info, warn, error, log and qa.
info: Registra los mensajes "einfo" generados por un ebuild
warn: Registra los mensajes "ewarn" generados por un ebuild
error: Registra los mensajes "eerror" generados por un ebuild
log: Registra los mensajes "elog" encontrados en algunos ebuilds
qa:: Registra los mensajes del tipo "QA Notice" mostrados por un ebuild.
PORTAGE_ELOG_SYSTEM: Selecciona el (los) módulos para procesar los mensajes de registro. Si se deja sin definir, se
desactiva la función de registro. Puede usar cualquier combinación separada por espacios en blanco de save, custom,
syslog , mail, save_summary y mail_summary. Debe seleccionar al menos un módulo para poder usar elog.
save: Almacena un registro por paquete en $PORT_LOGDIR/elog, o /var/log/portage/elog si $PORT_LOGDIR no
está definido.
custom: Pasa todos los mensajes a una orden definida por el usuario en $PORTAGE_ELOG_COMMAND; esto se
discutirá más adelante.
syslog: Envía todos los mensajes al gestor de registro de sistema instalado.
mail: Pasa todos los mensaje a un servidor de correo definido por el usuario en $PORTAGE_ELOG_MAILURI; esto se
discutirá más adelante. Las características de correo de elog requieren >=portage-2.1.1.
save_summary: parecido a save, pero fusionando todos los mensajes en $PORT_LOGDIR/elog/summary.log, o
/var/log/portage/elog/summary.log si $PORT_LOGDIR fue definido.
mail_summary: parecido a mail, pero envía todos los mensajes en un solo mensaje de correo cuando emerge
finaliza.
PORTAGE_ELOG_COMMAND: Esto solamente se usa al activarse el módulo custom. Aquí podemos especificar una orden con
la cual se procesarán los mensajes de registro. Observe que puede hacer uso de dos variables de entorno: ${PACKAGE} es
el nombre del paquete y la versión, mientras que ${LOGFILE} es la ruta absoluta del archivo de registro. A continuación se
muestra un posible uso:
PORTAGE_ELOG_COMMAND="/trayectoria/al/gestor -p '\${PACKAGE}' -f '\${LOGFILE}'"
PORTAGE_ELOG_MAILURI: Contiene la configuración del módulo mail, tal como dirección, usuario, contraseña, servidor de
correo y número de puerto. Por defecto está configurado a "root@localhost localhost".
Aquí presentamos un ejemplo para un servidor smtp que requiere autenticación con nombre de usuario y contraseña en un
puerto en particular (el puerto por defecto es el 25):
PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
66 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
PORTAGE_ELOG_MAILFROM: Permite configurar la dirección "from" de los correos de registro; su valor por defecto es
"portage".
PORTAGE_ELOG_MAILSUBJECT: Permite la creación de una línea de asunto para los correos de registro. Note que puede
hacer uso de dos variables de entorno: ${PACKAGE} mostrará el nombre y la versión del paquete, mientras que ${HOST}
es el nombre del dominio completo del anfitrión donde está corriendo Portage.
Aquí está un posible uso:
PORTAGE_ELOG_MAILSUBJECT="El paquete \${PACKAGE} fue instalado en \${HOST} con algunos mensajes"
Importante: Si ha usado enotice con Portage-2.0.*, elimine enotice, ya que es incompatible con elog.
Como hemos indicado previamente, Portage se puede configurar mediante múltiples variables de entorno que se deben definir
en /etc/portage/make.conf o en uno de los subdirectorios de /etc/portage. Por favor, eche un vistazo a las páginas del
manual de make.conf y portage para obtener información detallada.
$ man make.conf
$ man portage
Cuando Portage construye las aplicaciones, pasa el contenido de las siguientes variables al guión de compilación y
configuración:
CFLAGS & CXXFLAGS define los parámetros deseados para la compilación de fuentes en C y C++.
CHOST define la plataforma correspondiente a la máquina en la que se construye para el guión de configuración
MAKEOPTS se pasa a la orden make para definir el grado de paralelismo al compilar. Para más información acerca de sus
opciones, vea la página man de make.
El parámetro USE también se usa al configurar y compilar, pero éste ha sido explicado ampliamente en capítulos previos.
Opciones al integrar
Cuando Portage integra una versión más nueva de algún paquete de software, también eliminará los archivos obsoletos de la
versión anterior del sistema. Portage otorga un tiempo de gracia de 5 segundos al usuario antes de llevar esta tarea a cabo. Este
tiempo se define por medio de la variable CLEAN_DELAY.
Puede decirle a emerge que use ciertas opciones cada vez que sea ejecutado configurando la variable EMERGE_DEFAULT_OPTS.
algunas opciones útiles podrían ser --ask, --verbose, --tree, etc.
Portage sobreescribe los archivos provistos por versiones más nuevas de un paquete si estos no estan almacenados en un lugar
protegido. Estos lugares protegidos se definen con la variable CONFIG_PROTECT y generalmente corresponden a rutas de
archivos de configuración. Este listado de directorios es delimitado con espacios en blanco.
Los archivos de configuración nuevos que se escriban en rutas protegidas lo serán con un nombre modificado y el usuario será
advertido acerca de su presencia.
Puede averiguar qué lugares están protegidos en la variable CONFIG_PROTECT con la salida de la orden emerge --info:
Más información acerca de la protección de archivos de configuración por Portage está disponible en la sección de archivos de
configuración (CONFIGURATION FILES) de la página man de emerge:
$ man emerge
Exclusión de directorios
67 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Ubicaciones de servidores
Cuando la información o datos no están disponibles en su sistema, Portage los descargará de la Internet. Las ubicaciones de los
servidores para los canales de información y datos se definen mediante los siguientes variables:
GENTOO_MIRRORS define una lista de servidores que contienen código fuente (distfiles)
PORTAGE_BINHOST define un servidor en particular que contiene paquetes pre-compilados para su sistema
Un tercer parámetro involucra la ubicación del servidor rsync utilizado al actualizar el árbol Portage. Esto se define en el fichero
/etc/portage/repos.conf (o en un fichero dentro de ese directorio si se ha definido como tal):
Las variables GENTOO_MIRRORS, sync-type y sync-uri se pueden definir automáticamente mediante la orden mirrorselect.
Debe hacer emerge mirrorselect antes de usarla. Para más información, vea la ayuda de mirrorselect en línea:
# mirrorselect --help
Si su entorno requiere el uso de un servidor proxy, configure las variables http_proxy, ftp_proxy y RSYNC_PROXY para declararlos.
Cuando Portage requiera descargar fuentes, utiliza por defecto la orden wget. Puede cambiar esto usando la variable
FETCHCOMMAND.
Portage puede continuar una descarga hecha en forma parcial. Usa wget por defecto, pero puede cambiarlo usando la variable
RESUMECOMMAND.
Asegúrese que sus FETCHCOMMAND y RESUMECOMMAND guarde las fuentes en la ubicación correcta. Al definir las variables
debe usar \${URI} y \${DISTDIR} para apuntar a la ubicación de las fuentes y la ubicación del directorio distfiles
respectivamente.
Configuración de rsync
Aunque no se puede alterar la orden rsync usada para actualizar el árbol Portage, podrá configurar algunas de las variables para
modificar su comportamiento:
PORTAGE_RSYNC_OPTS configura un número de variables por defecto usadas durante la sincronización, separado por
espacios en blanco. Estos no deberían ser cambiados a no ser que sepa exactamente lo que está haciendo. Note que
ciertas opciones requeridas con obligatoriedad serán siempre usadas aunque PORTAGE_RSYNC_OPTS no tenga valor
asignado.
PORTAGE_RSYNC_EXTRA_OPTS puede ser usado para configurar opciones adicionales al sincronizar. Cada opción deberá
ser separada con un espacio en blanco.
--timeout=<number>: define la cantidad de segundos que una conexión rsync puede permanecer sin que caduque.
Esta variable tiene un valor por defecto 180, pero los usuarios con conexiones dialup o individuos con computadoras
lentas podrían aumentar a 300 o más.
--exclude-from=/etc/portage/rsync_excludes: Esto apunta a un archivo que lista los paquetes y/o categorías que
rsync debe ignorar durante el proceso de actualización. En este caso, apunta a /etc/portage/rsync_excludes. Por
favor lea Utilizando un subconjunto del árbol Portage para la sintaxis de este archivo.
--quiet: Reduces output to the screen
--verbose: Prints a complete filelist
--progress: Displays a progress meter for each file
PORTAGE_RSYNC_RETRIES defines how many times rsync should try connecting to the mirror pointed to by the SYNC
variable before bailing out. This variable defaults to 3.
For more information on these options and others, please read man rsync.
Selección de rama
68 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Puede escoger su rama por defecto a través de la variable ACCEPT_KEYWORDS. El valor por defecto es la rama estable de su
plataforma. Para más información acerca de las ramas de Gentoo, vea el capítulo siguiente.
Características de Portage
Puede activar ciertas características de Portage por medio de la variable FEATURES. Estas han sido discutidas en capítulos
previos, por ejemplo Características de Portage.
Manejo de recursos
Con la variable PORTAGE_NICENESS, puede aumentar o reducir el valor "nice" con el que ejecuta Portage. El valor de la variable
PORTAGE_NICENESS se suma al valor "nice" actual.
Para más información acerca de valores "nice", vea la página man de nice:
$ man nice
Comportamiento de la salida
El valor de NOCOLOR, que por defecto es "falso", define si Portage desactiva el uso de los colores en su salida.
La rama estable
La variable ACCEPT_KEYWORDS define que rama de programas va a utilizar en su sistema. Como predeterminada figura la rama
estable para su arquitectura, por ejemplo x86.
Recomendamos que solamente utilice la rama estable. Sin embargo si no le importa demasiado la estabilidad y quiere ayudar a
Gentoo a través del envío de informes de error a https://bugs.gentoo.org, siga leyendo.
La rama de pruebas
Si quiere utilizar los programas más recientes, puede considerar utilizar la rama de pruebas. Para que Portage utilice la rama de
pruebas, añada un ~ delante de su arquitectura.
La rama de pruebas es exactamente para eso - pruebas. Si un paquete se encuentra en pruebas, eso significa que los
desarrolladores creen que funciona, pero no ha sido probado concienzudamente. Podría, perfectamente, ser el primero en
descubrir un error en el paquete, en cuyo caso puede rellenar un informe para ponerlo en conocimiento de los desarrolladores.
Aunque se debe tener cuidado, se pueden experimentar problemas de estabilidad, gestión del paquete imperfecta (por ejemplo
dependencias erróneas), actualizaciones demasiado frecuentes (que dan cómo resultado múltiples compilaciones) o paquetes
que no funcionan. Si no se conoce cómo funciona Gentoo y como resolver los problemas, recomendamos que se quede con la
rama probada y estable.
Por ejemplo, para seleccionar la rama de pruebas en una arquitectura x86, edite /etc/portage/make.conf y escriba:
ACCEPT_KEYWORDS="~x86"
Si actualiza su sistema ahora, encontrará que muchos paquetes serán actualizados. Tenga cuidado ya que: cuando haya
actualizado su sistema para emplear la rama inestable, normalmente no hay una manera sencilla de volver a la rama estable
(excepto mediante el empleo de copias de seguridad, claro).
La ubicación package.accept_keywords
Puede pedirle a Portage que le permita utilizar la rama de pruebas para algunos paquetes pero seguir utilizando la rama estable
en el resto del sistema. Para realizar esto, añada la categoría del paquete y el nombre si quiere utilizar la rama de pruebas al
fichero /etc/portage/package.accept_keywords. Además podría crear un directorio (con este mismo nombre) y situar allí el
paquete en un fichero. Por ejemplo, para utilizar la rama de pruebas con gnumeric:
app-office/gnumeric
69 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si quiere utilizar una versión específica de algún paquete de la rama de pruebas pero no quiere que portage utiliza esa rama de
pruebas para las siguientes versiones, puede añadir la versión a package.accept_keywords. En este caso se debe utilizar el
operador =. También puede introducir un rango de versiones con los operadores <=, <, > or >= .
En cualquier caso, si añade información sobre una versión, debe utilizar un operador. Si lo deja sin información sobre la versión,
no puede emplear un operador.
=app-office/gnumeric-1.2.13
La ubicación package.unmask
Importante: Los desarrolladores de Gentoo no darán soporte al empleo de estos archivos. Por favor, tenga cuidado cuando haga esto. Las
peticiones de soporte relacionadas con package.unmask y/o package.mask no serán respondidas. Considérese advertido.
Cuando un paquete ha sido enmascarado por los desarrolladores de Gentoo y aún así desea utilizarlo a pesar de la razón que se
menciona en el fichero package.mask (situado por defecto en /usr/portage/profiles), añada la versión deseada
(normalmente será exactamente la misma línea de profiles) en el fichero /etc/portage/package.unmask (o en un archivo
dentro de ese directorio, si es que es un directorio).
Por ejemplo, si =net-mail/hotwayd-0.8 está enmascarado, puede desenmascararlo añadiendo exactamente la misma línea en
package.unmask:
=net-mail/hotwayd-0.8
Nota: Si una entrada en /usr/portage/profiles/package.mask contiene un rango de versiones de paquete, necesitará desenmascarar
únicamente la versión o versiones que realmente necesita. Por favor, lea la sección previa para aprender cómo especificar versiones en
package.unmask.
La ubicación package.mask
Cuando no quiera que Portage instale un paquete en concreto o una versión específica de un paquete en su sistema, puede
enmascararlo simplemente añadiendo la línea apropiada a /etc/portage/package.mask (tanto si es un fichero como si es un
directorio y se hace en un fichero dentro de él).
Por ejemplo, si no quiere que Portage instale otras fuentes del núcleo que no sean gentoo-sources-2.6.8.1, añada la siguiente
línea a package.mask:
>sys-kernel/gentoo-sources-2.6.8.1
4.a. dispatch-conf
dispatch-conf es una herramienta diseñada para combinar los archivos ._cfg0000_<name>. Los archivos ._cfg0000_<name>
son generados por Portage cuando intenta sobreescribir un archivo en un directorio protegido por la variable CONFIG_PROTECT.
Empleando dispatch-conf, se puede actualizar la configuración mientras se registran todos los cambios realizados.
dispatch-conf guarda las diferencias entre las distintas configuraciones como parches utilizando el sistema de control de
versiones RCS. Esto implica que, si se comete un error en la actualización de un archivo de configuración, se puede regresar a la
versión anterior del archivo en cualquier momento.
Cuando se utiliza dispatch-conf, se le puede indicar que deje el archivo de configuración tal cual, que utilice la nueva
configuración, que permita editar la configuración actual o que combine los cambios interactivamente. dispatch-conf además
dispone de algunas funcionalidades adicionales:
Hay que asegurarse de primero editar /etc/dispatch-conf.conf y crear el directorio al que hace referencia la variable
archive-dir.
70 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
# dispatch-conf
Cuando se ejecuta dispatch-conf, se procesan todos los ficheros de configuración que cambian, uno por uno. Pulse u para
actualizar (reemplazar) el fichero actual por el nuevo y continuar con el siguiente. Pulse z para omitir (borrar) el nuevo fichero de
configuración y continuar con el siguiente. Una vez que se hayan procesado todos los ficheros , dispatch-conf terminará.
También se puede pulsar q en cualquier momento.
Para más información, consulte la página del manual de dispatch-conf. Allí se detalla como combinar interactivamente los de
configuración actuales y los nuevos, editar nuevos archivos de configuración, comprobar las diferencias entre archivos y mucho
más.
$ man dispatch-conf
4.b. etc-update
También se puede utilizar etc-update para instalar los ficheros de configuración. No es tan simple como dispatch-conf, ni
dispone de tantas funcionalidades, pero proporciona un método de combinación interactivo y también puede realizar
actualizaciones triviales de manera automática.
Sin embargo, al contrario que dispatch-conf, etc-update no conserva las versiones antiguas de los archivos de configuración.
Una vez se ha actualizado el fichero, la versión anterior se habrá eliminado de manera permanente. Ha de ser cuidadoso, ya que
utilizar etc-update es sensiblemente menos seguro que dispatch-conf.
# etc-update
Después de combinar los cambios sencillos, se presentará una lista con los ficheros protegidos que tienen una actualización
pendiente. Al final se muestran las opciones posibles:
Si se indica -1, etc-update terminará y no continuará con el resto. Si se introduce -3 o -5, todos los ficheros de configuración
listados serán sobreescritos con las nuevas versiones. Por tanto es muy importante seleccionar primero los ficheros de
configuración que no deben ser automáticamente actualizados. Esto se consigue simplemente indicando el número que aparece
a la izquierda del fichero de configuración.
Ahora puede ver las diferencias entre los dos ficheros. Si cree que el fichero de configuración actualizado puede ser utilizado sin
problemas, indique 1. Si cree que el fichero de configuración actualizado no es necesario, o no proporciona ninguna información
nueva o útil, indique 2. Si quiere actualizar su fichero de configuración actual de forma interactiva, introduzca 3.
Por ahora, no tiene sentido profundizar más sobre la actualización interactiva. Para completarlo, listaremos los comandos que
están disponibles durante la combinación interactiva de ambos ficheros. Son mostradas dos líneas (la original, y la nueva
propuesta) y un punto indicativo en el cual puede introducir uno de los comandos siguientes:
ed: Editar usando ambas versiones, cada una decorada con una cabecera.
eb: Editar usando ambas versiones.
el: Editar usando la versión de la izquierda.
er: Editar usando la versión de la derecha.
e: Editar una nueva versión.
l: Usar la versión de la izquierda.
r: Usar la versión de la derecha.
s: Incluir las líneas comunes sin comentarios.
v: Incluir las líneas comunes con comentarios.
q: Salir.
71 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Cuando haya acabado de actualizar los ficheros de configuración importantes, puede actualizar automáticamente el resto.
etc-update acabará si no encuentra más ficheros de configuración para actualizar.
4.c. quickpkg
Con quickpkg se pueden crear archivos de paquetes que ya han sido instalados en el sistema. Estos archivos pueden usarse
como paquetes precompilados. Ejecutar quickpkg es sencillo: basta añadir los nombres de los paquetes que se quiere archivar.
Los paquetes precompilados se almacenarán en $PKGDIR (por defecto /usr/portage/packages/). Los paquetes serán ubicados
en $PKGDIR/<category>.
Excluyendo categorías/paquetes
Puede realizar una actualización selectiva de ciertas categorías/paquetes e ignorar el resto. Esto se realiza indicando a rsync
que excluya categorías/paquetes durante el proceso emerge --sync.
Necesita definir el nombre del fichero que contiene los patrones de exclusión en la variable PORTAGE_RSYNC_EXTRA_OPTS de su
/etc/portage/make.conf.
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
games-*/*
Recuerde que esto puede provocar ciertos problemas con las dependencias, ya que paquetes nuevos y aceptados en su sistema
pueden depender de otros excluidos.
Puede indicarle a Portage que utilice ebuilds que no están disponibles oficialmente a través del árbol de Portage. Cree un nuevo
directorio (por ejemplo /usr/local/portage) en el cual guardará los ebuilds procedentes de otras fuentes. Utilice la misma
estructura de directorios que tenemos en Portage.
Después defina la variable PORTDIR_OVERLAY en /etc/portage/make.conf y haga que apunte al directorio creado previamente.
Cuando ahora utilice Portage, éste tendrá en cuenta aquellos ebuilds para no eliminarlos/sobreescribirlos la próxima vez que
ejecute emerge --sync.
Para los usuarios que desarrollan en varias extensiones, probar los paquetes antes de que lleguen al árbol de Portage o
simplemente que quieren utilizar ebuilds no oficiales procedentes de varias fuentes, el paquete app-portage/layman incorpora
layman, una herramienta que ayudará a conservar las extensiones actualizadas.
En primer lugar, instale y configure layman como se muestra en la Guía del Usuario de Overlays de Gentoo, y añada los
repositorios que desee con layman -a <overlay-name>.
Suponiendo que tiene dos repositorios llamados java (para las ebuilds en desarrollo) y entapps (para aplicaciones desarrolladas
en casa para su empresa). Puede actualizar estos repositorios con la orden:
Listado de Código 2.1: Usando layman para actualizar todos los repositorios
# layman -S
Para más información sobre el trabajo con extensiones, por favor, lea man layman y la Guía de usuario de layman/overlay.
72 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
En algunos casos querrá configurar, instalar y mantener programas por sí mismo sin que Portage automatice el proceso, incluso
aunque Portage pueda suministrarle esos programas. Conocidos son los casos de las fuentes del núcleo y los controladores de
nvidia. Puede configurar Portage para que conozca cuando un determinado paquete ha sido instalado manualmente en el
sistema. Este proceso recibe el nombre de inyectar y está soportado por Portage a través del archivo /etc/portage/profile
/package.provided.
Por ejemplo, si quiere que Portage le informe sobre gentoo-sources-2.6.11.6 el cual ha sido instalado manualmente, añada la
siguiente línea a /etc/portage/profile/package.provided:
sys-kernel/gentoo-sources-2.6.11.6
6.a. Introducción
Para la mayoría de los usuarios, la información recibida hasta ahora es suficiente para todas sus operaciones en Linux. Sin
embargo, Portage es capaz de mucho más; gran parte de sus características están dirigidas a usuarios avanzados o aplicable
solo en casos muy particulares. En todo caso, esto es excusa para no documentarlas.
Por supuesto que con gran flexibilidad viene una gran lista de casos potenciales. No será posible documentarlos todos aquí. En
cambio, esperamos poder enfocarnos en algunas situaciones genéricas que pueden ser modificadas para cumplir las
necesidades de cada quien. Si requiere afinamientos o datos más específicos, intente encontrarlos más bien en el Wiki Gentoo.
La mayoría, si acaso no todas estas características adicionales puede encontrarlas fácilmente leyendo las páginas del manual de
Portage:
$ man portage
$ man make.conf
Finalmente, sabemos que, si estas características avanzadas no son usadas correctamente, pueden hacer el solucionar fallos
pueda hacerse muy difícil. Asegúrese de mencionarlas en caso crea que ha tropezado con un fallo y desea abrir un reporte.
Usando /etc/portage/env
De manera predeterminada, se usarán en la construcción de un paquete las variables de entorno definidas en /etc/portage
/make.conf, tales como CFLAGS, MAKEOPTS etc. Sin embargo, en algunos casos, tal vez quisiéramos proporcionar diferentes
variables para paquetes específicos. Para esto, Portage soporta el uso de /etc/portage/env y /etc/portage/package.env.
El archivo /etc/portage/package.env contiene una lista de paquetes que proporcionan variables con valores distintos y un
identificador específico que indica a Portage los cambios deseados. Portage buscará este identificador, cuyo nombre puede
escoger uno mismo, en el archivo /etc/portage/env/<identifier>.
Primero registramos las variables para depuración en un archivo llamado /etc/portage/env/debug-cflags. El nombre es
escogido arbitrariamente, pero por supuesto refleja claramente su razón de ser para que sea obvia en el futuro.
media-video/mplayer debug-cflags
Al trabajar Portage con los ebuilds, usa un entorno bash en el cual llama las distintas funciones de construcción (como
src_prepare, src_configure, pkg_postinst, etc.). Portage también permite que uno mismo establezca el entorno bash.
La ventaja de usar un entorno bash propio es poder engancharse en el proceso de emerge en cada paso realizado. Esto puede
73 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
hacerse para cada emerge (por medio de /etc/portage/bashrc) o con entornos individuales por paquete (con
/etc/portage/env, como expusimos anteriormente).
Para engancharse al proceso emerge, el entorno bash puede inspeccionar las variables EBUILD_PHASE, CATEGORY y las variables
que siempre están disponibles durante el desarrollo del ebuild (tales como P, PF, ...). En base a los valores de estas variables,
podemos ejecutar pasos adicionales.
En este ejemplo usaremos /etc/portage/bashrc para llamar algunas aplicaciones de bases de datos para asegurar que sus
bases de datos estén actualizadas con respecto al sistema. En el ejemplo usaremos aide (una herramienta para detectar
intrusiones) y updatedb (usado por locate), pero solo como ejemplo. No considere que esto sea un CÓMO para aide ;-)
Para usar /etc/portage/bashrc en este caso, necesitaremos "enganchar" a las funciones postrm (después de borrar archivos) y
postinst (después de instalar archivos) porque es cuando los archivos en el sistema de archivos han sido cambiados.
La ubicación de /etc/portage/postsync.d
Hasta ahora hemos conversado acerca de engancharnos a procesos del ebuild. Sin embargo, Portage también tiene otra función
importante: actualizar el árbol Portage. Para ejecutar tareas después de actualizar el árbol Portage, coloque el guión dentro de
/etc/portage/postsync.d y asegúrese que esté marcado ejecutable.
Aunque no haya usado eix-sync para actualizar el árbol, todavía puede actualizar su base de datos después de ejecutar la
orden emerge --sync (o emerge-webrsync)) colocando un enlace simbólico a /usr/bin/eix llamado eix-update en
/etc/portage/postsync.d.
# ln -s /usr/bin/eix /etc/portage/postsync.d/eix-update
Nota: Si prefiere usar otro nombre, deberá escribir un guión que llame a /usr/bin/eix-update. El binario eix puede averigua cómo ha sido
llamado y deduce qué función debe ejecutar. Si crea un enlace simbólico a eix que no sea eix-update, no se ejecutará correctamente.
La ubicación de /etc/portage/profile
De manera predeterminada, Gentoo usa la configuración del perfil apuntado por /etc/portage/make.profile (un enlace
simbólico al directorio del perfil correcto). Estos perfiles definen configuraciones específicas al igual que hereda configuraciones
de otros perfiles (por medio de su archivo parent).
Al usar /etc/portage/profile, podemos hacer caso omiso de las configuraciones de perfil, tales como packages (los paquetes
considerados parte del conjunto system), ajustes use forzados y demás.
Si usa sistemas de archivo NFS en sistemas de archivos críticos, tal vez quiera "proteger" al paquete net-fs/nfs-utils para
que forme parte de system, lo cual ocasionará fuertes advertencias por parte de Portage en caso que se tratara de borrar.
*net-fs/nfs-utils
Usando epatch_user
Para manejar varios ebuilds similarmente, los desarrolladores de ebuilds usan eclasses (especie de librerías al nivel del
74 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
intérprete de comandos) que definen funciones comunes. Una de estas eclasses es eutils.eclass que ofrece una interesante
función de nombre epatch_user.
Con suerte, con la información proporcionada arriba, se puede llamar esta función para enganchar a, por ejemplo, la fase
prepare. La función puede ser llamada cuantas veces lo desee, pero aplicará los parches una sola vez.
El paquete www-client/firefox es uno de los pocos que llaman a epatch_user desde el ebuild, de manera que no hace falta
sustituir nada en particular.
Si necesita parchear firefox (por ejemplo, en el caso en que un desarrollador le ofrezca un parche y le pidiera que compruebe si
corrige una incidencia de la que ha informado), coloque el parche en /etc/portage/patches/www-client/firefox
(probablemente sea mejor usar el nombre completo, incluyendo la versión para que el parche no interfiera con versiones) y
vuelva a construir firefox.
1.a. Comenzando
Nota: Este documento asume que se tiene correctamente configurado el núcleo, los módulos para su hardware y que conoce el nombre de
su interfaz hardware. También asumiremos que se está configurando eth0, pero podría tratarse de eno0, ens1, wlan0, enp1s0 etc.
Para comenzar a configurar su tarjeta de red, necesitamos que el sistema RC (guiones de inicio) de Gentoo la reconozca. Esto se
hace creando un enlace simbólico desde net.lo a net.eth0 (o el nombre que tenga la interfaz de red en su sistema) en
/etc/init.d.
# cd /etc/init.d
# ln -s net.lo net.eth0
El sistema RC de Gentoo ahora conoce la interfaz. También necesita saber cómo configurar la nueva interfaz. Todas las interfaces
de red son configuradas en /etc/conf.d/net.
A continuación se muestra un ejemplo de configuración para DHCP y direcciones estáticas:
# Para DHCP
config_eth0="dhcp"
Nota: Si no especifica una configuración para la interfaz entonces se asume el uso de DHCP.
Nota: CIDR (Classless InterDomain Routing) Originariamente, las direcciones IPv4 fueron clasificadas en A, B, o C. Esta clasificación
temprana no tuvo en cuenta la gran popularidad que obtendría Internet, y ahora corre el riesgo de no tener suficientes direcciones únicas.
CIDR es un esquema de direccionamiento que permite que una dirección IP designe muchas direcciones IP. Una dirección IP CIDR es igual que
una dirección IP normal excepto que termina con una barra invertida seguida de un número; por ejemplo: 192.168.0.0/16. CIDR se describe
en RFC 1519.
Ahora que ya hemos configurado nuestra interfaz, podemos iniciarla o detenerla utilizando las siguientes órdenes:
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
Importante: Cuando esté solucionando problemas con la red, échele una mirada a /var/log/rc.log. A no ser que haya configurado
rc_logger="NO" en /etc/rc.conf, encontrará información almacenada en este archivo de registro acerca de las actividades al arrancar.
75 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Ahora que ya ha iniciado y detenido la interfaz de red, quizá quiera que comience automáticamente cuando Gentoo arranca.
Aquí tiene cómo hacerlo. La última orden "rc" indica a Gentoo que inicie todos los guiones en el nivel de ejecución actual que
todavía no se hayan sido iniciado.
Listado de Código 1.4: Configurar una interfaz de red para que inicie en el arranque
2. Configuración Avanzada
La variable config_eth0 es el corazón de la configuración de una interfaz. Es una lista de instrucciones de alto nivel para
configurar la interfaz (eth0 en este caso). Cada orden en la lista de instrucciones se ejecuta de manera secuencial. La interfaz
será evaluada como OK si, al menos, un orden funciona.
Orden Descripción
null No hace nada
noop Si la interfaz está funcionando y existe una dirección entonces aborta la configuración con éxito.
una dirección IPv4 o IPv6 Añade la dirección a la interfaz
dhcp,adsl o apipa (o una orden propia perteneciente Ejecuta el módulo que proporciona la orden. Por ejemplo dhcp ejecutará un módulo que proporcione
a un módulo de terceras partes) dhcp, que pudiera ser uno cualquiera de los siguientes: dhcpcd, dhclient o pump.
Si una orden falla, puede especificar una orden de retorno (fallback). El retorno tiene que coincidir exactamente con la estructura
de la configuración.
config_eth0="noop
dhcp"
fallback_eth0="null
apipa"
Nota: Cuando se utiliza el módulo ifconfig y se añade más de una dirección, se crean alias de interfaz para cada dirección extra. De esta
manera los dos ejemplos anteriores tendrán interfaces eth0, eth0:1 y eth0:2. No se puede hacer nada especial con estas interfaces ya que
el núcleo y otros programas simplemente tratan eth0:1 y eth0:2 como eth0.
Importante: ¡La orden de retorno es importante! Si no especificamos la opción null, la orden apipa se ejecutaría solo si la orden noop falla.
Los guiones en /etc/init.d pueden depender de una interfaz de red específica o, simplemente, de net (red). Todos los
interfaces de red en el sistema de inicio de Gentoo proporcionan algo llamado net.
Si está configurado rc_depend_strict="YES" en /etc/rc.conf, entonces todos los interfaces de red que proporcionen net
deben estar activos antes que pueda considerarse cumplida la dependencia en "net". En otras palabras, si tienen los interfaces
net.eth0 y net.eth1 y un guión de inicio depende de "net", ambos deben estar activados.
Por otro lado, si está configurado rc_depend_strict="NO", entonces la dependencia de "net" se considera cumplida al momento
de estar activo al menos uno de los interfaces de red.
Pero, ¿y qué pasa si net.br0 depende de net.eth0 y net.eth1? net.eth1 podría ser un dispositivo wireless o ppp que necesita
configurarse antes de añadirse al puente. Esto no puede hacerse en /etc/init.d/net.br0 ya que es un enlaces simbólico a
net.lo.
76 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
rc_need_br0="net.eth0 net.eth1"
Lo anterior no es suficiente. Los guiones de inicio de Gentoo utilizan una dependencia virtual llamada net para informar al
sistema cuando está disponible la conexión a red. Claramente, en el caso de arriba la conexión a red debería marcarse como
disponible cuando net.br0 está funcionando, no cuando lo están las otras. Por lo que tenemos que indicar también esto en
/etc/conf.d/net:
Listado de Código 2.2: Actualizar las dependencias y provisiones para los servicios de red
rc_net_lo_provide="!net"
rc_net_eth0_provide="!net"
rc_net_eth1_provide="!net"
Para una lectura más detallada sobre dependencias, consulte la sección Guiones de Inicio en el manual de Gentoo. Se puede
encontrar más información acerca de /etc/rc.conf en los comentarios dentro del propio archivo.
Los nombre de variables son dinámicos. Normalmente sigue la estructura variable_${interface|mac|essid|apmac}. Por
ejemplo, la variable dhcpcd_eth0 guarda los valores para las opciones de dhcpcd para eth0 y dhcpcd_essid los valores para
dhcpcd cuando cualquier interfaz se conecta al ESSID "essid".
Sin embargo, no hay ninguna regla que indique que los nombre de las interfaces sean ethx. De hecho, muchas interfaces
wireless tienen nombres como wlanx, rax o ethx. También, algunas interfaces definidas por el usuario como pueden ser puentes
puede tener cualquier nombre, como foo. Para hacer la vida un poco más interesante, los puntos de acceso wireless pueden
tener nombres con caracteres no alfanuméricos - esto es importante porque puede configurar los parámetros de red por ESSID.
La desventaja de todo esto es que Gentoo usa variables bash para la red - y bash no puede utilizar nada fuera de caracteres
alfanuméricos ingleses. Para solucionar esta limitación cambiamos cada carácter que no sea alfanumérico inglés por un carácter
_.
Otra desventaja de bash es el contenido de las variables - algunos caracteres necesitan especificarse de manera especial. Esto
se hace utilizando \ delante del carácter. A continuación tenemos una lista de caracteres especiales que necesitamos indicar de
esta manera. ",' y \.
En este ejemplo utilizamos ESSID wireless ya que puede contener un amplio abanico de caracteres. Deberemos utilizar ESSID My
"\ NET:
(Lo que hay arriba configura el dominio dns a My "\ NET cuando una
tarjeta wireless se conecta a un AP cuyo ESSID es My "\ NET)
Cómo funciona
Los nombres de la interfaces de red no se obtienen de forma arbitraria, el núcleo Linux y el gestor de dispositivos (la mayoría de
sistemas utilizan udev como gestor de dispositivos, aunque existen otros) obtiene el nombre de la interfaz mediante una serie de
reglas prefijadas.
Cuando se detecta una interfaz en un sistema, el núcleo Linux recolecta los datos disponibles para esa tarjeta de red. Estos
datos incluyen:
1. el nombre registrado de tarjeta de red (en la propia interfaz) y que más tarde se podrá obtener a través del parámetro
ID_NET_NAME_ONBOARD;
2. la ranura en la cual se ha insertado la tarjeta de red y que más tarde se podrá obtener a través del parámetro
ID_NET_NAME_SLOT;
3. la ruta a través de la cual se accede a la tarjeta de red y que más tarde se podrá obtener a través del parámetro
ID_NET_NAME_PATH;
4. la dirección MAC (que ofrece el fabricante) de la tarjeta y que más tarde se podrá obtener mediante el parámetro
ID_NET_NAME_MAC;
Basándose en esta información, el gestor de dispositivos decide como nombrar a las interfaces presentes en el sistema. Por
defecto, utiliza el primero de los tres primeros parámetros que se muestran arriba (ID_NET_NAME_ONBOARD, _SLOT o _PATH). Por
ejemplo, si se encuentra un valor para ID_NET_NAME_ONBOARD y éste es eno1, entonces la interfaz de red se llamará eno1.
77 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Si sabe el nombre de su interfaz, puede ver los valores de los parámetros mediante la orden udevadm:
Como el primer (y realmente el único) de los parámetros que aparecen es ID_NET_NAME_PATH, su valor se utiliza para nombrar al
interfaz de red. Si no se encuentra ninguno de los parámetros, entonces el sistema utiliza los nombres que ofrece el núcleo
(eth0, eth1, etc.)
Antes de este cambio, era el núcleo el que ponía los nombres a las tarjetas de red, dependiendo del orden en el que se cargaran
sus controladores (entre otras, probablemente oscuras razones). Este comportamiento se puede aún activar definiendo la opción
net.ifnames=0 en el gestor de arranque.
La idea detrás de este cambio en el nombrado es la de no confundir a la gente y hacer los cambios de nombre de forma fácil.
Suponga que tiene dos interfaces que se llamarían eth0 y eth1. Una se utiliza para acceder a la red a través de cable y la otra es
inalámbrica. Con el soporte para el nombrado de interfaces, puede llamarlas lan0 (cableada) y wifi0 (inalámbrica, es mejor evitar
usar los nombres anteriores bien conocidos como eth* y wlan* ya que todavía pueden parecerse a los nombres que hemos
sugerido).
Todo lo que necesita ahora es encontrar los parámetros para las tarjetas y utilizar esta información para definir su propia regla
de nombrado:
Listado de Código 4.2: Definir el nombre lan0 para la interfaz actual eth0
# vim /etc/udev/rules.d/70-net-name-use-custom.rules
# El primero utiliza la información MAC y el número 70- para que se lance antes que otras reglas de red
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="c8:0a:a9:42:9d:76", NAME="lan0"
# vim /etc/udev/rules.d/76-net-name-use-custom.rules
+# El segundo utiliza la información de ID_NET_NAME_PATH y el número 76- para estar entre los dos
+# 75-net-*.rules y 80-net-*.rules
SUBSYSTEM=="net", ACTION=="add", ENV{ID_NET_NAME_PATH}=="enp3s0", NAME="wifi0"
Debido a que las reglas se disparan antes de la regla por defecto (las reglas se disparan en orden alfanumérico, por lo que la 70
se lee antes que la 80), los nombres ofrecidos en el fichero de reglas se utilizarán en lugar de los que se usan por defecto. El
número asignado al fichero debería estar entre 76 y 79 (las variables de entorno se definen mediante una regla que comienza
por 75 y el nombrado por defecto lo realiza una regla con el número 80).
Ahora tenemos soporte para guiones de red, lo cual significa que podemos fácilmente añadir soporte para nuevos tipos de
interfaces y módulos de configuración mientras mantenemos la compatibilidad con los actuales.
Los módulos se cargan por defecto si el paquete que los requiere está instalado. Si especifica un modulo aquí que no tiene su
paquete instalado, entonces obtendrá un error acerca del paquete que necesita instalar. Lo ideal sería que solamente use la
configuración con módulos si tiene dos o más paquetes que proporcionen el mismo servicio y necesita marcar su preferencia de
uno sobre los otros.
Nota: Todas las configuraciones que aquí se comentan, son almacenadas en /etc/conf.d/net a menos que se especifique lo contrario.
78 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Proporcionamos dos manejadores de interfaces: ifconfig e iproute2. Hará falta uno de estos para cualquier tipo de
configuración de red.
Por defecto se instala ifconfig (el paquete net-tools es parte del perfil system). El paquete iproute2 es más poderoso y
flexible, pero no se incluye por defecto.
# emerge sys-apps/iproute2
# Para preferir ifconfig sobre iproute2 si ambos están instalados y debido a que openrc
# utilizar iproute2, debe hacer:
modules="ifconfig"
Ya que ifconfig e iproute2 hacen cosas muy parecidas, nos permitimos usar la misma configuración básica para ambos. Los
ejemplos a continuación funcionarán sin importar cuál módulo tenga instalado.
config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"
3.c. DHCP
El DHCP es un medio para obtener información de red (dirección IP, servidores DNS, puerta de enlace, etc) de un servidor DHCP.
Si existe un servidor DHCP en su red, apenas tendrá que decirle a cada cliente que utilice DHCP y el servidor se encargará de
configurar el resto. Por supuesto, tendrá que configurar otras cosas la red inalámbrica, el ppp, etc. u otros si hacen falta antes de
poder utilizar DHCP.
DHCP puede ser proporcionado por: dhclient, dhcpcd o pump. Cada módulo DHCP tiene sus propios pros y contras - aquí tiene
un pequeño resumen:
Módulo
Paquete Pros Contras
DHCP
dhclient net-misc/dhcp Creado por la ISC, la misma gente que hacen el Configuración excesivamente complicada, software bastante
software dns BIND. Muy configurable hinchado, no se puede obtener servidores NTP desde DHCP, no
envía el nombre de host por defecto.
dhcpcd net-misc/dhcpcd Durante largo tiempo ha sido la opción por defecto de Puede ser un poco lento a veces, no se convierte en demonio
Gentoo, no depende de herramientas externas, cuando el arrendamiento de la dirección es infinito.
activamente desarrollada por Gentoo.
pump net-misc/pump Ligero, no depende de herramientas externas. Ya no es mantenido por los desarrolladores, no es fiable
especialmente a través de modems, no se puede obtener
servidores de NIS desde DHCP.
Si tiene más de un cliente DHCP instalado, hará falta especificar cuál utilizar - sino, utilizaremos dhcpcd por defecto, si está
disponible.
Para enviar opciones específicas al módulo dhcp, utilizamos module_eth0="..."(cambie "module" por el nombre del módulo
dhcp que vaya a utilizar - por ejemplo: dhcpcd_eth0).
Tratamos que el servicio DHCP sea relativamente agnóstico, de manera que soportamos las siguientes órdenes usando la
variable dhcp_eth0. Por defecto no se configuran ninguno de ellos.
config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Espera agotada (timeout) después de 10
79 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
segundos
dhcp_eth0="release nodns nontp nonis" # Solamente obtenga la
dirección IP
Nota: dhcpcd y dpump envían el nombre de máquina al servidor DHCP por defecto así que no necesita especificarlo más.
# emerge net-dialup/ppp
Segundo, cree el guión de red PPP y el guión de red para la interfaz ethernet que se utilizará con PPP:
# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
rc_need_ppp0="net.eth0"
# Ojo: el * es importante
"nombre-usuario" * "contraseña"
Si utiliza PPPoE con un modem USB necesitará instalar br2684ctl. Por favor, lea /usr/portage/net-dialup/speedtouch-
usb/files/README para conseguir la información de cómo configurarlo adecuadamente.
Importante: Por favor, lea con detenimiento la sección sobre ADSL y PPP en /usr/share/doc/netifrc-*/net.example.bz2. Contiene
muchas explicaciones mucho más detalladas de las configuraciones que su instalación PPP podría necesitar.
APIPA intenta encontrar una dirección libre en el rango 169.254.0.0-169.254.255.255 haciendo arping a direcciones aleatorias en
ese rango para el interfaz. Si no se obtiene respuesta, se asigna esa dirección al interfaz.
Esto es útil solamente en redes donde no hay servidor DHCP y no hay conexión directa al Internet y que todos los demás
computadores también usen APIPA.
80 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
3.f. Bonding
El "Bonding" se utiliza para incrementar el ancho de banda de la red o para mejorar la capacidad de recuperación ante fallos del
hardware. Si tiene dos interfaces de red en la misma red puede unirlas de modo que sus aplicaciones solo vean un interfaz pero
en realidad están usando ambas.
Hay varias formas de configurar el bonding. Algunas de ellas como el modo 802.3ad LACP requieren un soporte y configuración
adicionales en el concentrador de la red. Para saber más de las opciones específicas eche un vistazo a su copia de /usr/src
/linux/Documentation/networking/bonding.txt.
config_eth0="null"
config_eth1="null"
config_eth2="null"
Elimine los servicios net.eth* de los niveles de ejecución, cree un servicio net.bond0 y añádalo al nivel de ejecución adecuado.
Los puentes se usan para unir redes. Por ejemplo, puede tener un servidor conectando al internet vía modem ADSL y una tarjeta
inalámbrica para que otros computadores se conecten al internet por medio del modem ADSL. Se puede crear un puente para
unir ambos interfaces.
# Finalmente, déle una dirección al puente - para esto puede usar DHCP también
config_br0="192.168.0.1/24"
Importante: Para usar algunas configuraciones de puente, tal vez tenga que consultar la documentación de Configuración por medio de
variables.
Si lo requiere, también puede cambiar la dirección MAC de los interfaces por medio del archivo de configuración de red.
81 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
No se requiere hacer emerge de paquete alguno para túneles, ya que el manejador del interfaz se encarga de esto.
Para dar soporte a VLAN, asegúrese de que se ha instalado sys-apps/iproute2 y también que se utiliza iproute2 como módulo
de configuración en lugar de ifconfig.
Las redes virtuales son un grupo de dispositivos de red que se comportan como si estuviesen conectados a un solo segmento de
red - aunque no lo estén. Miembros de una VLAN solo pueden ver miembros de la misma VLAN, aunque no compartan la misma
red física.
Para configurar VLANs, en primer lugar especifique los números de VLAN en /etc/conf.d/net del siguiente modo:
lans_eth0="1 2"
Las configuraciones específicas se VLAN se realizan con vconfig del siguiente modo:
vlan1_name="vlan1"
vlan1_ingress="2:6 3:5"
eth0_vlan1_egress="1:2"
Importante: Para usar algunas configuraciones de VLAN, tal vez haga falta consultar la documentación de Configuración por medio de
variables.
4. Redes Inalámbricas
4.a. Introducción
Las redes inalámbricas en Linux, normalmente se configuran de forma fácil. Hay dos formas de realizar esta configuración:
clientes gráficos y la línea de comandos.
La forma más fácil es usar el cliente gráfico, una vea haya instalado un entorno de escritorio. La mayoría de clientes gráficos,
como wicd y NetworkManager, son bastante autoexplicativos. Ofrecen una interfaz del tipo apuntar y hacer clic que le conectan
a una red en cuestión de segundos.
82 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Nota: wicd ofrece una utilidad de línea de comandos además de la interfaz gráfica principal. Puede obtenerla haciendo emerge de wicd con
el ajuste USE ncurses activado. Esta utilidad wicd-curses es particularmente útil para aquéllos que no usan un entrono de escritorio basado
en gtk, pero quieren una herramienta de línea de comandos fácil que no requiere configuración a mano de los ficheros.
Sin embargo, si no quiere usar un cliente gráfico, puede configurar la red inalámbrica con la línea de comandos, editando unos
pocos ficheros de configuración. Esto toma un poco más de tiempo, pero también requiere de menos paquetes que descargar e
instalar. Ya que los clientes gráficos son en su mayoría autoexplicativos (con capturas de pantalla útiles en sus páginas oficiales),
nos centraremos en las alternativas de línea de comandos.
Puede configurar una red inalámbrica usando la línea de comandos, instalando wireless-tools o wpa_supplicant. Lo
importante a recordar es que puede configurar las redes locales de forma global, no dependiendo de la interfaz.
La mejor opción es wpa_supplicant. Para un listado de los controladores soportados, lea la página de wpa_supplicant. Además,
actualmente, wpa_supplicant sólo puede conectarse a SSIDs para los cuales haya sido configurado.
Los wireless-tools soportan casi todas las tarjetas y controladores, pero no puede conectarse a PAs (puntos de acceso) con
WPA solamente. Si sus redes ofrecen únicamente cifrado WEP o están completamente abiertas, puede que prefiera la simpleza
de wireless-tools.
Aviso: Actualmente el controlador linux-wlan-ng no está soportado por baselayout. Esto es debido a que linux-wlan-ng tiene su propia
configuración que es completamente diferente a las demás. Se rumorea que los desarrolladores de linux-wlan-ng están pensando en
cambiar su configuración a wireless-tools. Cuando esto suceda, podremos utilizar linux-wlan-ng con baselayout.
Algunas tarjetas inalámbricas están desactivadas por defecto. Para activarlas, por favor, consulte la documentación de su
hardware. Algunas de estas tarjetas se pueden desbloquear mediante la aplicación rfkill. Si es éste el caso, utilice "rfkill list" para
ver las tarjetas disponibles y "rfkill unblock <index>" para activar la funcionalidad inalámbrica. En otro caso, puede que tenga
que desbloquear la tarjeta inalámbrica mediante un botón, conmutador o combinación especial de teclas en su ordenador
portátil.
WPA Supplicant es un paquete que le permite conectarse a puntos de acceso habilitados con WPA.
# emerge net-wireless/wpa_supplicant
Importante: Debe activar CONFIG_PACKET en su kernel para que funcione wpa_supplicant. Intente ejecutar grep CONFIG_PACKET
/usr/src/linux/.config para comprobar si lo tiene activado en su núcleo.
Nota: Dependiendo de sus ajustes USE, wpa_supplicant puede instalar una interfaz gráfica escrita en Qt4, que se integrará de forma
adecuada con KDE. Para obtenerla, ejecute echo "net-wireless/wpa_supplicant qt4" >> /etc/portage/package.use como root antes
de hacer emerge de wpa_supplicant.
Ahora debemos configurar /etc/conf.d/net para elegir wpa_supplicant sobre wireless-tools (si ambos están instalados,
wireless-tools será usado por defecto).
Nota: Si está usando el controlador host-ap, hará falta colocar el interfaz en modalidad gestión (Managed mode) antes de poder usarlo
correctamente con wpa_supplicant. Para esto puede usar iwconfig_eth0="mode managed" en /etc/conf.d/net.
Eso fue sencillo, ¿verdad? Sin embargo, todavía nos queda configurar wpa_supplicant, que es algo más difícil, dependiendo de
cuán seguros son los PAs a los cuales tratamos de conectarnos. A continuación mostramos un ejemplo simplificado del archivo
/etc/wpa_supplicant.conf.example, parte del paquete wpa_supplicant.
83 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Los Wireless Tools proveen una manera genérica para configurar los interfaces inalámbricos básicos hasta el nivel de seguridad
WEP. Aunque WEP es un sistema de seguridad débil, también es el más prevalente.
84 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
La configuración de Wireless Tools es controlado por algunas variables principales. El archivo ejemplo de configuración a
continuación deberá describir todo lo requerido. Algo para mantener presente es que ninguna configuración significa "conectarse
al punto de acceso sin encriptación que tenga la señal más fuerte" - de manera que siempre tratará de conectarse con lo que
sea.
# emerge net-wireless/wireless-tools
Nota: Aunque pueda almacenar su configuración inalámbrica en /etc/conf.d/wireless, esta guía le recomienda hacerlo en
/etc/conf.d/net.
Puede agregar opciones adicionales para afinar la selección de puntos de acceso, pero normalmente esto no hace falta.
Puede decidirse si conectarse solamente a PAs preferidos o no. Por defecto, si falla todo lo configurado y nos podemos conectar a
un PA no encriptado, entonces se hará. Esto puede ser controlado con la variable associate_order (orden asociado). Sigue una
tabla de valores y como estos ejercen este control.
Valor Descripción
any (cualquiera) Comportamiento por defecto
preferredonly (solo preferidos) Solamente nos conectaremos a PAs visibles en la lista de preferidos
forcepreferred (obligado a preferidos) Nos conectaremos obligatoriamente a los PAs en el orden preferido aunque no se encuentren en un barrido
forcepreferredonly (solamente preferidos obligados) No barrer buscando PAs - solo tratar de conectar a cada uno en orden
forceany (obligar a cualquiera) Igual que forcepreferred y además se conecta a cualquier otro disponible
Finalmente podemos hacer una lista negra de PAs (blacklist_aps) y seleccionar un único PA (unique_ap). blacklist_aps
funciona de manera similar a preferred_aps. unique_ap es un valor si o no (yes o no) que determina si un segundo interfaz
inalámbrico se puede conectar al mismo punto de acceso que el primer interfaz.
Si desea establecerse como un nodo Ad-Hoc al no lograr conectarse a algún PA en modo manejado, puede hacerlo también.
Listado de Código 3.4: Usar modo ad-hoc en caso de no conectar en modo manejado
85 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
Y ¿qué tal conectarse a redes Ad-Hoc o funcionar en modo Master para convertirse en PA? ¡Aquí tenemos una configuración justo
para eso! Tal vez tenga que especificar alguna clave WEP como se muestra arriba.
# Establezca el modo - que puede ser manejado (por defecto), ad-hoc o master
# No todos los manejadores soportan todos los modos
mode_eth0="ad-hoc"
Importante: A continuación citamos la documentación wavelan de BSD encontrado en la documentación de NetBSD Existen 14 canales
posibles; Se nos informa que los canales 1-11 son legales para Norteamérica , los canales 1-13 para la mayor parte de Europa, los canales
10-13 para Francia y sólo el canal 14 para el Japón. En caso de duda, por favor eche un vistazo a la documentación que acompaña la tarjeta o
el PA. Asegúrese que el canal que selecciona es el mismo del PA (o de la otra tarjeta en caso de ser red ad-hoc). Para las tarjetas vendidas en
Norteamérica y la mayor parte de Europa, es el canal 3 por defecto; en Francia el 11 y en el Japón es el 14.
Existen más variables que sirven para ayudar a configurar y operar una red inalámbrica por problemas ambientales o del
manejador. Aquí presentamos una tabla de otras cosas para intentar.
Valor por
Variable Descripción
defecto
iwconfig_eth0 Vea la página man de iwconfig para detalles acerca de qué enviar a iwconfig
iwpriv_eth0 Vea la página man de iwpriv para detalles acerca de qué enviar a iwpriv
sleep_scan_eth0 0 La cantidad en segundos a dormir antes de intentar un barrido. Esto hace falta cuando el manejador/firmware
requiere de más tiempo para activarse antes de poder usarlos.
sleep_associate_eth0 5 La cantidad en segundos a esperar para que el interfaz se asocie con el PA antes de continuar al siguiente.
associate_test_eth0 MAC Algunos manejadores no resetean la dirección MAC asociada a una inválida cuando pierden la señal o intentan
asociarse. Algunos manejadores no resetean el nivel de calidad cuando pierden la señal o intentan asociarse. La
configuraciones válidas son MAC, quality y all.
scan_mode_eth0 Algunos manejadores tienen que hacer el barrido en modo ad-hoc, así que, si falla el barrido, intente configurar
aquí como ad-hoc.
iwpriv_scan_pre_eth0 Envía algunas órdenes iwpriv al interfaz antes del barrido. Consulte la página man de iwpriv para más detalles.
iwpriv_scan_post_eth0 Envía algunas órdenes iwpriv al interfaz después del barrido. Vea la página man de iwpriv para más detalles.
A veces, se necesita una dirección IP estática cuando se conecta a un ESSID1 y cuando lo hace a ESSID2, se utiliza DHCP. De
hecho, casi todas las variables de módulo pueden cambiarse por ESSID. A continuación mostramos cómo se hace.
Nota: Esto funciona sin importar si usa WPA Supplicant o Wireless Tools.
config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"
86 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
5. Agregar Funcionalidad
Se pueden definir cuatro funciones en /etc/conf.d/net, que pueden ser llamadas antes o después de las operaciones
start/stop, de arranque/parada. Sus nombres se componen empezando con el nombre de interfaz, de manera que una función
puede controlar múltiples interfaces.
Los valores de retorno de las funciones preup y predown deben ser cero (éxito) indicando que la configuración o la
des-configuración de los interfaces pueden continuar. Si preup devuelve un valor no-cero, se detendrá la configuración del
interfaz. Si predown devuelve un valor no-cero, no se permite que el interfaz continúe desconfigurándose.
Los valores de retorno de las funciones postup() y postdown() serán ignorados, ya que no hay nada que hacer si hay indicación
de algún fallo.
${IFACE} es el interfaz que será encendido/apagado, ${IFVAR} es ${IFACE} convertido a un nombre de variable válido según
bash.
preup() {
# Comprobación del enlace de la interfaz antes de activarla.
# Esto solamente funciona con algunos interfaces de red y necesita
# que el paquete ethtool este instalado.
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
predown() {
# Por defecto en el guión de inicio se comprueba si
# el sistema (root) está montado por NFS y en ese caso no permitir
# que las interfaces se desactiven. Tenga en cuenta que, si
# especifica una función predown() sobreescribirá está regla.
# Aquí la tiene en caso de que todavía quiera utilizarla...
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
postup() {
# Esta función podría utilizarse, por ejemplo, para
# registrarse en un servicio dinámico de DNS. Otra posibilidad
# sería enviar un correo cada vez que la interfaz se conecta.
return 0
}
postdown() {
# Esta función está aquí mayormente para redondear ...
Aún no hemos pensado en algo interesante que pueda hacer ;-)
return 0
}
Nota: Para mayor información acerca de escribir sus propias funciones, agradecemos lea /usr/share/doc/netifrc-*/net.example.bz2.
Nota: Esto no funcionará con WPA suplicante - pero las variables ${ESSID} y ${ESSIDVAR} están disponibles en la función postup().
Se pueden definir dos funciones en /etc/conf.d/net que se ejecutan antes y después de la función asociada referida. Estas
funciones se nombran antecediéndole el nombre del interfaz, de manera que la misma función puede controlar múltiples
interfaces.
El valor retornado por la función preassociate() debe ser 0 (éxito) para indicar que la configuración o desconfiguración del
interfaz puede continuar. Si la función preassociate() retorna un valor no-cero, se interrumpirá la configuración del interfaz.
El valor retornado por la función postassociate() se ignora, ya que no hay nada que hacer si llegase a indicarse una falla.
87 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
A ${ESSID} se le asigna el ESSID exacto del PA al cual se está conectando, ya que ${ESSIDVAR} es ${ESSID}, convertido a un
nombre de variable permitido por bash.
preassociate() {
# A continuación se agregan 2 variables
# de configuración leap_user_ESSID y leap_pass_ESSID. Cuando
# ambos estén configurados para el ESSID al que se conectan,
# corremos el guión LEAP de CISCO.
return 0
}
postassociate() {
# Esta función existe mayormente para completar ...
# aunque no he pensado en algo interesante para hacer acá
# todavía ;-)
return 0
}
Nota: Las variables ${ESSID} y ${ESSIDVAR} no están disponibles en las funciones predown() y postdown().
Nota: Para mayor información acerca de cómo escribir sus propias funciones, agradecemos lea /usr/share/doc/netifrc-*
/net.example.bz2.
6. Manejo de Redes
Si el ordenador está en continuo movimiento, no siempre tendrá un cable ethernet conectado o un punto de acceso disponible.
También, puede querer que la red funcione automáticamente cuando un cable ethernet se conecte o se encuentre un punto de
acceso.
Nota: Esto documento solamente tiene habla sobre ifplugd, pero hay alternativas como netplub. netplug es una alternativa ligera a
ifplugd, pero confía en que tus controladores de red del núcleo funcionen correctamente, cosa que muchas veces no es así.
6.b. ifplugd
ifplugd es un demonio que arranca y para las interfaces de red cuando un cable se conecta o se desconecta. También puede
gestionar la detección asociándose a un punto de acceso o cuando uno nuevo entra dentro del radio de detección.
# emerge sys-apps/ifplugd
La configuración de ifplugd es bastante clara. El archivo de configuración se encuentra en /etc/conf.d/net. Ejecute man
ifplugd para obtener más detalles sobre las variables disponibles. Además, puede consultar más ejemplos en /usr/share
/doc/netifrc-*/net.example.bz2.
88 de 89 19/11/14 09:37
Documentación Gentoo Linux -- Manuales Gentoo... https://www.gentoo.org/doc/es/handbook/handbo...
ifplugd_eth0="--api-mode=wlan"
Además, para manejar múltiples conexiones de red, quizá quiera instalar una herramienta que facilita el trabajo con múltiples
configuraciones y servidores DNS. Es realmente útil cuando se recibe la dirección IP via DHCP. Simplemente instale openresolv.
# emerge openresolv
Consulte man resolvconf para aprender más cosas sobre sus características.
El contenido de este documento, a no ser que se especifique expresamente, está registrado bajo los términos de la licencia CC-BY-SA-2.5. Se aplican las
Pautas de Utilización del logotipo y nombre de Gentoo.
89 de 89 19/11/14 09:37