Manual Gentoo Linux 2008.0 AMD64 de instalación sin red
Contenido:
-
Instalando Gentoo
En esta parte aprenderá cómo instalar Gentoo en su sistema.
-
Acerca de la instalación Gentoo Linux
Los usuarios que no estén familiarizados con Gentoo no siempre saben
que Gentoo representa la posibilidad de escoger.
-
Arrancando el LiveCD instalador
Utilizando el LiveCD instalador puede arrancar su
sistema desde un entorno de ejecución que le permite instalar
Gentoo.
-
Utilizando el instalador Gentoo Linux basado en GTK+
Ahora dispone de la oportunidad de utilizar nuestro instalador gráfico
para instalar Gentoo. Configure las opciones que necesita a través de una
interfaz sencilla de utilizar y estará listo para comenzar.
-
Utilizando el instalador Gentoo Linux basado en Dialog
También dispone de la opción de utilizar nuestro instalador en modo texto
para instalar Gentoo. Configure las opciones que necesita a través de un
sencillo conjunto de menús y estará listo para comenzar.
-
¿Y ahora qué?
Ahora que tenemos un sistema Gentoo, ¿qué hacemos después?
-
Trabajando con Gentoo
Aprenda cómo trabajar con Gentoo: instalación de software,
configuración de variables, cambiando el comportamiento del sistema
Portage, etc.
-
Introducción al sistema Portage
Este capítulo explica los pasos "sencillos" que un usuario necesita
saber definitivamente para mantener el software en su sistema.
-
Los parámetros USE
Los parámetros USE son una parte importante de Gentoo. En este
capítulo aprenderá a trabajar con ellos y comprender cómo estos
parámetros USE interactúan con su sistema.
-
Características de Portage
Descubra las características de Portage, como el soporte para la
compilación distribuida, ccache y aún más.
-
Scripts de inicio
Gentoo usa un formato especial para los guiones de inicio, que
permite, entre otras cosas, decisiones derivadas de dependencias y
guiones virtuales. Este capítulo explica estos aspectos y cómo operar
con estos guiones..
-
Variables de entorno
Con Gentoo se pueden manejar fácilmente las variables de entorno del
sistema. Este capítulo explica cómo hacerlo y describe las variables
más comunes.
-
Trabajando con Portage
"Trabajando con Portage" cubre en profundidad la herramienta de manejo
de software de Gentoo, el sistema Portage.
-
Archivos y directorios
Ya que desea conocer Portage en profundidad, le interesará saber
donde almacena sus archivos y datos.
-
Configuración por medio de variables
Portage es completamente configurable por medio de diversas variables
en el archivo de configuración o a través de variables de entorno.
-
Mezcla de ramales de software
Gentoo suministra software en varias ramas, dependiendo de la
estabilidad y soporte de cada arquitectura. "Mezcla de Ramales de Software"
le informa cómo configurar estas ramas y cómo redefinir esta separación
de manera individual para cada paquete.
-
Herramientas adicionales de portage
El sistema Portage viene con algunas herramientas adicionales que
puede hacer que su experiencia con Gentoo sea aún mejor. Siga leyendo
para averiguar cómo se usa dispatch-conf y otras herramientas.
-
Divergiendo del árbol oficial
"Divergiendo del árbol oficial" le dará algunos consejos y trucos para
usar su propio árbol Portage, cómo sincronizar solamente las
categorías que desee, cómo inyectar paquetes y mucho más.
-
Configuración de Redes en Gentoo
Una guía comprensible para trabajar con redes en Gentoo.
-
Iniciándonos
Una guía para poner rápidamente a funcionar el interfaz de red en la
mayoría de ambientes comunes.
-
Configuración Avanzada
Aquí aprendemos acerca de cómo funciona la configuración - hace falta
conocer esta sección para aprender a trabajar con redes modularmente.
-
Trabajo Modular con Redes
Gentoo permite trabajar con redes de manera flexible - aquí les
explicamos cómo escoger entre distintos clientes DHCP, configuración
de "bonding", configuración de puentes, redes virtuales (VLANs) y más.
-
Redes Inalámbricas
Las redes inalámbricas no son tan sencillas. ¡Esperamos poder ponerlas a
trabajar!
-
Agregando Funcionalidad
Si tiene espíritu de aventura, puede agregar sus propias funciones
para trabajar con redes.
-
Manejo de Redes
Para usuarios de portátiles o usuarios que mueven sus computadores
entre distintas redes.
A. Instalando 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. Cuando se instala Gentoo, esto
se pone de manifiesto en varias ocasiones: se puede elegir cuánto se
quiere compilar, cómo instalar Gentoo, qué gestor de registro (logger)
prefiere, 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 capacidad de decisión 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, por favor,
envíe su opinión.
¿Cómo procedo a instalar Gentoo?
Gentoo Linux proporciona dos versiones de un instalador fácil de utilizar.
Un instalador basado en GTK+ (para utilizar en un entorno gráfico) y un
instalador basado en dialogs para utilizarse en consola. El capítulo 3 del
manual trata sobre el instalador en GTK+ mientras el capítuo 4 lo hace con
el basado en dialogs.
¿De qué opciones dispongo?
Puedes instalar Gentoo de diferentes formas. Puedes descargar e instalar
uno de nuestros CDs de instalación, desde otra distribución, desde un CD
de arranque (como Knoppix), desde un arranque por red, desde
un disquete de arranque,etc.
Este documento cubre la instalación utilizando un CD de instalación Gentoo ,
un CD autoarrancable que contiene todo lo que necesita para conseguir instalar
y ejecutar Gentoo Linux. Existen dos tipos de CDs de instalación, el CD de
instalación (installCD) o el LiveCD instalador (Installer LiveCD). El CD de
instalación contiene un entorno mínimo con los paquetes necesarios para
instalar Gentoo Linux. El LiveCD es un entorno Gentoo completo que puede ser
utilizado para múltiples tareas, siendo una de ellas instalar Gentoo Linux.
El LiveCD no está disponible para todas las arquitecturas en este momento.
Si su arquitectura no tiene LiveCD, este documento se referirá al empleo del
CD de instalación universal (Universal InstallCD).
Sin embargo, este proceso de instalación no emplea inmediatamente la última
versión de los paquetes disponibles; si se está buscando esto, debería
leer las instrucciones de instalación de nuestros manuales Gentoo Linux.
Si necesita ayuda para otros tipos de instalación, por favor lea nuestra
Guía de Instalación Alternativa.
También tenemos el documento
Trucos y consejos de Instalación de Gentoo (en inglés) que podría
resultar útil. Si nota que las instrucciones de instalación son demasiado
detalladas, no dude en utilizar nuestra Referencia Rápida para Instalación
la cual se encuentra entre nuestros recursos
de documentación oficiales si su arquitectura tiene este documento
disponible.
¿Problemas?
Si tienes algún problema con la instalación (o con el documento de
instalación), por favor, compruebe el error en desde nuestro
Proyecto de ingeniería de versiones Gentoo
, 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 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 som 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.
Si no se está seguro si el problema es un problema del propio usuario
(algún error que se ha cometido por no leer con cuidado la documentación)
o un problema con el software (un error que hemos cometido por no probar
la documentación/instalación con cuidado), tómese la libertad de entrar
#gentoo-es en la red irc.freenode.net. Por supuesto, siempre será
bienvenido independientemente del motivo :)
Si tiene cualquier pregunta concerniente a Gentoo, eche un vistazo a las Preguntas de Uso Frecuente, disponibles
en la Documentación de Gentoo. También puede
mirar los FAQs en nuestros
foros. Si no encuentras la respuesta
aquí, pregunta en #gentoo-es, nuestro canal IRC en irc.freenode.net. Sí,
algunos de nosotros somos frikis que aún usan el IRC :-)
1.b. Instalación rápida utilizando la Plataforma de Referencia Gentoo
¿Qué es la Plataforma de Referencia de Gentoo?
La Plataforma de Referencia de Gentoo, de ahora en adelante la conoceremos
por su abreviatura inglesa GRP (Gentoo Reference Platform), es una imagen de
los paquetes precompilados que los usuarios (esto le implica a usted) pueden
instalar durante la instalación de Gentoo para acelerar el proceso
de instalación. La GRP contiene todos los paquetes necesarios para tener una
instalación de Gentoo completamente funcional. No son todos los necesarios
que hacen falta para tener una instalación base preparada en nada de tiempo,
pero todas las compilaciones grandes (como puedan ser: xorg-x11, GNOME,
OpenOffice, Mozilla, ...) están disponibles como paquetes GRP.
Sin embargo, estos paquetes precompilados no son mantenidos durante la toda
la vida de la distribución de Gentoo. Son simplemente imágenes creadas con
cada distribución de Gentoo y hacen posible tener un sistema funcional en poco
tiempo. Puede actualizar el sistema en segundo plano mientras trabaja con su
entorno Gentoo.
Cómo gestiona Portage los Paquetes GRP
Su árbol de Portage - la colección de ebuilds (los archivos que
contienen toda la información sobre un paquete, como es su descripción,
página oficial, las URLs de código fuente, instrucciones de compilación,
dependencias, etc.) - debe sincronizarse con los GRP: las versiones de
los ebuilds disponibles y su correspondiente paquete GRP deben coincidir.
Por esta razón solamente se puede beneficiar de los paquetes GRP que Gentoo
suministra mientras se está llevando a cabo la instalación actual. GRP no
está disponible para los interesados en llevar a cabo una instalación
utilizando las últimas versiones de los paquetes disponibles.
¿Puedo utilizar GRP?
No se proporcionan paquetes GRP para todas las arquitecturas. Esto no
significa que GRP no esté soportado por el resto de arquitecturas, pero
significa que no disponemos de todos los recursos necesarios para
compilar y probar los paquetes GRP.
Por el momento proporcionamos paquetes GRP para las siguientes arquitecturas:
-
La arquitectura amd64 (amd64). Nota: los paquetes están
disponibles en el LiveCD instalador.
-
La arquitectura ppc (ppc32)
-
La arquitectura sparc (sparc64)
-
La arquitectura x86 (athlon, athlon-xp, athlon-mp, pentium-pro,
pentium2, pentium3, pentium4 and pentium-m) Nota: Los paquetes son para
i686 y están disponibles en el LiveCD instalador.
Si su arquitectura (o subarquitectura) no está en la lista, no podrá
utilizar la opción GRP durante la instalación.
Ahora que ha terminado la introducción, continuemos con Arrancando el CD de instalación Universal/LiveCD
instalador.
2. Arrancando el LiveCD instalador
2.a. Requisitos Hardware
Introducción
Antes de empezar, enumeraremos los requerimientos de hardware
necesarios para instalar con éxito Gentoo en su máquina utilizando el
LiveCD instalador.
Requisitos Hardware
| CPU |
Cualquier CPU AMD64 o EM64T |
| Memoria |
256MB |
| Espacio en disco |
1.5 GB (excluyendo el espacio de intercambio (swap)) |
| Espacio de intercambio |
Al menos 256 MB |
2.b. El LiveCD instalador Gentoo Linux
Introducción
Un LiveCD es un CD autoarrancable que contiene un entorno Gentoo
auto-contenido. Permite arrancar Linux desde el CD. Durante el proceso de
arranque se detecta el hardware y se cargan los controladores apropiados.
Estos CDs son mantenidos por los desarrolladores de Gentoo.
Actualmente tenemos dos CDs de instalación disponibles:
-
El LiveCD instalador contiene todo aquello que necesita para
instalar Gentoo. Proporciona un entorno gráfico, un instalador gráfico o
basado en consola el cual llevará a cabo la instalación automáticamente y,
por su puesto, las instrucciones de instalación para su arquitectura.
-
El CD de instalación Minimal solamente contiene un entorno mínimo que le
permite arrancar y configurar la red para que pueda conectarse a Internet.
No contiene ningún archivo adicional y no puede utilizarse para éste
proceso de instalación (recordemos que estamos en las instrucciones para
llevar a cabo la instalación sin conexión a la red).
2.c. Descargar, Grabar y Arrancar el LiveCD instalador Gentoo
Descargar y Grabar los CDs de instalación
Puede descargar cualquiera de los CD de instalación (y si quiere, también un CD
de Paquetes) desde uno de nuestros espejos. Los CDs de instalación se
encuentran en el directorio releases/amd64/2008.0/livecd.
Dentro del directorio encontrará los llamados archivos ISO. Estos son
imágenes de CD completas que puede grabar en un CD-R.
Después de descargar el archivo, puede verificar su integridad para
conocer si está corrupto o o:
-
Puede verificar la suma de control MD5 de su archivo y compararla con
la que nosotros proporcionamos (por ejemplo con la herramienta
md5sum bajo Linux/Unix o con md5sum en Windows).
-
Puede verificar la firma criptográfica que proporcionamos. Necesita
obtener la clave pública que hemos utilizado (17072058) antes de
seguir.
Para comprobar la clave pública utilizando GnuPG, ejecute el siguiente
comando:
Listado de Código 3.1: Obtener la clave pública |
$ gpg --keyserver subkeys.pgp.net --recv-keys 17072058
|
Ahora verificamos la firma:
Listado de Código 3.2: Verificar la firma criptográfica |
$ gpg --verify <archivo de firma> <archivo iso>
|
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/hdc
(reemplace /dev/hdc 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 LiveCD instalador
Importante:
Lea completamente esta subsección antes de continuar, probablemente no
tendrá la oportunidad de leerla mientras esté haciendo cosas luego.
|
Una vez que ha grabado el LiveCD instalador, es hora de
arrancarlo. 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 LiveCD 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
Enter para empezar el proceso de arranque con las opciones predefinidas,
o arrancar el LiveCD de instalación con opciones personales especificando un
kernel seguido por las opciones de arranque y luego oprimir la tecla Enter.
¿Especificamos un kernel? Sí, ya que proporcionamos varios en nuestro LiveCD
de instalación. El predeterminado es gentoo. Otros núcleos son para
hardware específico que necesitan las variantes -nofb que tienen
desactivado el framebuffer.
Más adelante encontrará una breve descripción de los kernels
disponibles:
| Kernel |
Descripción |
| gentoo |
Kernel por defecto con soporte para CPUS K8 (incluyendo soporte NUMA)
y EM64T.
|
| gentoo-nofb |
Idéntico a gentoo pero sin soporte de framebuffer |
| memtest86 |
Para verificar su memoria RAM para errores |
También puede pasarle opciones al kernel. Estas representan configuraciones
opcionales que puede activar o desactivar. La siguiente lista es la misma que
se muestra al presionar una de las teclas de F2 a F7 en la pantalla de
arranque.
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
-
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 kernel.
- 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 kernel 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 scripts init 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 kernels 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 kernels 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 Volumenes/Dispositivos:
- doevms
-
Activa el soporte para EVMS de IBM, o sistema empresarial de
administración de volúmenes. No es seguro utilizar esta opción
con lvm.
- dolvm
-
Activa el soporte para la administración lógica de volúmenes.
No es seguro utilizar esta opción junto con evms.
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
sintaxis es la misma que doload.
- nonfs
-
Desactiva la ejecución de portmap/nfsmound durante el arranque.
- nox
-
Esto provoca que el LiveCD no cargue automáticamente las X,
dejándole en la línea de comandos.
- scandelay
-
Provoca que el CD se detenga 10 segunds durante ciertos periodos del
arranque para permitir que se inicien los dispositivos lentos y
estén listos para utilizarse.
- scandelay=X
-
Permite especificar un determinado retardo, en segundos, durante ciertos
periodos del arranque para permitir a los dispositivos lentos
que se inicialicen y estén listos para usarse. Se sustituye X por el
número de segundos de la pausa.
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 kernel (si no está contento con el
kernel predeterminado gentoo) y las opciones de arranque. Por
ejemplo, aquí le mostramos como arrancar el kernel gentoo, con
el parámetro dopmcia:
Listado de Código 3.3: Arrancar un CD de instalación |
boot: gentoo dopcmcia
|
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 Alt-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 iniciará Gnome
y se registrará en el sistem "Live" Gentoo Linux como usuario "gentoo" en modo
gráfico. Estará registrado en el sistema como "root" (superusuario), en las
otras consolas y debería tener un símbolo de root ("#") allí. Puede cambiar
entre las consolas presionando Alt-F2, Alt-F3, Alt-F4, Alt-F5, Alt-F6. Para
volver al escritorio gráfico en el que comenzó debería presionar Alt-F7. Para
cambiar a otras consolas desde dentro de las X, debe utilizar la misma
combinación precedida de Ctrl. Será capaz de ejecutar comandos como root desde
cualquier terminal desde el entorno gráfico utilizando el comando sudo.
Puede incluso llegar a ser root desde un terminal para ejecutar múltiples
tareas.
Listado de Código 3.4: Utilizar sudo para ejecutar aplicaciones |
# sudo vi /etc/group
# sudo su -
|
Configurando Hardware Adicional
Cuando arranca el LiveCD, trata de detectar todos los dispositivos de hardware
y cargar los módulos apropiados en el kernel para soportar este hardware. En
la gran mayoría de casos, hace muy buen trabajo. Sin embargo, en algunos
casos, puede que no cargue automáticamente los módulos del kernel necesarios.
Si falla la auto-detección PCI con algún hardware de su sistema, trate de
cargar el módulo apropiado manualmente. Necesitará privilegios de root para
hacer esto.
En el siguiente ejemplo trataremos de cargar el módulo 8139too
(que da soporte a ciertos tipos de interfaces de red):
Listado de Código 3.5: Cargar módulos del kernel |
# modprobe 8139too
|
Opcional: Cuentas de Usuarios
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. Es necesario tener
acceso como root para cambiar la contraseña del propio root y de los nuevos
usuarios.
Para cambiar la contraseña de root, use passwd:
Listado de Código 3.6: Cambiar la contraseña de root |
$ sudo su -
# passwd
New password:
Re-enter password:
|
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
"john".
Listado de Código 3.7: Crear una cuenta de usuario |
# useradd john
# passwd john
New password:
Re-enter password:
|
Puede cambiar su identificador de usuario desde root para usar la del
nuevo usuario usando su:
Listado de Código 3.8: Cambiar de usuario |
# su - john
|
Puede además cambiar la contraseña del usuario "gentoo" en el entorno
gráfico. Esta cuenta está ya lista para ser usada en Internet.
Listado de Código 3.9: Cambiar la contraseña a gentoo |
$ passwd
New password:
Re-enter password:
|
Opcional: Ver la Documentación mientras se instala
Si se quiere ver el Manual Gentoo (ya sea desde el CD o en línea)
durante la instalación, se puede utilizar Mozilla Firefox (desde
el entorno gráfico) o utilizar links (desde un entorno
de consola).
Listado de Código 3.10: Ver la documentación del CD con Firefox |
# firefox /mnt/cdrom/docs/handbook/html/index.html
|
Si prefiere utilizar links para ver una versión sólo texto del
manual, asegúrese de crear una cuenta de usuario (ver Opcional: cuentas de usuario. Después presione,
Alt-F2 para ir a un nuevo terminal y entrar en el sistema.
Listado de Código 3.11: Ver la documentación del CD con links |
# links /mnt/cdrom/docs/html/index.html
|
Puede regresar a su ventana original presionando Alt-F7.
Sin embargo, es preferible que use el Manual Gentoo en línea ya que
es más reciente que el Manual en el CD. También puede verlo utilizando
Firefox o links, pero solo después de haber completado el
capítulo Configurar su Red (de otro modo no podrá usar Internet
para ver el documento):
Listado de Código 3.12: Ver la documentación en Internet con Firefox |
# firefox http://www.gentoo.org/doc/es/handbook/2008.0/es/handbook-amd64.xml
|
Listado de Código 3.13: Ver la documentación en Internet con links |
# links http://www.gentoo.org/doc/es/handbook/2008.0/es/handbook-amd64.xml
|
Ahora puede elegir entre utilizar el Instalador
basado en GTK+ (el cual necesita X) o el Instalador basado en Dialogs que se puede
ejecutar desde consola.
3. Utilizando el instalador Gentoo Linux basado en GTK+
3.a. Bienvenido
Antes de comenzar
Una vez que el instalador de Gentoo Linux (GLI) ha terminado de cargarse, se
mostrará la pantalla bienvenida. Se encarga de realizar una introducción
amigable al proceso de instalación de Gentoo en su ordenador. Recuerde leer
cada opción con cuidado. Se dispone de ayuda detallada para cada paso de la
instalación; simplemente presione Help en la esquina inferior izquierda
del instalador. Recomendamos leer siempre la ayuda que se proporciona antes
de elegir opciones. Tenga en cuenta que en cualquier momento del proceso de
instalación puede guardar progreso realizado en la configuración en caso de
que necesite retomarla en un futuro.
3.b. Particionar (Partitioning)
Preparar los discos
Para instalar Gentoo en el ordenador, necesitaremos preparar los discos. La
pantalla Partitioning mostrará una lista de discos detectados y le
permitirá especificar que sistemas de ficheros se quieren instalar en las
particiones. Si se selecciona Clear partitions se eliminarán todas las
particiones del disco, así que ¡tenga cuidado con esta opción!. También es
posible cambiar el tamaño de determinados tipo de particiones.
Si se elige el camino Recommended layout, el instalador eliminará todas
las particiones existentes en su disco y creará tres nuevas: 100MB para
/boot, una partición /swap de 512MB, y el resto del
espacio disponible en el disco será usado para /, la partición
de root.
Aviso:
Al igual que el resto de aplicaciones de particionamiento, debería realizar
una copia de seguridad en su sistema antes de realizar cualquier cambio
a la tabla de particiones, ya que cualquier posible bug podría causar la
perdida de datos. Cualquier cambio que se realiza a la tabla de particiones
será ejecutado por el instalador de inmediato.
|
3.c. Zona horaria
Elegir la zona horaria
Consulte el mapa y seleccione la región más próxima a su localización actual.
Posteriormente, se preguntará si se desea que el reloj esté ajustado a UTC
o a la hora local.
3.d. Red (Networking)
Información sobre el dispositivo
En esta pantalla, se pueden configurar los diferentes dispositivos de
interfaces de red que se detectaron en el ordenador. Lea las opciones
disponible con cuidado.
En la pestaña Hostname/Proxy Information/Other , se necesita elegir que
nombre de máquina se va a utilizar. También puede especificar un servidor
proxy y la configuración DNS, si fuera necesario.
3.e. Usuarios (Users)
Añadir usuarios y grupos
Primero configure su contraseña de root para el administrador del sistema
(el usuario root).
Recomendamos encarecidamente que cree un usuario normal para su
trabajo diario. ¡Trabajar como root todo el tiempo es peligroso y
debería evitarse! Cree los usuarios, añadalos a los grupos correspondientes y
configure sus contraseñas. Puede opcionalmente cambiar sus directorios home,
seleccionar la shell de acceso o escribir comentarios útiles.
3.f. Paquetes adicionales (Extra Packages)
Opcional: instalar paquetes adicionales
El LiveCD contiene cierto número de paquetes pre-construidos disponibles. Si
se quiere instalar cualquiera de ellos, marque la casilla apropiada.
3.g. Servicios al inicio (Startup Services)
Esta pantalla le permite elegir los diversos servicios que serán cargados
cuando el sistema arranque. Estudie las opciones disponibles con atención, y
seleccione los servicios que desea. Por ejemplo, si ha elegido instalar
xorg-x11 y quiere arrancar directamente con un escritorio gráfico,
entonces seleccione "xdm" en la lista.
3.h. Otras configuraciones (Other Settings)
Opciones generales
Ahora será capaz de elegir varias configuraciones, incluyendo el mapa del
teclado, el gestor de sesiones gráfico, el editor por defecto y si quiere
configurar el reloj hardware a UTC o a la hora local.
3.i. Terminar
Llegeados a este punto, está todo listo. Se puede reiniciar y entrar en el
nuevos sistema Gentoo en cualquier momento.
Felicidades, ¡su sistema está totalmente equipado! Continué con ¿A donde ir desde aquí? para conocer más sobre
Gentoo.
4. Utilizando el instalador Gentoo Linux basado en Dialog
4.a. Bienvenido
Antes de comenzar
Después de arrancar el LiveCD instalador de Gentoo Linux, tratará de cargar un
escritorio gráfico. Si no es capaz de hacerlo, mostrará en su lugar un
intérprete de comandos. Para lanzar el instalador, simplemente teclee:
Listado de Código 1.1: Arrancar el instalador |
# installer-dialog
|
El Instalador Gentoo Linux (GLI) muestra una introducción amigable al proceso
de instalación de Gentoo en su ordenador. Recuerde leer cada opción con
cuidado. Se dispone de ayuda para cada paso de la instalación en la parte
superior de la pantalla. Recomendamos leer siempre la ayuda que se proporciona
antes de elegir opciones. Tenga en cuenta que en cualquier momento del proceso
de instalación puede guardar progreso realizado en la configuración en caso de
que necesite retomarla en un futuro. Use la tecla Tab (en su teclado)
para moverse entre los menús de una pantalla y Enter para confirmar una
acción.
4.b. Particionar (Partitioning)
Preparar los discos
Para instalar Gentoo en el ordenador, necesitaremos preparar los discos. La
pantalla Partitioning mostrará una lista de discos detectados y le
permitirá especificar que sistemas de ficheros se quieren instalar en las
particiones. Si se selecciona Clear partitions se eliminarán todas las
particiones del disco, así que ¡tenga cuidado con esta opción!.
Si se elige el camino Recommended layout, el instalador creará tres
particiones: 100MB para /boot, una partición /swap
de 512MB, y el resto del espacio disponible en el disco será usado para
/, la partición de root.
Aviso:
Al igual que el resto de aplicaciones de particionamiento, debería realizar
una copia de seguridad en su sistema antes de realizar cualquier cambio
a la tabla de particiones, ya que cualquier posible bug podría causar la
perdida de datos. Cualquier cambio que se realiza a la tabla de particiones
será ejecutado por el instalador de inmediato.
|
4.c. Configuración del sistema
Zona horaria
Compruebe la lista y seleccione la región más cercana a su actual
localización.
Red (Networking)
En esta pantalla, se pueden configurar los diferentes dispositivos de
interfaces de red que se detectaron en el ordenador. Lea las opciones
disponible con cuidado.
La siguiente pantalla da la posibilidad de elegir entre DHCP y una
configuración de la dirección IP manual. Una vez se configure el interfaz
correctamente, se necesita crear el nombre de máquina para su sistema.
Opcionalmente, se puede especificar un nombre de dominio y cualquier
información sobre servidores DNS que se necesite.
Usuarios y grupos (Users and groups)
Primero configure su contraseña de root para el administrador del sistema
(el usuario root).
Recomendamos encarecidamente que cree un usuario normal para su
trabajo diario. ¡Trabajar como root todo el tiempo es peligroso y
debería evitarse! Cree los usuarios, añadalos a los grupos correspondientes y
configure sus contraseñas. Puede opcionalmente cambiar sus directorios home,
seleccionar la shell de acceso o escribir comentarios útiles.
Paquetes adicionales (Extra Packages)
El LiveCD contiene cierto número de paquetes pre-construidos disponibles. Si
se quiere instalar cualquiera de ellos, marque la casilla apropiada.
Servicios al inicio (Startup Services)
Esta pantalla le permite elegir los diversos servicios que serán cargados
cuando el sistema arranque. Estudie las opciones disponibles con atención, y
seleccione los servicios que desea. Por ejemplo, si ha elegido instalar
xorg-x11 y quiere arrancar directamente con un escritorio gráfico,
entonces seleccione "xdm" en la lista.
Otras configuraciones (Other Settings)
Ahora será capaz de elegir varias configuraciones, incluyendo el mapa del
teclado, el gestor de sesiones gráfico, el editor por defecto y si quiere
configurar el reloj hardware a UTC o a la hora local.
4.d. Terminar
El instalador le preguntará si quiere guardar su pérfil de instalación
para utilizarlo posteriormente. El instalador le informará cuando haya
terminado. Le devolverá al prompt del sistema cuando esto suceda. Todo lo que
necesita hacer es reiniciar escribiendo:
Listado de Código 4.1: Reiniciar |
# shutdown -r now
|
Felicidades, ¡su sistema está totalmente equipado! Continué con ¿A donde ir desde aquí? para conocer más sobre
Gentoo.
5. ¿Y ahora qué?
5.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 se debería ojear la siguiente parte del Manual de Gentoo
titulada Trabajando con Gentoo la cual
explica cómo mantener su software actualizado, cómo instalar más software,
qué parámetros USE existen, cómo funciona el sistema de arranque de Gentoo
(Gentoo Init system), etc.
Si está interesado en la optimización de su sistema para uso de escritorio,
o quiere aprender cómo configurarlo para que sea un completo sistema de
escritorio, consulte nuestra extensa
Guía de Configuración del
Escritorio. Además, quizá también 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.
Para obtener un completo listado de toda nuestra documentación disponible,
revise nuestra página de Recursos de
Documentación.
5.b. Gentoo en línea
Por supuesto, usted es siempre bienvenido a nuestros Foros de Gentoo o a alguno de nuestros
canales de IRC.
También tenemos varias listas de correo
abiertas para todos nuestros usuarios. La información de cómo entrar en las
mismas está disponible en esa página.
Ahora nos callaremos y le dejaremos que disfrute de su instalación :)
5.c. Cambios en Gentoo desde 2008.0
¿Cambios?
Gentoo está en continuo movimiento. Las siguientes secciones describen
importantes cambios que afectan a la instalación de Gentoo. Solamente
se recogen aquellos comunes a la instalación, no los cambios de paquetes
que no ocurren durante la instalación.
No se han producido cambios significativos.
B. Trabajando con Gentoo
1. Introducción al sistema Portage
1.a. Bienvenido a Portage
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 de script.
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:
Listado de Código 1.1: Leer la página del manual sobre emerge |
$ man emerge
|
1.b. El árbol Portage
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.
Actualizando el árbol Portage
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
el comando emerge proporciona una interfaz para rsync:
Listado de Código 2.1: Actualizar el árbol Portage |
# 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.
Listado de Código 2.2: Ejecutar emerge-webrsync |
# emerge-webrsync
|
1.c. Mantenimiento de Software
Buscar software
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:
Listado de Código 3.1: Buscar paquetes cuyo nombre tenga pdf |
$ emerge --search pdf
|
Si quiere buscar también en las descripciones puede utilizar el
parámetro --searchdesc (o -S).
Listado de Código 3.2: Buscar paquetes relacionados con pdf |
$ emerge --searchdesc pdf
|
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.
Listado de Código 3.3: Ejemplo de salida de emerge --search |
* 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:
Listado de Código 3.4: 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 el parámetro --pretend. Por ejemplo:
Listado de Código 3.5: Simular la instalación de gnumeric |
# emerge --pretend gnumeric
|
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 al
comando emerge:
Listado de Código 3.6: Descargar el código fuente de gnumeric |
# emerge --fetchonly gnumeric
|
Encontrar la documentación de un paquete instalado
Muchos paquetes vienen con su propia documentación. Algunas veces, el
paramétro USE doc determina si la documentación debe instalarse o no.
Puede comprobar la existencia del parámetro USE doc con el comando
emerge -vp <nombre paquete>.
Listado de Código 3.7: Comprobar la existencia de del parámetro USE doc |
# emerge -vp alsa-lib
[ebuild N ] media-libs/alsa-lib-1.0.14_rc1 -debug +doc 698 kB
|
La mejor manera de activar el parámetro USE doc es por paquete,
por medio de /etc/portage/package.use, de manera que sólo
obtendrá la documentación para los paquetes que le
interesan. Activando este parámetro de manera global puede causar
problemas con dependencias circulares. Para más información, por favor
lea el capítulo acerca de los
Parámetros 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.
Listado de Código 3.8: Localizar la documentación de un paquete |
# 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
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.14_rc1
* Contents of media-libs/alsa-lib-1.0.14_rc1:
/usr
/usr/bin
/usr/bin/alsalisp
|
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.
Listado de Código 3.9: Desinstalar gnumeric del sistema |
# emerge --unmerge gnumeric
|
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
el parámetro --ask que le indica a Portage que muestre la lista de
paquetes que quiere actualizar y pregunte si se quiere continuar:
Listado de Código 3.10: Actualizar su sistema |
# emerge --update --ask world
|
Portage buscará entonces las nuevas versiones de las aplicaciones que
explícitamente haya instalado (las listadas
en /var/lib/portage/world) - pero no revisa minuciosamente
sus dependencias. Si desea actualizar cada paquete en su sistema,
añada la opción --deep:
Listado de Código 3.11: Actualizar completamente su sistema |
# emerge --update --deep world
|
Ya que las actualizaciones de seguridad también afectan a paquetes
que no han sido explicítamente instalados en el sistema (pero que
son dependencias de otros programas), es recomendable ejecutar
este comando de vez en cuando.
Si ha cambiado últimamente alguno de sus
parámetros 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:
Listado de Código 3.12: Realizar una actualización completa |
# emerge --update --deep --newuse world
|
Meta-paquetes
Algunos paquetes del árbol Portage no tienen contenido real pero son
utilizados para instalar un conjunto de paquetes. Por ejemplo, el paquete
kde dejará un completo entorno KDE en su sistema a través de
instalar varios paquetes relacionados con KDE y 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 parámetros 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.
Todo esto se lleva a cabo a través de tres comandos:
Listado de Código 3.13: Desinstalar dependencias huérfanas |
# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild
|
revdep-rebuild es parte del paquete gentoolkit; no olvide
instalarlo primero:
Listado de Código 3.14: Instalar el paquete gentoolkit |
# emerge gentoolkit
|
1.d. Cuando Portage se queja...
Sobre SLOTs, paquetes virtuales, ramas, arquitecturas y perfiles
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 logueadores del sistema.
Aplicaciones que necesitan la disponibilidad de un "logueador del sistema" no
pueden depender, por ejemplo, de metalogd, ya que el resto de logueadores
del sistema son igualmente válidos. Portage permite virtuals: cada
logueador del sistema proporciona virtual/syslog de tal manera que las
aplicaciones puede depender de virtual/syslog.
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 sólo 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 4.1: Aviso de Portage sobre paquetes bloqueados (con --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)
|
Listado de Código 4.2: Aviso de Portage sobre paquetes bloqueados (sin --pretend) |
!!! Error: the mail-mta/postfix package conflicts with another package.
!!! both can't be installed on the same system together.
!!! Please use 'emerge --pretend' to determine blockers.
|
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.
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-bin-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 sólo de los paquetes. Si no, por favor envíe un informe de
error al sistema de seguimiento de errores
de Gentoo.
Paquetes enmascarados (masked)
Listado de Código 4.3: Aviso de Portage sobre paquetes enmascarados |
!!! all ebuilds that could satisfy "bootsplash" have been masked.
|
Listado de Código 4.4: Aviso de Portage sobre paquetes enmascarados - razón |
!!! possible candidates are:
- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- games-fps/unreal-tournament-451 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)
|
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.
Dependencias perdidas
Listado de Código 4.5: Aviso de Portage sobre dependencias perdidas |
emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3-4.2-r4".
!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem.
|
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.
Nombre ambiguo del Ebuild
Listado de Código 4.6: Aviso de Portage sobre nombre ambiguos en ebuild |
!!! The short ebuild name "aterm" is ambiguous. Please specify
!!! one of the following fully-qualified ebuild names instead:
dev-libs/aterm
x11-terms/aterm
|
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
Listado de Código 4.7: Aviso de Portage sobre dependencias circulares |
!!! Error: circular dependencies:
ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2
|
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
Listado de Código 4.8: Aviso de Portage sobre un fallo en la descarga |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
!!! Some fetch errors were encountered. Please see above for details.
|
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.
Pruebe después de una hora y vea si el problema persiste.
Protección del Perfil de Sistema
Listado de Código 4.9: Aviso de Portage sobre un paquete protegido por perfil |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.
|
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.
Errores en la verificación del digest
A veces, al intentar hacer emerge a un paquete, éste fallará, con el
siguiente mensaje:
Listado de Código 4.10: Falla en la suma de control |
>>> checking ebuild checksums
|
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 política rsync (al
ejecutar emerge --sync), los usuarios que sincronicen con
demasiada frecuencia ¡serán baneados! De hecho, es mejor esperar a su
próxima sincronización programada para no sobrecargar los servidores
rsync.
|
2. Los parámetros USE
2.a. ¿Qué son los parámetros USE?
Las ideas que hay detrás de los parámetros USE
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.
Definición de un parámetro USE
Comencemos por definir qué son los parámetros USE. Un parámetro USE es
una palabra clave que incorpora información de soporte y dependencias
para un concepto en concreto. Si define un determinado parámetro 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.
¿Qué parámetros USE existen?
Hay dos tipos de parámetros USE: globales y locales.
-
Un parámetro USE global lo usan varios paquetes, en todo
el sistema. Es lo que la mayoría de la gente entiende como parámetros USE.
-
Un parámetro USE local lo utiliza un sólo paquete para tomar
decisiones específicas para dicho paquete.
Puede encontrar una lista de los parámetros USE globales en línea o localmente en
/usr/portage/profiles/use.desc.
Se puede encontrar una lista de los parámetros USE locales
en /usr/portage/profiles/use.local.desc.
2.b. Usando los parámetros USE
Declarar parámetros USE permanentes
Esperamos que se haya convencido de la importancia de los parámetros
USE. Ahora pasaremos a explicar como se declaran estos parámetros.
Como ya se ha dicho anteriormente, todos los parámetros USE se
declaran dentro de la variable USE. Para simplificar al usuario
la tarea de buscar y escoger parámetros USE, ya proporcionamos una
configuración predeterminada. Esta configuración es un
compendio de parámetros 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/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).
Echemos un vistazo a la configuración predeterminada para el perfil
2004.3:
Listado de Código 2.1: Variable USE acumulada de make.defaults para el perfil 2004.3 |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Como puede ver, esta variable contiene bastantes palabras
clave. No modifique el fichero make.defaults para
ajustar la 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/make.conf. En esta variable añada los parámetros 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 parámetro USE
en /etc/make.conf:
Listado de Código 2.2: Un ejemplo de confirmación USE en /etc/make.conf |
USE="-kde -qt3 -qt4 ldap"
|
Declarar parámetros USE para paquetes específicos
A veces le interesará establecer un cierto parámetro USE tan sólo 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:
Listado de Código 2.3: Ejemplo de /etc/portage/package.use |
dev-db/mysql berkdb
|
Por supuesto también puede desactivar el empleo específico de
un parámetro USE para una aplicación en concreto. Por ejemplo si no
quiere soporte para java en PHP:
Listado de Código 2.4: Segundo ejemplo de /etc/portage/package.use |
dev-php/php -java
|
Declarar parámetros USE temporales
A veces necesitará utilizar una cierta configuración de USE tan sólo
una vez. En lugar de editar /etc/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 parámetro java USE
durante la instalación de seamonkey.
Listado de Código 2.5: Utilizando USE como una variable de entorno |
# USE="-java" emerge 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):
-
Configuración predeterminada de USE declarada en los archivos
make.defaults de su perfil.
-
Configuración definida por el usuario en /etc/make.conf
-
Configuración definida por el usuario en
/etc/portage/package.use
-
Configuración definida por el usuario como variable de entorno
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.
Listado de Código 2.6: Ejecutando emerge info |
# emerge --info
|
Adaptando su Sistema Completamente a los Nuevos Parámetros USE
Si ha cambiado sus parámetros USE y desea actualizar todo su sistema
para que utilice el nuevo parámetro, utilice la opción de
emerge llamada --newuse:
Listado de Código 2.7: Recompilando todo su sistema |
# emerge --update --deep --newuse world
|
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 parámetros de USE.
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.
|
Listado de Código 2.8: Desinstalando los paquetes obsoletos |
# 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 emergerlo primero.
Listado de Código 2.9: Ejecutando revdep-rebuild |
# revdep-rebuild
|
Cuando todo esto haya terminado, su sistema estará utilizando la nueva
configuración de los parámetros USE.
2.c. Parámetros USE específicos de un paquete
Viendo los parámetros USE disponibles
Veamos el ejemplo de seamonkey: ¿Qué parámetros 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):
Listado de Código 3.1: Viendo los parámetros USE usados |
# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB
|
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:
Listado de Código 3.2: Instalando gentoolkit |
# emerge gentoolkit
|
Ahora ejecute equery con el argumento uses para ver los
parámetros del USE de un paquete en concreto. Por ejemplo, en el caso
del paquete gnumeric:
Listado de Código 3.3: Utilizando equery para ver los parámetros USE usados |
# equery --nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column (U) - USE flags from make.conf ]
[ : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
U I
- - debug : Enable extra debug codepaths, like asserts and extra output.
If you want to get meaningful backtraces see
http://www.gentoo.org/proj/en/qa/backtraces.xml .
+ + gnome : Adds GNOME support
+ + python : Adds support/bindings for the Python language
- - static : !!do not set this during bootstrap!! Causes binaries to be
statically linked instead of dynamically
|
3. Características de Portage
3.a. 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/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
Listado de Código 1.1: Consultando la página de ayuda sobre make.conf |
$ 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:
Listado de Código 1.2: Conociendo que características están configuradas |
$ emerge --info | grep FEATURES
|
3.b. Compilación Distribuida
Usando 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 de Distcc.
Instalando 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.
Listado de Código 2.1: Instalando distcc |
# emerge distcc
|
Activando el soporte en Portage
Añada distcc a la variable FEATURES dentro de
/etc/make.conf. Hecho esto, edite la variable MAKEOPTS
a sus necesidades. Una pauta conocida para configurarla es poner -jX con
X representando el número de CPUs que ejecutan distccd
(incluyendo el host 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: Configurando distcc para usar los tres servidores DistCC disponibles |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Por supuesto, no se olvide ejecutar también el demonio distccd:
Listado de Código 2.3: Arrancando el demonio distcc |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Compilación utiliizando caché
Acerca de ccache
ccache es un caché de compilación rápida. Cuando compila un programa,
puede cachear resultados intermedios, de forma que, si usted recompilara el
mismo programa, el tiempo de compilación se reduciría ampliamente. En las
aplicaciones comunes, esto puede significar un aumento de velocidad entre 5 y
10 veces.
Si esta interesado en los pros y contras de ccache, por favor visite la
página web de ccache.
Instalando ccache
Para instalar ccache, ejecute emerge ccache:
Listado de Código 3.1: Instalando ccache |
# emerge ccache
|
Activando el Soporte en Portage
Primero, edite el /etc/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 de "2G":
Listado de Código 3.2: Editando CCACHE_SIZE en /etc/make.conf |
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:
Listado de Código 3.3: Observando las estadísticas de ccache |
# 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/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.
Utilizando ccache para compilaciones de C sin relación con Portage
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.
Listado de Código 3.4: Editar .bash_profile |
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
|
3.d. Soporte para Paquetes Binarios
Creando paquetes binarios
Portage soporta la instalación de paquetes precompilados. A pesar de que
Gentoo no proporciona paquetes precompilados por sí mismo (excepto para
las imágenes GRP) 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 concatalyst. Para más información sobre catalyst, por
favor lea las
Preguntas frecuentes sobre Catalyst (en inglés).
Instalando Paquetes Precompilados
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:
Listado de Código 4.1: Configurando PORTAGE_BINHOST en /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Cuando quiera instalar un paquete precompilado, añada la opción
--getbinpkg al comando 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.
Por ejemplo, para instalar gnumeric a través de paquetes precompilados:
Listado de Código 4.2: Instalando el paquete precompilado gnumeric |
# emerge --usepkg --getbinpkg gnumeric
|
Más información sobre las opciones para utilizar paquetes precompilados con
emerge puede consultarse en la página de la ayuda:
Listado de Código 4.3: Leyendo la página de ayuda sobre emerge |
$ man emerge
|
3.e. Descargando Ficheros
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.
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.
4. Scripts de inicio
4.a. Niveles de ejecución
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.
Primero, su gestor de arranque cargará en memoria la imagen del kernel
que definió en la configuración del gestor de arranque, después de lo
cual, se indica a la CPU que debe ejecutar el kernel. Al ser cargado y
luego ejecutado inicializa todas las estructuras y tareas específicas
del kernel 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.
Guiones de inicio (init scripts)
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 todos los guiones referenciados en
/etc/runlevels/boot sean ejecutados, 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.
¿Cómo funciona Init?
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:
Listado de Código 1.1: La línea de inicialización del sistema en /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:
Listado de Código 1.2: Inicialización del sistema, continuada |
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:
Listado de Código 1.3: La línea init por defecto (default) |
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:
Listado de Código 1.4: Definiciones de niveles de ejecución |
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é comandos deben ser ejecutados para cada una:
Listado de Código 1.5: Definición de las consolas virtuales |
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
|
¿Qué es un nivel de ejecución?
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 ingresar o salir del nivel de ejecución.
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.
Trabajando con los guiones de inicio
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, pause, 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:
Listado de Código 1.6: Iniciar postfix |
# /etc/init.d/postfix start
|
Nota:
Sólo 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 para pausarlo pause:
Listado de Código 1.7: Detener postfix, manteniendo la ejecución de los demás servicios |
# /etc/init.d/postfix pause
|
Si desea ver el estado de un servicio (iniciado, parado, pausado, ...)
puede usar el parámetro status:
Listado de Código 1.8: Estado del servicio postfix |
# /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:
Listado de Código 1.9: Reajustar la información de estado del servicio postfix |
# /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
|
Finalmente, puede indagar cuales dependencias son requeridas y están faltando:
Listado de Código 1.12: Solicitar una lista de dependencias faltantes para postfix |
# /etc/init.d/postfix broken
|
4.b. Trabajando con rc-update
¿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.
Añadiendo y removiendo servicios
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 |
# rc-update del postfix default
|
El comando rc-update -v show mostrará todos los scripts de inicio
con los niveles de ejecución donde ejecutarán:
Listado de Código 2.2: Recibir información de los guiones de inicio |
# rc-update -v show
|
Es posible ejecutar también rc-update show (sin -v) simplemente
para ver los scripts de inicio activos y sus respectivos niveles de ejecución.
4.c. Configuración de servicios
¿Porqué requerimos configuración adicional?
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:
Listado de Código 3.1: Variables definidas en /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP5"
|
Este tipo de archivo de configuración contiene solamente variables
(como /etc/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).
4.d. Escribiendo guiones de inicio
¿Realmente tengo que hacerlo?
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
La disposición básica de un guión de inicio se muestra a continuación.
Listado de Código 4.1: Disposición básica de un guión de inicio |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
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.
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.
Examinemos la información de dependencia del servicio postfix.
Listado de Código 4.2: Información de dependencias de postfix |
depend() {
need net
use logger dns
provide mta
}
|
Como podemos ver, el servicio postfix:
-
requiere la dependencia (virtual) net (suministrada por, en
este caso, /etc/init.d/net.eth0)
-
usa la dependencia (virtual) logger (suministrada por, en
este caso, /etc/init.d/syslog-ng)
-
usa la dependencia virtual (virtual) dns (suministrada por,
en este caso, /etc/init.d/named)
-
provee la dependencia (virtual) mta (común a todos los
servidores de correo electrónico)
Controlando el orden
En algunos casos, tal vez no requiera un servicio determinado, pero
desea que inicie antes (o después) de otro servicio
si está disponible en el sistema (note la condicionalidad,
esto ya no es una dependencia) y en el mismo nivel de ejecución
(note la condicionalidad, solo involucra servicios del mismo nivel de
ejecución). Puede suministrar esta información usando los parámetros
before o after.
Como ejemplo, podemos ver la disposición del servicio portmap:
Listado de Código 4.3: La función depend() en el servicio portmap |
depend() {
need net
before inetd
before xinetd
}
|
También puede usar el carácter cque engloba "*" para todos los servicios,
aunque no es aconsejable.
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:
Listado de Código 4.5: Función ejemplo de depend() |
depend() {
need localmount
after bootmisc
}
|
Funciones estándar
Junto con la función depend(), hará falta definir la función
start(), que contiene los comandos necesarios para inicializar
su servicio. Es aconsejable usar las funciones ebegin y
eend para informarle al usuario acerca de lo que está
ocurriendo:
Listado de Código 4.6: Ejemplo de función start() |
start() {
ebegin "Starting my_service"
start-stop-daemon --start --exec /path/to/my_service \
--pidfile /path/to/my_pidfile
eend $?
}
|
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.
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.
Otras funciones que puede definir son: stop() y
restart(). ¡No es obligatorio definirlas! Nuestro sistema de
inicio es suficientemente inteligente para llevar a cabo esta
funciones solo, si usa el start-stop-daemon.
Aunque no tiene que crear una función stop(), aquí está
un ejemplo:
Listado de Código 4.7: Función stop() de ejemplo |
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 algun 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:
Listado de Código 4.8: Un servicio que inicia el guión foo |
start() {
ebegin "Starting my_script"
start-stop-daemon --start --exec /path/to/my_script \
--pidfile /path/to/my_pidfile --name foo
eend $?
}
|
El start-stop-daemon tiene una excelente página man si requiere
más información:
Listado de Código 4.9: Obteniendo la página man para el start-stop-daemon |
$ man start-stop-daemon
|
La sintaxis de los guiones de inicio de Gentoo está basada en el
intérprete de comando Bourne Again Shell (bash), de manera que es
libre de usar construcciones compatibles con bash dentro del guión de
inicio.
Añadiendo opciones personalizadas
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 opts y crear una función con el mismo nombre de la
opción. Por ejemplo, para soportar una opción de nombre
restartdelay:
Listado de Código 4.10: Soporte para la opción restartdelay |
opts="${opts} restartdelay"
restartdelay() {
stop
sleep 3
start
}
|
Variables para la configuración de servicios
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.
- /etc/conf.d/<your init script>
- /etc/conf.d/basic
- /etc/rc.conf
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.
4.e. Cambiando el comportamiento del nivel de ejecución
¿Quién puede beneficiarse de esto?
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:
Listado de Código 5.1: Creando el directorio para el nivel de ejecución |
# 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:
Listado de Código 5.2: Añadiendo los guiones de inicio necesarios |
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
# rc-update del net.eth0 offline
# rc-update show offline
acpid | offline
domainname | offline
local | offline
net.eth0 |
|
Incluso aunque se haya eliminado net.eth0 del nivel offline,
udev intentará arrancar cualquier dispositivo que detecte
y lanzar los servicios adecuados. Necesitará añadir cualquier servicio
de red que no quiera que arranque (al igual que cualquier otro servicio
que pueda ser arrancado por udev) a /etc/conf.d/rc como
se muestra:
Listado de Código 5.3: Desactivar los servicios iniciados en /etc/conf.d/rc |
RC_COLDPLUG="yes"
RC_PLUG_SERVICES="!net.eth0"
|
Nota:
Para más información sobre los servicios iniciados en función de dispositivos,
consulte los comentarios del archivo /etc/conf.d/rc.
|
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 |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=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
5.a. ¿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 un comando.
|
| 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 la
cual el comando man busca las páginas de manual.
|
| INFODIR |
Esta variable contiene una lista de directorios separados por ":" en la cual
el comando info busca 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.
|
A continuación puedes encontrar ejemplos de definiciones para todas estas
variables:
Listado de Código 1.1: Definiciones de ejemplo |
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"
|
5.b. Definiendo variables globalmente
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:
Listado de Código 2.1: /etc/env.d/05gcc |
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:
Listado de Código 2.2: /etc/env.d/99local |
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 script 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 script 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 digitos decimales.
Listado de Código 2.3: Update order used by env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
La concatenación de variables no siempre funciona, sólo con
las siguientes variables: KDEDIRS, PATH,
LDPATH, MANPATH, INFODIR, INFOPATH,
ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK,
PRELINK_PATH y PRELINK_PATH_MASK. Para el resto de variables
(archivos en orden alfabético en /etc/env.d)se utilizará el
último valor definido
Cuando ejecute env-update, el script 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 /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 el siguiente comando para actualizar su entorno.
Posiblemente, los usuarios que instalaron Gentoo ellos mismos, recordarán
estas instrucciones de la instalación:
Listado de Código 2.4: Actualizar el entorno |
# env-update && source /etc/profile
|
Nota:
El comando anterior, solamente actualiza las variables en la termanal actual
y las nuevas consolas. Conociendo esto, si se esta trabajando en X11,
necesitara ejecutar source /etc/profile en cada nueva terminal que
abra o reiniciar las X para que todas las nuevas terminales cogan las
nuevas variables. Si esta utilizando un gestor de inicio, conviertase en
root y ejecute /etc/init.d/xdm restart. Si no, necesitará salir de la
sesión y volver a entrar para 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.
|
5.c. Definiendo variables locales
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 |
PATH="${PATH}:/home/my_user/bin:"
|
Cuando vuelva a iniciar la sesión, su variable PATH será actualizada.
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 el comando export. Mientra no cierre la sesión, la variable
PATH usará los valores temporales.
Listado de Código 3.2: Definir una variable específica a la sesión |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Trabajando con Portage
1. Archivos y directorios
1.a. Ficheros de Portage
Directivas de configuración
Portage viene con una configuración predefinida guardada en
/etc/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/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/make.profile más adelante.
Si está pensando en cambiar una variable de configuración, no
modifique /etc/make.globals o make.defaults.
En lugar de eso utilice /etc/make.conf el cual tiene
preferencia sobre los archivos anteriores. También encontrará
usr/share/portage/config/make.conf.example.
Como su propio nombre indica, este archivo es meramente un ejemplo y
Portage no lo utilizará con ningún propósito.
También puede definir una variable de configuración para Portage como
una variable de entorno, pero no es recomendable.
Información específica del perfil
Ya hemos hablado del directorio /etc/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 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.
Configuración específica para usuarios
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.!
Dentro de /etc/portage puede crear los siguientes
archivos:
-
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.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.
Listado de Código 1.1: Leyendo la página del manual sobre Portage |
$ man portage
|
Cambiando el fichero de Portage y el lugar del directorio
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/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
|
1.b. Guardando ficheros
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/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.
Base de datos de Portage
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
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.
1.c. Compilando aplicaciones
Ficheros temporales de Portage
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.
Ubicación del sistema de ficheros
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.
1.d. Características de registro de acciones (log)
Registro de acciones de Ebuilds
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 espaciones 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 cun comando definido
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 envia todos
los mensajes en un sólo mail cuando emerge finaliza.
-
PORTAGE_ELOG_COMMAND: Esto solamente se usa al activarse el módulo
custom. Aquí podemos especificar un comando con el cual
procesar los mensajes de registro. Note quepuede hacer uso dedos
variables de entorno: ${PACKAGE} es el nombre del paquete y la
versión, mientras que ${LOGFILE} es la trayectoria absoluta al
archivo de registro. Aquí hay 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
autentificació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"
-
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.
|
2. Configuración por medio de variables
2.a. Configuración del sistema Portage
Como hemos acotado previamente, Portage es configurable a través de
múltiples variables de entorno que se deben definir en
/etc/make.conf. Por favor, refiérase a la página man de
make.conf para más información.
Listado de Código 1.1: Lectura de la página man de make.conf |
$ man make.conf
|
2.b. Opciones al momento de construcción
Opciones de configuración y del compilador
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 al comando 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.
2.c. Protección de los archivos de configuración
Ubicaciones protegidas por Portage
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 del comando emerge --info:
Listado de Código 3.1: Obtener información acerca del contenido de CONFIG_PROTECT |
$ emerge --info | grep 'CONFIG_PROTECT='
|
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:
Listado de Código 3.2: Más información acerca de la protección de archivos de configuración |
$ man emerge
|
Exclusión de directorios
Para 'desproteger' ciertos subdirectorios en directorios protegidos,
use la variable CONFIG_PROTECT_MASK.
2.d. Opciones de descarga
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:
-
SYNC define un servidor en particular a ser utilizado por Portage
para descargar el árbol
Las variables GENTOO_MIRRORS y SYNC pueden ser configurados
automáticamente a través de la aplicación mirrorselect. Debe
hacer emerge mirrorselect primero, antes de usarla. Para más
información, vea la ayuda de mirrorselect en línea:
Listado de Código 4.1: Más información acerca de mirrorselect |
# mirrorselect --help
|
Si su entorno requiere el uso de un servidor proxy, configure las
variables http_proxy, ftp_proxy y RSYNC_PROXY para declararlos.
Comandos para descargar
Cuando Portage requiera descargar fuentes, utiliza por defecto el
comando 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.
Puede definir manejadores específicos por protocolo con
FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP, etc.
Configuración de rsync
Aunque no se puede alterar el comando rsync usado 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 espaciones 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.
2.e. Configuración de Gentoo
Selección de rama
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.
2.f. Comportamiento 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:
Listado de Código 6.1: Más información acerca 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.
3. Mezcla de ramales de software
3.a. Utilizando una sola rama
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 http://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/make.conf y escriba:
Listado de Código 1.1: Configurar la variables ACCEPT_KEYWORDS |
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).
3.b. Mezclando estable con pruebas
La ubicación package.keywords
Puede pedirle a Portage que le permita utilizar la rama de pruebas para
algunos paquetes en concreto 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.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:
Listado de Código 2.1: Configurar /etc/portage/package.keywords para gnumeric, línea completa |
app-office/gnumeric ~x86
|
Probando versiones concretas
Si quiere utilizar una versión específica de algún paquete desde 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.keywords. En este caso se debe utilizar el
operador = . También puede introducir un rango de versiones utilizando 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.
En el siguiente ejemplo indicamos a Portage que acepte gnumeric-1.2.13:
Listado de Código 2.2: Utilizar una versión concreta de gnumeric |
=app-office/gnumeric-1.2.13 ~x86
|
3.c. Empleo de paquetes enmascarados
La ubicación package.unmask
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. Aquí queda el aviso.
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 exactamente la misma línea
en el archivo /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:
Listado de Código 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8
|
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 kernel que
no sean gentoo-sources-2.6.8.1, puede añadir la siguiente línea
a package.mask:
Listado de Código 3.2: ejemplo de /etc/portage/package.mask |
>sys-kernel/gentoo-sources-2.6.8.1
|
4. Herramientas adicionales de portage
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:
-
Automáticamente actualizar el fichero de configuración si las
actualizaciones solamente afectan a comentarios
-
Automáticamente actualizar los ficheros de configuración que sólo difieren
en la cantidad de espacios en blanco.
Hay que asegurarse de primero editar /etc/dispatch-conf.conf y
crear el directorio al que hace referencia la variable archive-dir.
Listado de Código 1.1: Ejecutar dispatch-conf |
# 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.
Listado de Código 1.2: Consultar la página del manual de dispatch-conf |
$ 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.
Listado de Código 2.1: Ejecutar etc-update |
# 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:
Listado de Código 2.2: etc-update options |
Por favor, seleccione el fichero a editar introduciendo el número correspondiente.
(-1 para salir) (-3 para auto-combinar todos los ficheros restantes)
(-5 para auto-combinar SIN usar 'mv -i'):
|
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 automaticamente actualizados. Esto se consigue simplemente
indicando el número que aparece a la izquierda del fichero de configuración.
Como ejemplo, seleccionamos el fichero de configuración
/etc/pear.conf:
Listado de Código 2.3: Actualizar un fichero de configuración concreto |
Comienzo de diferencias entre /etc/pear.conf y /etc/._cfg0000_pear.conf
Fin de diferencias entre /etc/pear.conf y /etc/._cfg0000_pear.conf
1) Reemplazar el original con la actualización
2) Borrar la actualización, manteniendo el original inalterado
3) Combinar interactivamente el original y la actualización
4) Mostrar de nuevo las diferencias
|
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:
Listado de Código 2.4: Comandos disponibles en la combinación interactiva |
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.
|
Cuando haya acabado de actualizar los ficheros de configuración importantes,
puede actualizar automaticamente 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.
Por ejemplo, para archivar curl, arts y procps:
Listado de Código 3.1: Ejemplo de uso de quickpkg |
# quickpkg curl arts procps
|
Los paquetes precompilados se almacenarán en $PKGDIR/All
(por defecto /usr/portage/packages/All). Los enlaces
simbólicos que apunten a esos paquetes se ubican en
$PKGDIR/<category>.
5. Divergiendo del árbol oficial
5.a. Utilizando un subconjunto del árbol Portage
Excluyendo categorías/paquetes
Puede realizar una actualización selectiva de ciertas categorías/paquetes e
ignorar el resto. Esto se realiza a través indicando a rsync que
excluya categorías/paquetes durante el proceso emerge --sync.
Necesita introducir el nombre del archivo que contiene los patrones
para la variable --exclude-from de su /etc/make.conf.
Listado de Código 1.1: Introducir el archivo de exclusiones en /etc/make.conf |
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
|
Listado de Código 1.2: Excluir todos los juegos en /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.
5.b. Añadiendo Ebuilds no oficiales
Definiendo un directorio extensión de Portage (overlay)
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/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.
Trabajando con varias extensiones (overlays)
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/gentoolkit-dev incorpora gensync, una herramienta
que ayudará a conservar las extensiones actualizadas.
Con gensync se pueden actualizar todos los repositorios de una sola
vez, o seleccionar solamente algunos de ellos. Cada repositorio debería tener
un archivo .syncsource en el directorio de configuración
/etc/gensync/ que contiene la información relativa a localización
del repositorio, nombre, ID, etc.
Suponiendo que tiene dos repositorios adicionales llamados java (para
el desarrollo de ebuilds en java) y entapps (para el desarrollo de
aplicaciones en casa para tu empresa) entonces puedes actualizar los
repositorios de la siguiente manera:
Listado de Código 2.1: Utilizar gensync para actualizar varios repositorios |
# gensync java entapps
|
5.c. Software no mantenido por Portage
Utilizando Portage con programas con auto-mantenidos
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 kernel y los controladores de nvdia. 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:
Listado de Código 3.1: Línea de ejemplo para package.provided |
sys-kernel/gentoo-sources-2.6.11.6
|
D. Configuración de Redes en Gentoo
1. Iniciándonos
1.a. Comenzando
Nota:
Este documento asume que se tiene correctamente configurado el kernel,
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 eth1, wlan0, etc.
|
Nota:
Esto documento requiere que este ejecutándose baselayout-1.11.11 o superior.
|
Para comenzar a configurar su tarjeta de red, necesitamos que el sistema
RC (runlevel scripts o initscripts) de Gentoo la reconozca. Esto se hace
creando un enlace simbólico desde net.lo a net.eth0 en
/etc/init.d
Listado de Código 1.1: Crear el enlace simbólico net.eth0 apuntando a net.lo |
# 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:
Listado de Código 1.2: Ejemplos de /etc/conf.d/net |
config_eth0=( "dhcp" )
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default via 192.168.0.1" )
|
Nota:
Si no especifica una configuración para la interfaz entonces se asume 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 los siguientes comandos:
Listado de Código 1.3: Comenzar y detener los scripts de red |
# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop
|
Importante:
Cuando este solucionando problemas con la red, se recomienda configurar
RC_VERBOSE="yes" en /etc/conf.d/rc para obtener mayor
información sobre lo que está ocurriendo.
|
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.
El último comando "rc" indica a Gentoo que inicie todos los scripts en el
nivel de ejecución actual que no hayan sido iniciados ya.
Listado de Código 1.4: Configurando una interfaz de red para que inicie en el arranque |
# rc-update add net.eth0 default
# rc
|
2. Configuración Avanzada
2.a. 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 comando en la lista de instrucciones
se ejecuta de manera secuencial. La interfaz será evaluada como OK si, al
menos, un comando funciona.
Aquí tiene una lista de instrucciones integradas:
| Comando |
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 un comando propio
perteneciente a un módulo de terceras partes)
|
Ejecuta el módulo que proporciona el comando. Por ejemplo
dhcp ejecutará un módulo que proporcione dhcp, que
pudiera ser uno cualquiera de los siguientes: dhcpcd,
dhclient o pump.
|
Si un comando falla, puede especificar un comando de retorno (fallback).
El retorno tiene que coincidir exactamente con la estructura de la
configuración.
Puede encadenar estos comandos. Aquí se muestran algunos ejemplo reales:
Listado de Código 1.1: Ejemplos de configuración |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
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
kernel 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,
el comand apipa solamente sería ejecutado si el comando noop
falla.
|
Nota:
APIPA y
DHCP serán tratados más adelante.
|
2.b. Dependencias de red
Los scripts en /etc/init.d pueden depender de una interfaz de
red específica o, simplemente, de net (red). net puede definirse en
/etc/conf.d/rc ya que puede significar cosas distintas utilizando
la variable RC_NET_STRICT_CHECKING.
| Valor |
Descripción |
| none |
El servicio net se considera siempre funcionando |
| no |
Básicamente significa que al menos uno de los servicios
net.* sin contar net.lo debe estar
funcionando. Esto podría ser usado por los usuarios de equipos
portátiles que tienen una conexión wifi y una estática y solamente
quieren tener una activa para que el servicio net aparezca como
funcionando.
|
| lo |
Es la misma que la opción no pero net.lo también
cuenta. Esto puede ser útil para la gente que no le importa que alguna
interfaz en concreto se active durante el arranque.
|
| yes |
Con esto TODAS las interfaces de red DEBEN estar activas para que el
servicio net se considere funcionando.
|
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.
La respuesta es hacer nuestra propia función depend() en
/etc/conf.d/net
Listado de Código 2.1: dependencia de net.br0 en /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Para una lectura más detallada sobre dependencias, consulte la sección
"Guiones de Inicio" en el manual de Gentoo.
2.c. Nombre de variables y valores
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:
Listado de Código 3.1: ejemplo de nombre para la variable |
dns_domain_My____NET="My \"\\ NET"
|
3. Trabajo Modular con Redes
3.a. Módulos de Red
Ahora tenemos soporte para guiones de red, lo cual significa que podemos
facilmente 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.
|
Listado de Código 1.1: Preferencias en los módulos |
modules=( "iproute2" )
modules_eth0=( "pump" )
modules=( "!iwconfig" )
|
3.b. Manejadores de interfaces
Proporcionamos dos manejadores de interfaces: ifconfig e
iproute2. Hará falta uno de estos para cualquier tipo de
configuración de red.
ifconfig es utilizado por defecto en Gentoo y se incluye en el
perfil del sistema. iproute2 es un paquete más potente y flexible pero
no se incluye por defecto.
Listado de Código 2.1: Para instalar iproute2 |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
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.
Listado de Código 2.2: Ejemplos de ifconfig e iproute2 |
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
|
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 DHCP |
Paquete |
Pros |
Contras |
| dhclient |
net-misc/dhcp |
Creado por la ISC, la misma gente que hacen el software dns BIND.
Muy configurable
|
Configuración excesivamente complicada, software bastante 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 Gentoo, no
depende de herramientas externas, activamente desarrollada por
Gentoo.
|
Puede ser un poco lento a veces, no se convierte en demonio
cuando el arrendamiento de la dirección es infinito.
|
| 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 los siguientes comandos usando la variable
dhcp_eth0. Por defecto no se configuran ninguno de ellos.
-
release- suelta la dirección IP para ser re-utilizada
-
rnodns - no sobre-escriba el /etc/resolv.conf
-
rnontp - no sobre-escriba el /etc/ntp.conf
-
rnonis - no sobre-escriba el /etc/yp.conf
Listado de Código 3.1: Ejemplo de configuración DHCP en /etc/conf.d/net |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Nota:
dhcpcd y dpump envían el nombre de máquina al servidor
DHCP por defecto así que no necesita especificarlo más.
|
3.d. ADSL con PPPoE/PPPoA
Primero necesitamos instalar el software ADSL.
Listado de Código 4.1: Instalar el paquete rp-pppoe |
# emerge net-dialup/ppp
|
Nota:
Si necesita PPPoA, asegurese de utilizar >=baselayout-1.12.x.
|
Segundo, cree el script de red PPP y el script de red para la interfaz
ethernet que se utilizará con PPP:
Listado de Código 4.2: Crear los scripts de PPP y ethernet |
# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
|
Asegúrese de configurar RC_NET_STRICT_CHECKING="yes" en
/etc/conf.d/rc.
Ahora necesitamos configurar /etc/conf.d/net.
Listado de Código 4.3: Una configuración básica PPPoE |
config_eth0=( null )
adsl_user_eth0="username" config_ppp0=( "ppp" )
link_ppp0="eth0"
plugins_ppp0=( "pppoe" )
username_ppp0='user'
password_ppp0='password'
pppd_ppp0=(
"noauth"
"defaultroute"
"usepeerdns"
"holdoff 3"
"child-timeout 60"
"lcp-echo-interval 15"
"lcp-echo-failure 3"
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
)
depend_ppp0() {
need net.eth0
}
|
También puede configurar su password en /etc/ppp/pap-secrets.
Listado de Código 4.4: Ejemplo /etc/ppp/pap-secrets |
"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
/etc/conf.d/net.example. Contiene explicaciones mucho
más detalladas de todas las configuraciones que su instalación
PPP podría necesitar.
|
3.e. APIPA Direccionamiento Privado Automático (Automatic Private IP Addressing)
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.
Para soporte APIPA, haga emerge net-misc/iputils
o net-analyzer/arping.
Listado de Código 5.1: Configuración de APIPA en /etc/conf.d/net |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
3.f. Bonding
Para unir enlaces con bonding/trunking haga emerge net-misc/ifenslave.
El "bonding" se utiliza para aumentar el ancho de banda hacia la red. Si
tiene dos interfaces que van a usar la misma red, puede unirlos (bond,
en inglés) para que las aplicaciones vean solo uno, pero que
en realidad usa ambos interfaces.
Listado de Código 6.1: Configuración del bonding en /etc/conf.d/net |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
3.g. Puentes (soporte para 802.1d)
Para soportar puentes, haga emerge net-misc/bridge-utils.
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.
Listado de Código 7.1: Configurar un puente en /etc/conf.d/net |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
depend_br0() {
need net.eth0 net.eth1
}
|
Importante:
Para usar algunas configuraciones de puente, tal vez tenga que
consultar la documentación de Configuración por medio de
variables.
|
3.h. Dirección MAC
No hace falta hacer instalar nada para poder cambiar la dirección MAC de un
interfaz por otra específica si se dispone de
sys-apps/baselayout-1.11.14. Sin embargo, si necesita cambiarlo a
una dirección MAC aleatoria o tiene un baselayout más antiguo que el
mencionado anteriormente, entonces necesitará ejecutar emerge
net-analyzer/macchanger para hacer uso de esta característica.
Listado de Código 8.1: Ejemplo de cambio de una dirección MAC |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
mac_eth0="random-full"
|
3.i. Haciendo túneles
No se requiere hacer emerge de paquete alguno para túneles, ya que el
manejador del interfaz se encarga de esto.
Listado de Código 9.1: Configuración de túneles en /etc/conf.d/net |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
|
3.j. VLAN (soporte para 802.1q)
Para soporte VLAN, haga emerge net-misc/vconfig.
Las redes virtuales son un grupo de dispositivos de red que se
comportan comno 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.
Listado de Código 10.1: Configuración de VLANs en /etc/conf.d/net |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
|
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
Actualmente soportamos la configuración de redes inalámbricas con
wireless-tools o wpa_supplicant. Lo importante para
recordar es que una red inalámbrica se configura de manera global y no
por interfaz.
La mejor opción es wpa_supplicant, pero no soporta todos los
controladores. Para una lista completa de 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.
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.
|
4.b. WPA Supplicant
El WPA
Supplicant es un paquete que permite conectarse a puntos de
acceso habilitados con WPA. Su configuración está en estado cambiante,
por estar todavía en beta, pero generalmente funciona a la perfección.
Listado de Código 2.1: Instalación de wpa_supplicant |
# emerge net-wireless/wpa_supplicant
|
Importante:
Debe activar CONFIG_PACKET en su kernel para que funcione
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).
Listado de Código 2.2: Configurar /etc/conf.d/net para wpa_supplicant |
modules=( "wpa_supplicant" )
wpa_supplicant_eth0="-Dmadwifi"
|
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.
Listado de Código 2.3: Un ejemplo de /etc/wpa_supplicant.conf |
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="sencillo"
psk="contraseña-frase muy secreta"
priority=5
}
network={
ssid="segundo ssid"
scan_ssid=1
psk="contraseña-frase muy secreta"
priority=2
}
network={
ssid="ejemplo"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
network={
ssid="prueba-noencriptada"
key_mgmt=NONE
}
network={
ssid="prueba-estatica-wep"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
network={
ssid="prueba-estatica-wep2"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
network={
ssid="prueba adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="contraseña-frase secreta"
}
|
4.c. Wireless Tools
Configuración inicial y modo manejado
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.
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.
Listado de Código 3.1: Instalar wireless-tools |
# 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.
|
Importante:
Hará falta consultar la documentación acerca de nombres de variables.
|
Listado de Código 3.2: Configuración ejemplo con iwconfig en /etc/conf.d/net |
modules=( "iwconfig" )
key_ESSID1="[1] s:suclaveaqui key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
preferred_aps=( "ESSID1" "ESSID2" )
|
Afinamiento en la selección de puntos de acceso
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.
Listado de Código 3.3: Ejemplo de blacklist_aps y de unique_ap |
blacklist_aps=( "ESSID3" "ESSID4" )
unique_ap="yes"
|
Modos Ad-Hoc y Master
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 |
adhoc_essid_eth0="This Adhoc Node"
|
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.
Listado de Código 3.5: Ejemplo de configuración ad-hoc/master |
mode_eth0="ad-hoc"
essid_eth0="This Adhoc Node"
channel_eth0="9"
|
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
refiérase 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.
|
Solucionando problemas con Wireless Tools
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.
| Variable |
Valor por defecto |
Descripción |
| 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 algunos comandos iwpriv al interfaz antes del barrido.
Consulte la página man de iwpriv para más detalles.
|
| iwpriv_scan_post_eth0 |
|
Envía algunos comandos iwpriv al interfaz después del barrido.
Vea la página man de iwpriv para más detalles.
|
4.d. Definiendo la configuración de la red por ESSID
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.
|
Importante:
Necesitará consultar la documentación variable name.
|
Listado de Código 4.1: Reemplazar configuración de red por ESSID |
config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )
config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="algun.dominio"
dns_search_domains_ESSID1="busque.eneste.dominio busque.enaquel.dominio"
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
|
5. Agregando Funcionalidad
5.a. Puntos de enlace standard en las funciones
Cuatro funciones puedes ser definidas, llamables antes y después de
operación de arranque/parada. Sus nombre se componen usando el nombre
de interfaz primero, para 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 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 son
ignorados, ya que no hay nada por hacer si indican 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.
Listado de Código 1.1: Ejemplo de funciones pre/post up/down |
preup() {
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
5.b. Puntos de enlace para las herramientas inalámbricas
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 ejecutables 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.
Al ${ESSID} se le asigna el ESSID exacto del PA al cual se está
conectando ya que ${ESSIDVAR} es ${ESSID}, convertido a
un nombre de una variable permitido por bash.
Listado de Código 2.1: Funciones pre/post asociación |
preassociate() {
local user pass
eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
if [[ -n ${user} && -n ${pass} ]]; then
if [[ ! -x /opt/cisco/bin/leapscript ]]; then
eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Login Failed for ${user}"
return 1
fi
fi
return 0
}
postassociate() {
return 0
}
|
Nota:
Las variables ${ESSID} y ${ESSIDVAR} no están
disponibles en las funciones predown() y postdown().
|
6. Manejo de Redes
6.a. Gestión de la red
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.
Aquí se encuentran algunas herramientas que puede ayudar a gestionar
esto.
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 kernel 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.
Listado de Código 2.1: Instalar ifplugd |
# 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 /etc/conf.d/net.example.
Listado de Código 2.2: Ejemplo de configuración de ifplug |
ifplugd_eth0="..."
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.
Listado de Código 2.3: Instalar openresolv |
# emerge openresolv
|
Consulte man resolvconf para aprender más cosas sobre sus
características.
El contenido de este documento está registrado bajo los términos de
la licencia
Creative Commons - Reconocimiento / Compartir Igual
|