HOWTO Instalacion de Gentoo

De Gentoo Linux Wiki

Este articulo es parte de las series de HOWTO.
Kernel & Hardware Red y Servicios Portage Relacionado con el Sistema Servidor X Juegos Misceláneos

Explicación: Nota.

Falta la correción global de usuarios y ortográfica.


Tabla de contenidos

[editar] Pre-Instalación

Esto es una miniguia de instalación básica de la distribucion GNU/Linux Gentoo, tener en cuenta que puede tener muchisimos fallos puesto que la acabo de escribir y esta orientado al usuario medio-bajo en conocimientos del sistema GNU/Linux.

Recordar que siempre que aparezca el símbolo # y un comando lo que se deberá de poner es únicamente el comando, el símbolo # se refiere al icono de identificación de una shell del usuario root o administración.


[editar] Obtención de la distribución gentoo

La distribución gentoo la obtendremos de los servidores/mirrors de www.gentoo.org. En nuestro caso tendremos dos versiones, la minimal que únicamente es el live cd sin stage(ocupa cerca los 50-70mb) y la universal, la cual si que posee los stage(ocupa cerca los 700mb), teniendo en cuenta que el espacio dependerá de nuestra plataforma. La ultima versión disponible es la 2007.0:

Minimal x86

Minimal PPC/Apple

Minimal amd64/X86_64


Universal x86 Live

Universal PPC/Apple

Universal amd64/X86_64


Personalmente me bajaría la versión Minimal y obtendría mas adelante los stage. Una vez descargada deberemos de grabar la iso en un cd virgen.

Link directo de descargas de gentoo por si fallara algún enlace: http://www.gentoo.org/main/en/where.xml

[editar] Arranque desde el CD

Introducimos el cd en la unidad lectora y encendemos el ordenador. A continuación deberemos indicarle a la bios que arranque desde cd y no desde el disco duro(HD). Para acceder a la BIOS deberemos de apretar la letra de "Supr" que se encuentra a la derecha del intro, justo cuando nos aparezca las letras de información de nuestro hardware, antes de ver el arranque de nuestro sistema operativo(MBR).

Una vez hecho, al llegar al arranque nos leerá el cd, nos aparecerá una imagen de gentoo y en la zona inferior nos aparecerá "boot:", donde deberemos de indicarle opciones especiales que queremos que cargue con el arranque(apretar la letra F2 para ver las opciones), así como un conjunto de kernel's a cargar(F1 para listarlos). La opción mas aconsejable es: gentoo dokeymap, para poder elegir el teclado de nuestra maquina:

boot: gentoo dokeymap

Una vez cargado el kernel nos aparecerá una shell donde comenzara nuestra instalación.


[editar] Conexión a Internet y configuraciones basicas

En la gentoo actual, la detección de la tarjeta de red no se realiza, por lo que deberéis de configurarla nosotros, es muy simple. Cargamos el modulo de tarjeta de red, para ello deberéis de buscar el modulo de vuestra tarjeta de red en internet y cargarlo. El modulo es como el driver de la tarjeta de red, pero va incluido en el kernel, por lo que únicamente necesitaremos cargar el modulo:

Código: Consola
# modprobe nombre_modulo

Podéis usar el comando modprobe -l | grep net para listar todos los módulos disponibles para tarjetas de red.

Si disponemos de cable o adsl monopuesto, teniendo en cuenta que debemos tener conectado el cable a la tarjeta de red y tenemos el router o moden conectado a la linea. Deberemos de introducir lo siguiente:

Código: Consola
# dhcpcd ethX 

Siendo X un numero identificativo de nuestra tarjeta de red. La primera tarjeta de red se le llama eth0, si disponemos de una segunda se llamara eth1. si tenemos una tercera eth2 etc etc

Si tenemos un ip fija en modo monopuesto y nuestro router no resuelve dhcpcd deberemos de introducir los parámetros mediante ifconfig y route de la siguiente forma:

Código: Consola
# ifconfig ethX MIIP netmask 255.255.255.0 up
# route add default gw MIGATEWAY 

Si por lo contrario disponemos de adsl multipuesto, deberemos de introducir:

Código: Consola
# net-setup ethX

Es importante asegurarnos que tenemos conexión antes de seguir con la instalación, para ello mandaremos unos paquetes icmp de tipo 8 a alguna web importante que estemos seguros de que se encuentre funcionando, en nuestro caso tomamos google como referencia:

Código: Consola
# ping -c 3 www.google.com

Si nos responde, tendremos correctamente configurada la conexion, si no es asi, esque no hemos sido capaces de ello. Mirar entonces los manuales de route y de ifconfig.

A continuación deberemos de asegurarnos que la hora introducida es la correcta:

Código: Consola
# date

Si la hora introducida no es la correcta, tendremos que rectificarlo, la sintaxis es date [i]MMDDhhmmyy[/i], siendo los 2 primeros números el mes, los otros dos el día, los otros dos la hora y los otros dos los minutos y por ultimo el año, si quisiéramos poner 5 de enero a las 14:31 del 2004 seria:

Código: Consola
# date 0105143104 

Para mas información:

Código: Consola
# date --help

[editar] Particionar

Para particionar el disco duro usaremos el comando cfdisk(se puede usar fdisk pero es mas simple usar cfdisk), este comando crea y elimina particiones pero no es capaz de reasignar espacio de las particiones(Para usuarios de mac usar mac-fdisk y NO cfdisk/fdisk). Si tenemos una partición que se encuentra ocupando todo el espacio de nuestro disco duro tenemos que re-particionarla con otro programa como pudiera ser Qpartition o borrar la partición que tenemos y crearla nueva con menos espacio asignado.

Debemos saber que los dispositivos en linux se encuentran en el directorio /dev/ y tienen una terminologia muy concreta.

Los dispositivos ide se conocen como hdX ej: /dev/hda. La X es el modo en que se encuentra, es decir, si veis una placa base tiene el ide0 o ide master y el ide1 o ide sclavo, dentro de cada ide este a su vez tiene un ide master y un ide sclavo, por lo que el máximo de dispositivos ide que puedes conectar a la placa con 4:

Explicación: Discos Duros IDE
 
hda -> ide0 cable master(maestro)
hdb -> ide0 cable slave(esclavo)
hdc -> ide1 cable master
hdd -> ide1 cable slave
  


Para especificar que particion dentro de cada unidad(ejemplo un HD) tenemos va seguido el dispositivo de un numero: /dev/hdXX, por ejemplo la partición del disco duro que esta conectado al ide0 master y cuyo numero es el 1 seria: /dev/hda1

  • Nota: si al intentar hacer cualquier tipo de acción sobre nuestro discos duros ide, nos aparecen mensages del estilo [i]unable to open /dev/hdx[/i], es debido a que no tenemos el modulo de la controladora ide cargado. Por lo que tendremos que cargarlo(versiones como la 2004.2 amd64 ocurre):
# modprobe ide-disk

En el caso que usemos dispositivos S-ATA o dispositivos SCSI, deberemos de activar el modulo de nuestra controladora mediante: modprobe modulo, para listar los módulos disponibles sera asi:

# modprobe -l | grep scsi

Las particiones para estos discos duros son de la siguiente forma /dev/sdX siendo una X una letra que identifica el disco duro, siendo /dev/sda para el disco duro 1, /dev/sdb para el disco duro 2 etc.. Para identificar las particiones dentro de cada unidad se hace igual que con los ide /dev/sdaX siendo X un numero identificativo, por ejemplo: /dev/sda1

Antes de formatear debemos tener en cuenta que, una vez modificado la tabla de particiones se debera de reiniciar para poder ver los cambios.

Recomiendo usar por lo menos 3 particiones, una para la raiz, otra para el boot y por ultimo la Swap o de intercambio. En la raiz lo minimo recomendado son 2GB, y el boot sobre 20 megas, la swap dependerá de nuestra memoria ram pero normalmente se sigue la siguiente tabla:

Explicación: Ram - Swap
 
   32mb - 196mb 
   64mb - 196mb
  128mb - 128mb
  256mb - 128mb
  512mb - 64mb
 1024mb - 32mb
 2048mb - No hace falta swap
  


Para particionar nuestro disco duro, como hemos comentado, disponemos de dos herramientas, cfdisk, mac-fdisk y fdisk entre otras.

[editar] Particionar para X86 y X86_64

Recomiendo cfdisk debido a que es mas fácil y intuitivo de usar.

Para usar el cfdisk únicamente deberos de introducir lo siguiente: cfdisk /dev/dispositivo. Por ejemplo si tubieramos un disco duro sata seria en el "sata1":

# cfdisk /dev/sda

El cfdisk al crear una partición nos la genera siempre del tipo linux o 83, si queremos cambiar el tipo debemos de seleccionar la partición en el menú de cfdisk y darle a tipo o type. Nos mostrara una lista de tipos de particiones con un par de números(o letras) identificativo delante. Para cambiar el tipo debemos de introducir ese numero-letra identificativo. Entre esos números los mas destacadas son las siguientes:

Explicación: Ram - Swap
 
  82 -> swap
  83 -> linux
  8E -> lvm
  FD -> raid
  


Recordar que si deseamos RAID tienen que ser particiones del mismo tamaño, pares y en distintos discos duros siendo estos también pares. Ademas si nuestra raiz o / va ser RAID debemos de tener una partición del tipo linux para la /boot.

[editar] Particionar para Mac PowerPC

Si por lo contrario somos usuarios de mac/apple, usaremos el fdisk especial de mac: mac-fdisk. Es importante asegurarse de que no tenemos ninguna partición creada con fdisk o cfdisk, también debemos de tener en cuenta que las particiones creadas con mac-fdisk no se verán con fdisk y viceversa.

Con el mac-fdisk siempre veremos una partición de pocos k situadas en las primeras secciones del disco duro llamado Apple_partition_map, es lo mas parecido al master boot record de pc. Esa partición no es borrable ni creable siempre estara. Luego nos creamos una particion llamada bootstrap, en ella guardaremos nuestro jestor de arranque, esto se hara con la opción b. Dicha particion es de tamaño fijo: 800K y es preferible que se creen seguida de la partición Apple_partition_map. A continuación ya crearemos nuestras particiones necesarias para nuestra instalación/ la raíz y la swap principalmente).

Por ejemplo un listado de una particion Apple_partition_map, bootstrap y /(es un portátil y no he querido añadir swap):

Código: # mac-fdisk /dev/hda
 
/dev/hda
Command (? for help): p
/dev/hda
        #                    type name                  length   base      ( size )  system
/dev/hda1     Apple_partition_map Apple                     63 @ 1         ( 31.5k)  Partition map
/dev/hda2         Apple_Bootstrap bootstrap               1600 @ 64        (800.0k)  NewWorld bootblock
/dev/hda3         Apple_UNIX_SVR2 linux              117208576 @ 1664      ( 55.9G)  Linux native

Block size=512, Number of Blocks=117210240
DeviceType=0x0, DeviceId=0x0

Command (? for help): 
  


[editar] RAID

Si escogimos en el apartado anterior particiones del tipo Linux raid autodetect para montar raid seguir las instrucciones siguientes, si por el contrario la respuesta es no, saltar este punto al siguiente: Formatear particiones.

Para montar Raid, como se advirtio en el punto anterior, se requiere un numero par de particiones del mismo tamaño en distintos discos duros, siendo estos tambien pares. Y el tipo de particion tiene que ser Linux raid autodetect. Los tipos de Raid que vamos a tratar son los de Raid1 o espejo/mirroring y Raid0 o stripper:

  • Raid0: proporciona la maxima velocidad y no se produce perdida de espacio, pero si cualquiera de las particiones/discos duros que tiene una porcion de la particion Raid0 falla, perdemos toda la velocidad. Por ejemplo si tenemos una particion de 20GB en sda1 y de 20GB en sdb1 tendriamos una partición de 40GB con una velocidad mb/s aproximada del 70% mas que si tubieramos un unico disco duro(aumenta el TMA unos ms). Pero si la aprticion de sda1 o de sdb1 se pierde o se estropea el disco duro perderiamos TODO.
  • Raid1: proporciona seguridad. Se pierde la mitad del espacio, el rendimiento es como si tubieramos unicamente un disco duro pero ademas ocasiona un pequeño consumo de CPU.Si montamos un raid1 entre dos particiones de dos discos duros, sda1 y sdb1 de 20GB ambas, obtendriamos una partición de 20GB(y no de 40GB) pero si se estropea uno de los discos duros no perderiamos la información ya que estaria en el otro disco duro. Recomedable para servidores o documentos importantes.

Debemos de tener en cuenta que en el caso de crear un RAID para la Raiz o / debemos tener una particion boot propia, independiente de la raiz, con un formato tipico de linux o particiones simples.

La forma de generar un RAID 0 o 1 es identico solo por un valor, por los pasos seran los mismos. En el ejemplo que vamos a seguir vamos a generar un Raid0 para / y un raid1 para la /home. Teniendo dos discos duros con una partición sda1 y sdb1 20GB donde montaremos el raid0 y otra partición sda2 y sdb2 de 10GB para el raid1, las 4 particiones del tipo Linux raid autodetect como hemos comentado anteriormente.

Comenzamos creando el dispositivo RAID, los cuales se reconocen por mdX siendo esa X un numero identificativo del raid: 0, 1, 2, 3. La forma es mediante el comando mknod /dev/mdX b 9 X, siendo X un numero de 0 a N numeros que se incrementa conforme mas particiones raid queramos. En nuestro caso son 2 pues iremos de la 0 a la 1:

Código: Creamos dispositivo
 
  # mknod /dev/md0 b 9 0
  # mknod /dev/md1 b 9 1
  


Acontinuación creamos el raid con el comando mdadm --create --verbose /dev/mdX --level=TIPORAID --raid-devices=N /dev/particion1 /dev/particion2..., siendo la X el dispositivo raid que queramos, el TIPORAID sera 0 para Raid0 y 1 para Raid1, la N es el numero de dispositivos raid que interviene, en nuestro caso como son dos particiones sera 2:

Código: Creamos dispositivo
 
  # mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1
  # mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
  


Una vez hecho esto, ya tendremos creadas el dispositivo raid, a continuacion deberemos formatear las particiones raid tal y como se ve en el punto anterior.

Nota: rendimiento aproximado del RAID teniendo en cuenta de que son obtenidos en discos duros sata 7.2k y son valores del principio, no sostenidos:

Explicación: Rendimiento Raid - comparativa
 
 /dev/md0(RAID0)
 Timing cached reads:   3320 MB in  2.00 seconds = 1660.23 MB/sec
 Timing buffered disk reads:  382 MB in  3.00 seconds = 127.29 MB/sec

 /dev/md1(RAID1)
 Timing cached reads:   3316 MB in  2.00 seconds = 1658.84 MB/sec
 Timing buffered disk reads:  202 MB in  3.01 seconds =  67.03 MB/sec
 
 /dev/sdb3(particion simple)
 Timing cached reads:   3276 MB in  2.00 seconds = 1637.94 MB/sec
 Timing buffered disk reads:   94 MB in  1.34 seconds =  70.07 MB/sec
  


Nota: esto es para hacer raid linux por software, NO es compatible con el raid de las controladoras tipicas sata que tan de moda estan. Si la controladora es Raid por hardware, linux no tendra problemas ya que es la controladora la que se encarga de todo, pero en el caso de controladoras sata/ide NO ya que estan SI que son por software, a expecion de algunos modelos(todas las de las placas base son por software no por hardware).

[editar] Formatear particiones

Vamos a darles formato a las particiones. Existen actualmente 3 formatos principalmente, el ext3 que es el antiguo ext2 con journalist(si se produce un fallo mientras se realiza una operacion, debido por ejemplo a un corte de luz, no perdemos la informacion, puesto que antes de realizar una accion, se guarda en un registro la accion a realizar), Reiserfs y XFS. En mi caso por pruebas la que mejor resultado me ha dado es la reiserfs, ya que es mas veloz, aunque ext3 es mas estable que reiserfs. XFS esta orientado a ficheros de gran tamaño, por ejemplo un FTP. Por lo que para nuestra raiz es recomendable ext3 o reiserfs, mientras que para nuestra boot serie recomendable usar ext2. Si somos usuarios de mac, usar ext3 ya que reiserfs ocasiona algunos problemas.

Los pasos a seguir a continuación seran los siguientes:

  • 1ºActivamos el dma de nuestro hd(si es sata, raid o lvm no hace falta este punto):
Código: Activacion DMA
 
 # hdparm -d 1 /dev/hdX
  


  • 2ºDamos formato a la particion swap(si nuestros discos fueran scsi o sata, cambiar hd por sd):
Código: Formato Swap
 
 # mkswap /dev/hdXX
 


  • 3ºEscogeremos nuestro tipo de ficheros:

Para particiones simples de discos duros IDE:

Código: Formatear nuestra particion IDE
 
-> si queremos formatear la particion linux como ext3.
 # mke2fs -j /dev/hdXX    
-> si queremos formatear la particion como reiserfs.
 # mkreiserfs /dev/hdXX      
-> si queremos formatear la particion con xfs.
 # mkfs.xfs /dev/hdXX   
-> si queremos formatear la particion linux como ext2.
 # mke2fs /dev/hdXX   
  


Para particiones simples de discos duros Sata o SCSI:

Código: Formatear nuestra particion SCSI o SATA
 
-> si queremos formatear la particion linux como ext3.
 # mke2fs -j /dev/sdXX    
-> si queremos formatear la particion como reiserfs.
 # mkreiserfs /dev/sdXX      
-> si queremos formatear la particion con xfs.
 # mkfs.xfs /dev/sdXX   
-> si queremos formatear la particion linux como ext2.
 # mke2fs /dev/sdXX  
  


Si nuestra particion es RAID:

Código: Formatear nuestra particion RAID
 
-> si queremos formatear la particion linux como ext3.
 # mke2fs -j /dev/mdXX  
-> si queremos formatear la particion como reiserfs.
 # mkreiserfs /dev/mdXX      
-> si queremos formatear la particion con xfs.
 # mkfs.xfs /dev/mdXX   
-> si queremos formatear la particion linux como ext2.
 # mke2fs /dev/mdXX  
  

[editar] Montar las particiones

Acontinuacion montaremos las particiones para poder ser usadas, esto es un concepto algo raro para los usuarios que no usen linux/unix. Montar una particion seria algo asi como activar una partición para poder ser usada. Comenzamos:

Código: Activacion de Swap
 
 # swapon /dev/hdXX
  


Ahora montaremos la particion linux donde tendremos nuestra gentoo, tenemos que crear un directorio donde queremos montar la particion, en nuestro caso usaremos el directorio gentoo:

Código: Directorio para montar nuestra gentoo
 
# mkdir /migentoo      
  


El comando mkdir sirve para crear directorios: mkdir /directorionuevo.

Ahora montaremos nuestra particion mediante el comando mount, dependiendo del sistema de fichero usado el comando varia.

El comando mount con opciones solo puede ser usado por el usuario root y su sintaxis basica es la siguiente:

mount -t tipo /dev/dispositivo /directorio/de/montage

Los tipos mas usados son los siguientes:

Explicación: Lista de sistemas de ficheros basicos
 
reiserfs -> para reiserfs
ext3 -> para ext3
ext2 -> para ext2
xfs -> para xfs
vfat -> para fat32
ntfs -> para ntfs
iso9660 -> para cdroms
  


Para mas información man mount.

En el caso de ser un disco duro IDE(recordar que XX debera de ser substituido por el valor que proceda):

Código: Montar particion raiz
 
->montamos la nueva particion si la elejimos reiserfs
 # mount -t reiserfs /dev/hdXX /migentoo    
->montamos la nueva particion si la elejimos ext3
 # mount -t ext3 /dev/hdXX /migentoo        
->montamos la nueva particion si la elejimos xfs
 # mount -t xfs /dev/hdXX /migentoo        
  


En el caso de ser un disco duro SCSI o Sata(recordar que XX debera de ser substituido por el valor que proceda):

Código: Montar particion raiz
 
->montamos la nueva particion si la elejimos reiserfs
 # mount -t reiserfs /dev/sdXX /migentoo    
->montamos la nueva particion si la elejimos ext3
 # mount -t ext3 /dev/sdXX /migentoo        
->montamos la nueva particion si la elejimos xfs
 # mount -t xfs /dev/sdXX /migentoo        
  


Por ultimo montaremos las demas particiones que tengamos, en nuestro caso si tenemos la boot deberemos de montarla(recordar que la boot se recomienda en ext2):

Código: Título del código
 
# mkdir /migentoo/boot
  


Código: Montar particion boot
 
En el caso de ser un hd ide:
 # mount -t ext2 /dev/hdXX /migentoo/boot

En el caso de ser un hd scsi o sata:
 # mount -t ext2 /dev/sdXX /migentoo/boot

[editar] Instalacion

[editar] Stage

Vamos a obtener nuestro stage. El stage o etapas, es un fichero empaquetado y comprimido, que contiene la distribucion gentoo con una cantidad de programas basicos para poder ser usada. La diferiencia entre los stage, es que, cuanto mayor sea el numero del stage(de 1 a 3) mayor sera el numero de programas basicos que tenga compilados. Recomiendo el stage3 ya que sera el que menos problemas pueda original por una mala configuración, y el mas rapido con difriencia.

  • Stage 1, compila los programas que necesitaremos para compilar, por ejemplo: portage, binutils, gcc, libc, linux-headers, etc.
  • Stage 2, posee los programas del stage1 compilados sobre unos flags base.
  • Stage 3, la base de nuestra distribucion gentoo(no penseis que son muchos programas tampoco).

Desde hace poco gentoo no ofrece soporte para stage 1 ni 2. Si ofrece el stage pero no ofrece ayuda debido a la cantidad de errores reportados por la gente por una mala configuracion de los ficheros de configuración de estos.

En nuestro caso damos la posibilidad de elegir desde que stage quereis seguir. Para los ejemplos usaremos el stage3, pero si deseais el stage 1 o 2 solo tendreis que cambiar el nombre del stage 3 por el del stage deseado.

El stage lo podremos obtener principalmente de dos formas:

  • 1ª)En nuestra live cd en el directorio /mnt/gentoo/stage. Recordar que el cdrom ya estara montado(se monto cuando cargamos el live cd). Pero tendremos el stage en el livecd, si el live cd que descargamos fue el universal:
Código: Obtencion del stage 3 mediante cdrom
 
 # cd /mnt/cdrom/stage
-> El nombre del stage puede variar pero debemos reconocerlo por ''stage 3'' 
 # cp basic-stage3.tar.gz /migentoo
 # cd /migentoo
 


  • 2º)Si por lo contrario el livecd que tenemos es el minimal, deberemos de descargarlo de la red, mediante wget:
Código: Obtencion del stage 3 mediante internet
 
 # cd /migentoo
-> Para x86
 # wget -c http://linuv.uv.es/mirror/gentoo/releases/x86/2006.0/stages/x86/stage3-x86-2005.0.tar.bz2
-> Para amd64
 # wget -c http://linuv.uv.es/mirror/gentoo/releases/amd64/2006.0/stages/stage3-amd64-2005.0.tar.bz2
-> Para PPC(mac/Apple):
 # wget -c http://linuv.uv.es/mirror/gentoo/releases/ppc/2006.0/stages/ppc/stage3-ppc-20050303.tar.bz2
 


Nota: el link del stage puede haber cambiado por una actualizacion de los stage. Aconsejable buscar el stage desde la raiz.


Acontinuación vamos a desempaquetar y descomprimir el stage, con la opcion p para que conservar los privilejios originales del stage en que fue empaquetado:

Código: Descomprimir nuestro Stage
 
# tar -xvjpf basic-stage3.tar.bz2
  


[editar] Preparandonos nuestra gentoo

Montamos la particion proc y los dispositivos(dev) del livecd(que se cargo y se creo con el kernel del live-cd cuando fue arrancado) en nuestra gentoo:

Código: Montar particiones generadas en el arranque
 
 # mount -t proc /proc /migentoo/proc
 # mount -o bind /dev /migentoo/dev
  


Copiamos los DNS que nos permitiran resolver dominios de internet:

Código: Fichero DNS
 
# cp /etc/resolv.conf /migentoo/etc/resolv.conf 
  


Si tenemos alguna particion raid debemos de guardar el estado del mdadm:

Código: Fchero mdadm.conf
 
 # mdadm --detail --scan > /gentoo/etc/mdadm.conf
  


Cambiamos nuestra raiz del live-cd por nuestra particion donde tenemos el stage descomprimido, de esta forma ya nos encontraremos en nuestra gentoo y no en el livecd, ademas le indicamos cual sera nuestra shell o linea de comandos(en nuestro caso usaremos bash):

Código: Montamos nuestra gentoo
 
# chroot /migentoo /bin/bash
  


Cargamos las configuraciones de nuestro usuario, de lo que sera nuestra futura gentoo:

Código: Usuario toma configuracion de nuestra gentoo
 
 # env-update
 # source /etc/profile  
  


Creamos la lista de programas disponibles para nuestro portage(es recomendable leerse los dos puntos siguientes antes de realizar esta acción):

Código: Creamos listado de paquetes del portage
 
# emerge sync
  

Nota: el opcion del emerge sync sera sustituido por --sync, es decir, emerge --sync en los futuros portage, por lo que, si no reconoce la opcion sync sustituirla por --sync

[editar] Portage y emerge

El portage es el gestor de paquetes de gentoo(perdonarme los expertos, por ser tan poco especifico). La herramienta usada para la gestion de este es el comando emerge y qpkg. Nosotros trataremos unicamente el emerge.

El portage se encuentra en /usr/portage y su configuración la tenemos en el fichero /etc/make.conf que veremos en el siguiente punto.

El portage esta ordenador por subcategorias, por ejemplo una categoria son los editores(app-editors)y dentro de cada categoria tenemos un listado con sus correspondiente herramienta/programas.

Los ficheros descargados, que en su mayoria son fuentes, se descargan en el directorio /usr/portage/distfiles.

Debemos saber que la mayoria de paquetes que tiene el portage son las fuentes, es decir el codigo, por lo que nos descargaremos las fuentes, las compilaremos y por ultimo sera instaladas. En la mayoria de otras distribuciones linux no se descarga las fuentes sino el binario(las fuentes ya compiladas).

Los comandos mas usados del emerge son los siguientes(un paquete es una aplicación o agrupacion de estas):

Explicación: Comandos del emerge
 
# emerge -s paquete          -> busca en el portage "paquete"
# emerge paquete             -> Instala el paquete
# emerge -p paquete          -> Nos muestra las dependencias que necesitamos instalar para instalar el paquete
# emerge -vp paquete         -> Nos muestra las opciones con que compilamos y no compilamos el paquete       
# emerge -f paquete          -> Se descarga el programa pero no lo compila
# emerge -u paquete          -> Actualiza el paquete
# emerge -C paquete          -> Desinstala el paquete
# emerge -u world            -> Actualiza la distribución
# emerge -b paquete          -> Compila el programa, lo instala y nos genera el binario
# emerge -B paquete          -> Compila el programa y nos genera el binario, pero no lo instala
# emerge -k paquete          -> Instala un paquete binario anteriormente compilado
  


Muchas de las preguntas acerca de gentoo, va relacionado con el tiempo que tarda en compilar un programa y si realmente puede ser usado para un servidor. Para intentar solventar esta cuestion gentoo permite que una vez compilado un paquete podamos crear el binario optimizado para nuestra plataforma. Por eso existen las opciones -b, -B, -k.

Gracias a ello podemos tener nuestros programas configurados y compilados totalmente a nuestra eleccion, con lo que, si hubiera algun tipo de fallo y necesitaramos reinstalar un programa unicamente deberiamos de instalar el binario que creamos cuando compilamos la aplicacion por primera vez. Para realizar esto deberiamos de añadir la opcion -b explicada anteriormente.

Por otra parte, en gentoo existen unos paquetes, que nos aparecen como [MASKED], esto puede ser por 2ºmotivos:

  • El paquete es muy nuevo y se encuentra como "inestable" puesto que no se le ha realizado las suficientes pruebas, esto pasara si no aceptamos la rama inestable de gentoo(se indica en el fichero /etc/make.conf con el valor ACCEPT_KEYWORDS="plataforma").

Por lo que para poder instalarlo, usaremos los ficheros de configuracion del portage, por lo que, crearemos un fichero llamado /etc/portage/package.keywords. Una vez creado lo unico que deberemos de introducir es lo siguiente: tipo-paquete/paquete plataforma.

Explicación: Lista de plataformas
 
x86    -> Plataforma PC estable
~x86   -> Plataforma PC inestable
amd64  -> Plataforma X86_64 amd64(64bits) estable
~amd64 -> Plataforma X86_64 amd64(64bits) inestable
ppc    -> Plataforma PowerPC Apple estable
~ppc   -> Plataforma PowerPC Apple inestable
  


Como os habreis dado cuenta las plataformas inestable le precede el caracter ~.

Por ejemplo para mi gentoo amd64(amd64 es version estable de amd64), como requiero una serie de paquetes inestable(rama ~amd64):

Archivo: /etc/portage/package.keywords
 
media-video/nvidia-kernel ~amd64
>=x11-base/xorg-x11-6.8.2 ~amd64
>=app-emulation/emul-linux-x86-xlibs-1.2-r3 ~amd64
  


  • El programa tiene algun tipo de error que aun no ha sido solucionado por sus programadores, como por ejemplo un error de seguridad.

Podemos verlo el motivo de estar masked en /usr/portage/profiles/package.mask, si deseamos instalarlo de todas formas, unicamente con añadir en el fichero /etc/portage/package.unmask una liena que sea tipo-paquete/paquete anulamos el masked de dicho paquete. No lo recomiendo nunca.

Otro punto en favor del portage de gentoo, es que, como entodas las distribuciones que disponen de gestor de paquetes como el emerge nos muestra la version de la aplicación que se dispone actualmente, una para version estable y otra para la inestable, pero y si queremos instalar una versión anterior o posterior a la que nos ofrece?, pues el portage nos permite hacer esto a diferiencia de otros gestores, para ello deberemos de ir al portage y emerger el ebuild. Un ejemplo seria el siguiente:

Código: Instalar otras versiones
  
# emerge -s gentoo-source
Searching...   
[ Results for search key : gentoo-source ]
[ Applications found : 1 ]
 
*  sys-kernel/gentoo-sources
      Latest version available: 2.4.26_pre6
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 32,178 kB
      Homepage:    http://www.kernel.org/ http://www.gentoo.org/
      Description: Full sources for the Gentoo Kernel.

      License:     GPL-2

# cd /usr/portage/sys-kernel/gentoo-sources/
# ls

ChangeLog                         gentoo-sources-2.4.22-r3.ebuild    gentoo-sources-2.4.26_pre5.ebuild
files                             gentoo-sources-2.4.22-r5.ebuild    gentoo-sources-2.4.26_pre6.ebuild
gentoo-sources-2.4.19-r13.ebuild  gentoo-sources-2.4.22-r9.ebuild    Manifest
gentoo-sources-2.4.20-r16.ebuild  gentoo-sources-2.4.25-r2.ebuild    metadata.xml
gentoo-sources-2.4.20-r7.ebuild   gentoo-sources-2.4.26_pre3.ebuild

-> deseamos instalar la version gentoo-sources-2.4.25-r2, por lo que añadiremos al fichero package.mask que cualquier version igual o superior a la existente por encima de la version que queremos instalar esta masked:

# echo ">=sys-kernel/gentoo-sources-2.4.26_pre3" >> /etc/portage/package.mask
 

Podriamos haber emergido cualquiera de las versiones que aparecian con el .ebuild, en nuestro caso instalariamos un kernel mas antiguo que el que nos ofrecia el emerge.


Una nota importante, enfocado para el futuro, son las actualizaciones en gentoo, una vez actualicemos gentoo mediante las siguientes dos instrucciones:

Actualiza la lista de paquetes ofrecidas en gentoo:

# emerge sync          

Actualizacion del sistema(N usable en el portage 2005.0 hace referencia a los paquetes que hayan sido compilados con distintos valores que los que actualmente se encuentran en el fichero make.conf, la variable D indica que se compilen las dependencias directas de los paquetes que vamos a actualizar):

# emerge -uND world


Puede ocurrir que hayamos actualizado paquetes que poseen uno o mas ficheros de configuración. Gentoo, a diferiencia de otras distribuciones, no nos va a escribir encima de esos ficheros, sino que usaremos una utilidad/script que nos permite el control de estas actualizaciones, esta utilidad/script es:

# etc-update

Una vez lo ejecutemos nos apareceran todos los ficheros de configuración que pueden ser modificados precedidos de un [i]numero)[/i], y al final el siguiente codigo:


Código: # etc-update
 
 1)File X in /directorio/cualquiera
 2)File X in /directorio/cualquiera
 Please select a file to edit by entering the corresponding number.
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i'):
 


Lo que tendremos que hacer es introducir el numero identificativo del fichero (solo el numero sin signo delante), y entonces nos aparecera un 2º menu de configuración, donde se nos permite hacer 4 cosas: hacer una copia de seguridad del actual y reescribir el fichero, o reescribir el fichero sin hacer copia de seguridad, o no modificar el fichero y dejar nuestro antiguo fichero de configuración.

[editar] Modificamos el fichero make.conf:

El fichero /etc/make.conf es el fichero de configuración del portage, donde le indicamos los flags de la compilación, los USE o opciones/modulos con que queremos que nos instale el programa. Asi como configuración de nuestro portage y otras variables de entorno importantes.

El fichero make.conf comienza con un USE="opcion1 opcion2 opcion 3...", esto es una de las cosas que hace que gentoo sea especial, gracias a esto, cuando compilamos una aplicación cargamos lo que nos interesa unicamente, asi como cargamos modulos que de forma predeterminada no estan accesibles.

Un ejemplo seria el soporte de sonido. Muchas aplicaciones estan comiladas con soporte oss, alsa, esound y arts, pero imaginense que ustedes solo desean tener soporte para alsa. Pues introduciendo en el USE"alsa -oss -esd -arts" nos compilara los programas unicamente con soporte alsa.

Como hemos podido apreciar introduciendo el caracter - delante de la opcion, hacemos lo contrario, es decir, le decimos que no tenga esa opción. Esto es muy usado por ejemplo por los amante de gnome que no quieren tener librerias de kde puesto que no las van a usar y son de gran tamaño ponen la opcion -kde.

Acontinuación voy a poner un conjunto de USE. Hemos decidido enforcarlo de una forma que se entienda como el soporte con que deseamos que se instalen nuestros programas:

Explicación: Use
 
Consola:
aalib - Soporte para librerias graficas ASCII.
directfb - Soporte para el frame buffer DirectFB.
fbcon - Soporte frame buffer via kernel.
ncurses - Soporte para ncurses(aprox. entorno grafico en consola).
svga - Soporte para librerias graficas svga.

Entorno grafico:
X - Soporte para aplicaciones graficas/X11.
dga - Soporte DGA(Direct Graphic Access) en entorno graficos.
gnome - Soporte para utilidades graficas gnome.
gtk - Soporte para librerias gtk.
gtk2 - Soporte para librerias gtk2.
kde - Soporte para kde.
mozilla - Soporte para navegador mozilla.
qt - Soporte para librerias QT.
truetype - Soporte para fuentes truetype/2.
unicode - Soporte para fuentes Unicode.
xmms - Soporte para programa de reproduccion de sonido XMMS.

Grabacion/lectura cd/dvd:
cdr - Soporte para apliacaciones de grabacion de cdr y cdrw. 
dvd - Soporte para el lectores dvd.
dvdr - Soporte para grabacion de dvdr y dvdrw.

Hardware:
3dfx - Soporte para tarjetas aceleradoras de la empresa 3dfx. Inf: voodoo 1,2,3 y banshee
3dnow - Soporte a las instrucciones multimedia 3dnow de los porcesadores amd. Inf: cat /proc/cpuinfo | grep flags
acpi - Soporte para Advanced Configuration and Power Interface.
apm - Soporte control avanzado de energia(Advanced Power Management).
gphoto2 - Soporte para camaras digitales.
pcmcia - Soporte para controladoreas pcmcia.
pda - Soporte para PDA.
tetex - Soporte para teTeX en capturadoras de video.
usb - Soporte para USB.

Lenguas:
cjk - Soporte para lenguajes de tipo Multi-Byte.Inf: japones, chino, koreano.
nls - Soporte para programas traducidos en varios lenguajes, entre ellos el castellano.
spell - Soporte para diccionarios de varias lenguas.

Lenguajes de programacion:
java - Soporte para lenguaje de programación java.
perl - Soporte para lenguaje de programacion/scripting perl.
php - Soporte para lenguaje de programación php.
python - Soporte para lenguaje de programacion/scripting python.

Red/Servidores:
aim - Soporte para protocolo de mensageria instantania aim.
apache2 - Soporte para demonio web apache 1 y 2.
dedicated - Soporte para servidores de juegos.
ethereal - Soporte para uso y logs de ethereal.
icq - Soporte de mensageria instantania ICQ.
ipv6 - Soporte para protocolo IP version 6.
jabber - Soporte para mensageria instantanea jabber.
msn - Soporte para menageria instantanea MSN.
msql - Soporte para base de datos mySQL.
pam - Soporte para sistema de autentificacion en servicios.
samba - Soporte para samba. Inf: linux-windows.
sockets - Soporte para protocolo tcp/ip.
yahoo - Soporte para mensageria instantanea de yahoo.

Sistema de Sonido:
alsa - Soporte para la arquitectura avanzada de sonido en linux(Advanced Linux Sound Architecture).
arts - Soporte para el demonio de sonido en KDE.
esd - Soporte para el demonio de sonido de Enlightened.
oss - Soporte para arquitectura de sonido OSS(en desuso).

Tipo de ficheros:
bmp - Soporte para el tipo de fichero bmp cuando emergemos paquetes relacionados con media-plugins/xmms-*.
bzlib - Soporte para las bibliotecas de compresion bz.
exif - Soporte para lectura de cabezas de JPEG y TIFF.
gif - Soporte para ficheros de imagenes GIF.
jpeg - Soporte para ficheros de imagenes tipo jpeg.
png - Soporte para sistema de ficheros de imagenes png.
tiff - Soporte para tipo de ficheros de imagenes tiff.
xv - Soporte para ficheros de edicion de video xv.
xvid - Soporte para ficheros de codigo libre en mpeg4.
zlib - Soporte para librerias de des/compresion zlib.

Video/Audio:
audiofile - Soporte para bibliotecas de sonido.
avi - Soporte para el sistema de fichero de videos de Win32.
dvb - Soporte para dvb(Digital Video Broadcasting)
encode - Soporte para codificacion/compresion MEncoder o LaME. Inf: usado en rippeo de peliculas.
mpeg - Soporte para mpeg3.
opengl - Soporte para lenguaje de programacion y aceleracion grafica opengl.
quicktime - Soporte para videos quicktime.
xine - Soporte para librerias de video XINE.

Otros:
accessibility - Soporte para accesibilidad/minusvalias.
debug - Añade y muestra toda la informacion en nuestras compilaciones. 
doc - Soporte para la extra documentacion. Inf: API, Javadoc ...
emacs - Soporte para el editor avanzado emacs GNU.
hardened - Soporte de seguridad para utilidades basicas(toolchain=gcc,glibc,binutils).
  


Flags que no deben de ser introducidos ni desabilitados por los usuarios:

-Generales: alpha, amd64, arm, hppa, ia64, mips, ppc, ppc64, ppc-macos, s390, sh, sparc, x86. -Especifico de AMD64: mmx, 3dnow, sse, sse2

Existe una utilidad que facilita la elección de los USE, asi como una pequeña expliación de la función de cada USE, esta utilidad es ufed:

# emerge ufed
# ufed

El portage incluye un fichero con los use disponibles con su correspondiente definicion:

Código: Listar USE
 
# cat /usr/portage/profiles/use.desc
  


Acontinuacion elijiremos la plataforma de nuestro sistema gentoo:

Explicación: Plataforma
 
CHOST="i386-pc-linux-gnu"           #Para los 386
CHOST="i486-pc-linux-gnu"           #Para los 486
CHOST="i586-pc-linux-gnu"           #Para los Pentium, P-mmx, y superiores
CHOST="i686-pc-linux-gnu"           #Para pentium Pro en adelante(Pentium 2,3,4, K6, K6-2, K6-3, K7 etc...)
CHOST="x86_64-pc-linux-gnu"         #Para Amd64(opteron, a64 y a64 FX) y Intel P4 775 serie 6XXX EMT64
CHOST="powerpc-unknown-linux-gnu"   #Para los MAC
  


Ahora trataremos los Flags de compilación, con lo que obtendremos un pequeño aumento de velocidad, existen 2 variables CFLAGS y CXXFLAGS, los flags usados para estos dos son iguales. Por lo que una recomendacion seria poner en CFLAGS="valores" y en la siguiente linea poner CXXFLAGS="${CFLAGS}", es decir, que CXXFLAGS tome los valores de CFLAGS. Realmente CFLAGS hace referencia a los Flags para el compilador de C(gcc) mientras que CXXFLAGS hace referencia a los flags del compilador de C++(g++).

Aqui teneis una lista de Flags para cada tipo de procesadores, esta lista no es de las mas optimizadas que ahi, pero estar seguros que no os dara ningun tipo de problema:

Explicación: Listado de flags gcc/g++
 
PC x86(32bits):
Intel:
i386           -> CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
i486           -> CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
Pentium        -> CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
Pentium MMX    -> CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
Pentium PRO    -> CFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
Pentium II     -> CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
Celeron(mend)  -> CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
Pentium III    -> CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
Celeron(Cop)   -> CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
Pentium4       -> CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
Via:
Eden C3/E      -> CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
Amd:
K6             -> CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
K6-2           -> CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
K6-3           -> CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
Athlon K7      -> CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
Athlon-tbird   -> CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
Athlon XP, a64 -> CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
Athlon MP      -> CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"

PC x86_64(64bits):
Amd:
Athlon 64/Opteron/FX -> CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer -frename-registers"

Apple/MAC PowerPc:
603/604 -> CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
750/G3  -> CFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char"
7400/G4 -> CFLAGS="-O2 -mtune=G4 -maltivec -mabi=altivec -fno-strict-aliasing -pipe"
 


Al fichero make.conf se le puede añadir tambien un conjunto de variables, que estan relacionadas con el portage de gentoo:

->Acepta paquetes de la rama indicada:

ACCEPT_KEYWORDS="plataforma"
Explicación: Lista de plataformas:
 
x86    -> Plataforma PC estable
~x86   -> Plataforma PC inestable
amd64  -> Plataforma X86_64 amd64(64bits) estable
~amd64 -> Plataforma X86_64 amd64(64bits) inestable
ppc    -> Plataforma PowerPC Apple estable
~ppc   -> Plataforma PowerPC Apple inestable
  

->Directorio Temporal del Portage, /var/tmp es el predeterminado:

PORTAGE_TMPDIR=/var/tmp

->Directorio del Portage, /usr/portage es el predeterminado:

PORTDIR=/usr/portage

->Directorio de descarga de los paquetes del portage, es decir donde descargamos las fuentes de los programas:

DISTDIR=${PORTDIR}/distfiles

->Binarios compilados para nuestra maquina, es decir, donde almacenamos los binarios que hemos compilado, estan empaquetados en ficheros tar:

PKGDIR=${PORTDIR}/packages

->Limpieza de paquetes viejos del portage, recomendado poner yes:

AUTOCLEAN="yes"

->Para seleccionar nuestros servidores de descarga de paquetes GENTOO_MIRRORS="direccion1 direccion2", por ejemplo:

GENTOO_MIRRORS="http://linuv.uv.es/mirror/gentoo ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/"

->Para indicar nuestro servidor que nos proporciona el listado de paquetes disponibles, SYNC="rsync:direccion", como por ejemplo:

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" 

->Para indicar el numero de compilaciones en paralelo que se pueden hacer, se indica sumandole a el numero de procesadores +1:

MAKEOPTS="-j2"

->Para indicarle micro-modulos dentro del portage(alguien se le ocurre algun nombre mejor?):

 FEATURES="micromodulos"

Existen varios micromodulos pero los mas utiles seran los siguientes:


Explicación: Micromodulos
 
sandbox  -> impide que cuando estemos compilando un paquete acceda a zonas externas de 
            nuestro directorio virtual del portage, esto impide posible daños en nuestro 
            sistema cuando una compilacion no es correcta. 

buildpkg -> siempre que compilemos un paquete nos creara el binario, de esta forma 
            si deseamos reinstalar el paquete no hara falta compilarlo de nuevo.

ccache   -> aumenta el rendimiento de nuestras compilaciones, debeis de instalarlo: emerge ccache.


->Si disponemos de tarjeta de sonido y usamos alsa, indicaremos el nombre de nuestro modulo quitandole el prefijo snd_:

ALSA_CARDS="modulo"

-> Si usamos o tenemos pensado usar entornos relacionados con KDE o OpenOffice y queremos que esten en castellano, es recomendable poner la siguiente variable:

LINGUAS="es"

Un ejemplo de fichero '/etc/make.conf para distintas plataformas:

Archivo: Athlon XP x86
 
USE="3dnow X aalib acpi alsa apm -arts audiofile avi bzlib cdr crypt cscope dga directfb divx4linux dvd dvdr -emacs encode fbcon flash -gnome gphoto2 gif gpm gtk gtk2 hardened -ipv6 java jpeg kde mmx mozilla mpeg msn multilib ncurses nls odbc opengl oss pam perl pdflib png python  qt quicktime sdl ssl sockets spell sse -svga tiff truetype usb videos xmms xv xvidl"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe-fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="x86"
PORTAGE_TMPDIR=/var/tmp
PORTDIR=/usr/portage
DISTDIR=${PORTDIR}/distfiles
PKGDIR=${PORTDIR}/packages
AUTOCLEAN="yes"
GENTOO_MIRRORS="http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" 
MAKEOPTS="-j2" 
FEATURES="sandbox ccache"
LINGUAS="es"
  


Archivo: Amd64 X86_64
 
USE="aalib acpi alsa apm -arts audiofile avi bzlib cdr dga directfb dvd dvdr dvdread doc -emacs emul-linux-x86 encode fbcon flash -gnome gphoto2 gif gpm gtk gtk2 -hardened -ipv6 java jpeg kde libcaca lm_sensors mozilla mp3 mpeg msn multilib nas ncurses nvidia nls oggvorbis opengl oss pam perl pdflib png python qt quicktime sdl ssl sockets spell -svga theora threads tiff truetype usb v4l videos X xine xmms xv xvid"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -ftracer -funswitch-loops -fomit-frame-pointer -pipe"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="amd64"
PORTAGE_TMPDIR=/var/tmp
PORTDIR=/usr/portage
DISTDIR=${PORTDIR}/distfiles
PKGDIR=${PORTDIR}/packages
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
GENTOO_MIRRORS="http://linuv.uv.es/mirror/gentoo/"
RSYNC_TIMEOUT=180
AUTOCLEAN="yes"
MAKEOPTS="-j2"
PORTAGE_NICENESS=1
FEATURES="sandbox ccache"
LINGUAS="es"
  


Archivo: Apple Power PC G4
 
USE="aalib alsa -arts audiofile avi bluetooh bzlib cdr dga directfb dvd dvdread encode flash fbcon -gnome gphoto2 gpm gtk gtk2 jpeg lde lm_sensors libcaca mp3 mpeg msn nas ncurses nvidia nls opengl oss perl pdflib python qt sockets spell -svga truetype usb videos X xmms"
CHOST="powerpc-unknown-linux-gnu"
CFLAGS="-O2 -mtune=G4 -maltivec -mabi=altivec -fno-strict-aliasing -pipe"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="ppc"
SYNC="rsync:/rsync.europe.gentoo.org/gentoo-portage"
GENTOO_MIRRORS="http://linuv.uv.es/mirror/gentoo"
RSYNC_TIMEOUT=180
AUTOCLEAN="yes"
MAKEOPTS="-j2"     
PORTAGE_NICENESS=0
PORTDIR=/usr/portage
DISTDIR=/usr/portage/distfiles
PKGDIR=/usr/portage/packages
PORTAGE_TMPDIR=/var/tmp
CONFIG_MAC_EMUMOUSEBTN=y
FEATURES="sandbox ccache"
LINGUAS="es"
ALSA_CARDS="powermac"
  


Apartir de la version del portage 2.1(actualmente 2006.0 inestable) las variables RSYNC_TIMEOUT y RSYNC_RETRIES cambian a PORTAGE_RSYNC_TIMEOUT, PORTAGE_RSYNC_RETRIES.

[editar] Stage 1

Si hemos decidido realizar la instalación de nuestra gentoo apartir del stage 2, saltarse este punto hasta el siguiente punto, si hemos decidido realizar la instalación apartir del stage3, saltarse este punto y el siguiente hasta [stage 3. Si decidimos empezar con el stage 1, vamos al directorio del portage y ejecutamos el script bootstrap el cual tiene una lista de los programas basicos que componen el stage 2:

Código: Ejecucion del script bootsrap
 
# cd /usr/portage
# scripts/bootstrap.sh
 


[editar] Stage 2

Acontinuación instalaremos los paquetes requeridos para actualizar nuestro sistema al stage 3, u una vez hecho, a falta de un gestor de arranque y un kernel, terminaremos con la instalación basica de gentoo!:

Código: Instalamos el sistema base(stage3)
 
 # emerge system
 


[editar] Stage 3

Si habeis compilado desde stage 1 o stage 2, podeis saltar al siguiente punto.

Si habeis decidido usar el stage 3(buena elección si fue asi), podeis actualizar el sistema, ya que puede que el stage tenga algo de tiempo y hayan salido nuevas versiones,ademas gracias al flag N del emerge podreis recompilar el sistema usando vuestros nuevos flags:

Código: Actualizar stage 3
 
 # emerge -uND world
 


[editar] Compilación de nuestro kernel

Gentoo dispone de varios versiones del kernel linux con varios parches añadidos.

En principio estos kernels funcionana mejor puesto que son iguales que el tradicional y aparte le han añadido varios parches que nos pueden ser utiles como el bootsplash, pero debemos de tener en cuenta que esos parches son mas nuevos y menos testeados y por tanto pueden tener un mayor numero de fallos que le vanilla. En el caso del kernel de gentoo, el problema que tienen es que suelen ir unas revisiones de versiones o una version como mucho por detras de los oficiales, es decir si el oficial es el 2.6.6 puede darse que el gentoo sea el 2.6.5.rc3.

Explicación: Kernels disponibles en gentoo
 
2.6 de gentoo            -> sys-kernel/gentoo-sources
2.6 clasico              -> sys-kernel/vanilla-sources
2.6 parcheado externo    -> sys-kernel/mm-sources
  


Para instalarlo unicamente deberemos de instalar el kernel mediante emerge kernel. Las fuentes estaran descomprimidas en /usr/src/versionkernel.

Para compilar el kernel tenemos dos formas, la tradicional y clasica que funciona en todas las distribuciones o usando genkernel que es una herramienta propia de gentoo que nos ayuda en nuestra tarea. Si nunca habeis compilado un kernel, genkernel es la decision adecuada.

  • Compilación clasica

Una vez tengais el kernel debeis de configurarlo y compilarlo. Existen multitud de manuales en la red para poder realizarlo. Personalmente, la mejor manera de poder configurar el kernel es mediante la 'herramienta' make menuconfig. Es probable que en directorio /proc del live CD exista un fichero llamado config.gz, el cual es la configuración del kenrel del livecd, y podeis cargarlo dentro del programa menu config y de esta forma os puede ayudar bastante:

Código: Compilacion de kernel y modulos
 
# cd /usr/src/directoriokernel
# make menuconfig
Configugaramos el kernel...
# make all
# make modules_install
  


  • Genkernel

Gentoo dispone de una utilidad que se encarga de configurarnos el kernel correctamente, y se encarga ademas, de realizar todos los pasos necesarios para ello. Esta herramienta se llama sys-kernel/genkernel, y para instalarla deberemos de ejecutar el siguiente comando:

Código: Instalacion genkernel
 
 # emerge genkernel
  


Código: Usar genkernel
 
 # genkernel --dmraid --no-menuconfig --no-splash --no-clean --no-install kernel
 


Para mas informacion consultar el siguiente documento.

Una vez compilado el nucleo,ya sea de forma clasica o genkernel asi como sus modulos, deberemos de copiar la imagen del kernel compilado. Dependiendo de nuestra plataforma se encontrara en un lugar u en otro. Acordaros, de que si usasteis una particion para boot, como comentamos en el principio del documento, debereis de tener la particion montada.

Código: Copiar el nucleo compilado
 
En el caso de ser x86 Pc 32bits:
# cp /usr/src/directoriokernel/arch/i386/boot/bzImage /boot
En el caso de ser X86_64 64bits:
# cp /usr/src/directoriokernel/arch/x86_64/boot/bzImage  /boot
En el caso de ser ppc:
# cp /usr/src/directoriokernel/vmlinux /boot
  


Acontinuacion tendriamos que editar el fichero /etc/modules.autoload.d/kernel-2.6 y inidcar los modulos necesarios que queremos que se carguen en el arranque del kernel. Notar que solo ahi que poner el nombre y no modprobe ni insmod:

Un ejemplo de fichero kernel-2.6 seria este:

Archivo: /etc/modules.autoload.d/kernel-2.6
forcedeth
nvidia
ehci-hcd
ohci-hcd
usb_storage
 


Existe una utilidad que tiene los modulos ordenador por categoria, ademas de un explicación sobre cada uno de ellos que nos puede facilitar la tarea, se trata del modconf. Comentar que la utilidad esta ahun un poco verde:

Código: Instalacion y ejecucion de modconf
 
 # emerge modconf
 # modconf
  


Si esta herramienta no funcionara correctamente, puesto que en ocasiones ocurre, una buena opción para editar el fichero seria usar la opcion -l del modprobe para listar todos los posibles modulos que podemos cargar:

# modprobe -l

Acordaros de si disponeis de RAID activarlo en el kernel, y si este se encuentra en la raiz debereis de seleccionarlo como <*> en Multi-device support (RAID and LVM) dentro de Device Drivers.

Ahora deberiamos de cargar nuestro sistema de arranque. Existen principalmente dos, LiLO y GRUB. No os preocupeis si no habeis entendido muy bien lo que haces con el LILO/GRUB puesto que en el siguiente punto se explica muy bien. Para usuarios de MAC/Apple usareis unicamente el Yaboot y no el lilo/grub. Por ultimo comentar que la "edicion de un fichero" quiere decir que deberemos de editar el fichero de configuracion como deseemos y no que escribamos "editamos el fichero X".

Si se diera el caso, que se desconociera el funcionamiento del LILO/GRUB/Yaboot en el siguiente punto del manual se explica con claridad.

Código: Instalacion y ejecucion de lilo
 
# emerge lilo
# "editamos el fichero /etc/lilo.conf"
# lilo


Código: Instalacion y ejecucion de Grub
 
# emerge grub
# "editamos el fichero /etc/grub/grub.conf"
# grub
> root(hd0,1)   #Siendo "hdX" el numero del disco duro, y ", X" la particion boot.
> setup(hd0)      #Siendo hdX donde escribimos el master boot record o mbr(sector de arranque del disco duro).
> quit


Código: Instalacion y ejecucion de Yaboot
 
# emerge yaboot
# "editamos el fichero /etc/yaboot.conf"
# yaboot -C /etc/yaboot.conf
  

[editar] Gestor de arranque

Existen 2 gestores de arranque principalmente, uno es lilo y otro grub. La eleccion de uno u otro es a gusto. Tal vez la que mas desarrollo tenga actualmente sea grub. Para usuarios de mac usareis yaboot, ya que, los anteriores no funcionan con mac, como hemos comentado anteriormente.

[editar] LILO

Lilo o linux loader es el encargado de arrancar el sistema operativo linux, ademas de soportar el arranque otros sistemas operativos.

Comenzaremos instalando el programa:

Código: Instalacion de lilo
 
# emerge lilo


Lilo tiene su configuración en el fichero /etc/lilo.conf, tienes un fichero de ejemplo en el /etc/lilo.conf.example. Acontinuación expondre un ejemplo de fichero lilo.conf:

Archivo: /etc/lilo.conf
 
 #Permite poder cargar kernel en discos duros de "gran tamaño"(gran numero de cilindros, los actuales).
lba32     
boot = /dev/dispositivo
#EL disco duro donde leera el mbr(master boot record), es decir, donde estara el gestor de arranque(dispositivo sera hda o sda normalmente).
#Establece la ubicación del fichero de mapeado(generado por lilo)
map =/boot/System.map    
#Instala el fichero especificado como nuevo sector de arranque.        
install = /boot/boot-menu.b
 #Local de entorno       
menu-scheme=Wb  
#Permite tener una "mini-shell" donde introducimos por comando el "label" de la particion a cargar                  
prompt   
# Una vez cargado el lilo, espera 20 segundos, si no aprietas nada carga el kernel que tenga como default                
delay=20 
# Tienes 150 segundos para elegir, si no eliges pasado 150 segundos arrancara el kernel default        
timeout=150             
#Indicamos que kernel queremos cargar como default indicado en la etiqueta label
default=gentoo2.6  
  
    #Indicamos donde se encuentra el kernel que queremos cargar(el que compilamos nosotros)
    image=/boot/bzImage 
        #Aqui le decimos cual es la partición root(/) de nuestra distribución(hd2/sda2 o hda1/sda1 es lo habitual)          
        root=/dev/hda2      
        #Aqui como queremos que arranque(800x600, 1024x768 y con que profundidad de color) 
        vga=normal    
        #Introducimos el nombre que mostrara a la hora de elegir el arranque(en el ej: gentoo2.6)                
        label=gentoo2.6    
        read-only
        
     #Aqui tenemos como seria para meter un segundo kernel en nuestro sistema
    image=/boot/rescue            
        root=/dev/hda2
        vga=normal
        label=Linuxrescue
        read-only
    
     #Si tubieramos otro sistema operativo que no fuera linux    
    other=/dev/hda1                
        label=Ventanukos
        table=/dev/hda


Explicación: Valores de vga
 
Normal VGA console:
  vga = normal

VESA framebuffer console(Se puede poner de 2 formas)
colores       resoluciones

              640x480  800x600  1024x768
256             771     771       773
32k             784     787       790
64k             785     788       791

            640x480  800x600  1024x768 1280x1024
256          0x301     0x303   0x305    0x307   
32k          0x310     0x313   0x316    0x319   
64k          0x311     0x314   0x317    0x31A   
16M          0x312     0x315   0x318    0x31B


Si tubieramos otro disco duro, y quisieramos arrancar el linux que se encuentra en otro disco duro, unicamente deberiamos especificarle que particion sera la raiz, por ejemplo si nuestro disco duro fuera el hdb y la partición raiz fuera la hdb1 sera asi:

Explicación: Arrancar linux que se encuentra en otro HD
 
    image=/boot/mikernel
        root=/dev/hdb1
        vga=normal
        label=otrohd
        read-only


Pero si la otra partición fuera de otro sistema operativo, como pudiera ser un windows deberiamos de añadir 2 opciones mas para engañar al sistema operativo, con lo que quedaria de la siguiente forma:

Explicación: Arrancar Windows/otros que se encuentra en otro HD
 
        other=/dev/hda1          
        label=Ventanukos
        table=/dev/hda
        map-drive = 0x80
        to = 0x81
    


Para cargar lilo en el mbr, deberemos de llamar al programa(recuerda que si no lo emergistes en la creación del kernel deberas de hacerlo ahora):

Código: Carga de lilo
 
# lilo


Cuando introduzcamos el lilo, nos apareceran los nucleos cargados, asi como si cometemos algun tipo de error que produza que no arranque. Para mas información man lilo. Siempre que modifiquemos cualquier valor del lilo deberemos de hacerlo de nuevo(# lilo).

[editar] Grub

Para usar grub siempre es recomendable usar una partición /boot independiente. Debemos de tener en cuenta que grub reconoce a las particiones con un hdX,Y(ya sean disco IDE, SATA, SCSI o raid). Tanto X como Y son numeros que empiezan en 0. La X indica el disco duro, si por ejemplo si queremos seleccionar nuestro disco duro sda X=0 mientras que si queremos el disco duro sdb sera X=1.La Y india el numero de particion, sda1 sera Y=0, sda2 Y=1 etc.

Comenzaremos instalando el programa:

Código: Instalacion de Grub
 
# emerge grub


El fichero de configuración se encuentra en /boot/grub/grub.conf:

Archivo: /boot/grub/grub.conf
 
#Tiempo desde que arranca el grub hasta elegir la opcion predeterminada
timeout 10
#Cual es la opcion predeterminada, siendo 0 para la primera, 1 para la segunda, 2 para la tercera etc.
default 0
#Si falla la predeterminada cual escogemos
fallback 1
#Tema grafico del grub, puede ocasionar algun fallito si nuestra grafica no esta correctamente soportado, si ocurre, comentar la opcion
splashimage=(hd1,1) /grub/splash.xpm.gz


#Ejemplo basico
#Nombre que mostrara grub para esta particion
title Gentoo Rescue
#Indica en que particion se encuentra el ''/boot'', en nuestro ejemplo es sdb3(2 disco duro, 3 particion)
root (hd1,2)
#Kernel /donde-este-nuesta-imagen-kernel(dentro de la particion boot) ro root=/dev/nuestra-particion-raiz(la /, en este caso sda2) opciones
kernel /rescue ro root=/dev/sda2 vga=normal

#Ejemplo para una particion con arranque splash a 1280x1024 32bits de color y 60 de frecuencia.
#Nombre que mostrara grub para esta particion
title  Gentoo x86_64
#Indica en que particion se encuentra grub, en nuestro ejemplo es sdb3(2 disco duro, 3 particion)
root (hd1,2)
#Kernel /donde-este-nuesta-imagen-kernel ro root=/nuestra-particion-raiz opciones(para mas informacion sobre estas opciones buscar splashutils en la wiki)
kernel /bzImage ro root=/dev/md0 quiet vga=795 video=vesafb:ywrap,mtrr,1280x1024-32@60 splash=silent,theme:gentoo CONSOLE=/dev/tty1
initrd (hd1,2)/init-gentoo

#Ejemplo de arranque windows
#titulo
title Windows Xp
#Indicamos donde esta nuestra partición, en este caso es la sda1(primer disco duro primera particion)
rootnoverify (hd0,0)
makeactive
chainloader  +1


Por ultimo instalaremos el grub en el MBR, teniendo en cuenta que nuestra particion /boot es la sdb3:

Código: Carga de Grub
 
# grub
# root (hd1,2)    
# setup (hd0)
# quit


Si no nos gusta la manera anterior, tenemos otra forma, aunque personalmente no la recomiendo:

Código: Carga de Grub - Opcional
 
# grub-install /dev/hda


Tenemos que tener en cuenta, que una vez hecho esto, aunque cambiemos de kernel(siempre que la imagen se llame igual) no hara falta modificar nada ni realizar nada con el grub.

[editar] Yaboot

Comenzaremos instalando el programa:


Código: Instalacion de yaboot
 
# emerge yaboot


Editaremos el fichero /etc/yaboot.conf, el cual es muy parecido al del lilo.

  • Cargamos el Yaboot(antes de la 2006)
Código: Carga de Yaboot
 
# yaboot -C /etc/yaboot.conf
  
  • Cargamos el Yaboot(apartir de la 2006)
Código: Carga de Yaboot
 
# mkofboot
# ybin -v
  

Cada vez que hagamos algun tipo de cambio en el yaboot deberemos de ejecutar el comando:

# ybin -v

[editar] Configuracion

Acontinuación vamos a dar unos pequeños consejoas para tener una configuración basica de nuestra Gentoo. Muchas de estas configuraciones ya estaran redactadas en otros manuales, por lo que directamente redireccionaremos a los manuales que hemos considerados los mas adecuados.

[editar] Runlevels en Gentoo

Los runlevels son los programas, demonios, scripts.. que se cargan automaticamente, ya sea en el arranque o en el apafo del sistema. En gentoo siguen otro sistema distinto al acostumbrado con los linux tradicionales. Los 00runlevels en gentoo se dividen en:

-> boot: Programas que se cargan en el arranque seguido del kernel ej: alsa. Tipo /etc/rcS.d

-> default: Programas que se cargan una vez cargado el kernel y la distribucion. Tipo /etc/rc3.d

-> nonetwork: Programas que se cargan antes de la conexion a inet

-> single: Desconozco su uso Ò.Ó!

Se encuentran en /etc/runlevels divididos en 4 directorios: boot, default, nonetwork y single. Dentro de cada directorio veremos los demonios que estan listos para ser ejecutados cuando se llame a ese runlevel.

Los programas se cargan usando la siguiente sintaxis rc-update add programa/demonio runlevel siendo runlevel cualquiera de los 4 expuestos anteriormente y programa el script de arranque del programa que se encuentra en /etc/init.d. Por ejemplo para el apache2:

Código: Añadiendo Apache2 runlevel default
 
# rc-update add apache2 default
 * apache2 added to runlevel default
 * Caching service dependencies...
 * rc-update complete.


Para eliminarlos pondremos unicamente, rc-update dell programa/demonio, sin especificar el runlevel, puesto que el rc-update ya lo busca en los 4 posibles, un ejemplo con el apache2 seria:

Código: Eliminando Apache2 runlevel default
 
# rc-update del apache2
 * apache2 removed from the following runlevels: default
 * Caching service dependencies...
 * rc-update complete.


Al cargar los programas/demonios deben de tener una implementación en en /etc/init.d. Si queremos cargar un fichero con un script de shell que no este implementado en el /etc/init.d deberemos de usar los ficheros local.start(para arranque) y local.stop(para el apagado) que se encuentran en /etc/conf.d y añadir en los ficheros la ruta y el nombre del script que queremos lanzar.

Un ejemplo que uso yo para lanzar mi script /etc/conf.d/coolquiet tendria que añadir lo siguiente en local.start:

Código: Lanzar mi script automaticamente en el arranque
 
# cat /etc/conf.d/coolquiet
#!/bin/bash
mis comandos... 
# cat /etc/conf.d/local.start
/etc/conf.d/coolquiet


Para ver todos los posibles programas(Servicios) que tenemos arrancados, asi como los que disponemos pero no los tenemos asignados a ningun runlevel:

# rc-status -a

Como habreis visto, cuando instalais un programa que necesita de los runlevels, para la ejecución de un demonio/servicio/etc se genera su pertinente implementación en el directorio /etc/init.d/ pero ademas existen unos pequeños scripts localizados en /etc/conf.d que deberian de ser usados, para por ejemplo el uso de iptables.

Recordar que muchos de los programas que cargamos en los runlevels son demonios/servicios. Estos servicios se cargaran automaticamente al haber sido añadidos con el rc-update al runlevel. Si queremos pararlos, reiniciarlos o volverlos a arrancar una vez parados, debemos de tratarlos como en cualquier distribucion de linux. Un ejemplo seria ssh, apache, proftpd etc, para ello usaremos lo siguiente:

Código: Gestionar demonios
 
# /etc/init.d/servicio stop         ->Detiene la ejecución
# /etc/init.d/servicio start        ->Arranca de nuevo el demonio/servicio, si ya esta arrancado dara error
# /etc/init.d/servicio restart    ->Rearranca el servicio, es equivalente a hacer un stop y un start[/i]


Un ejemplo de lo anteriormente citado seria este(apache2):

Código: Parar, arrancar, rearrancar apache2
 
# /etc/init.d/apache2 stop
 * Stopping apache2...                                                   [ ok ]
DarkTemplar root # /etc/init.d/apache2 start
 * Starting apache2...                                                   [ ok ]
DarkTemplar root # /etc/init.d/apache2 restart
 * Stopping apache2...                                                   [ ok ]
 * Starting apache2...                                                   [ ok ]


[editar] Creación de usuarios

La creación de usuarios debe de ser obligatorio aunque solo usemos el ordenador una persona. El usurio ROOT solo debe de usarse cuando tengamos la necesidad de configurar/administrar nuestro sistema, puede parecer algo engorroso, pero os dareis cuenta que siendo usuarios normales si cometeis algun tipo de error, si no soys root, es deificil que dañeis el sistema, ademas que no siendo root evitais problemas como pudean ser: troyanos, gusanos,etc etc

Para la creación de ficheros podemos hacerlo a mano usando los comandos de:

Código: Crear usuario
 
# adduser -m -G grupos nombre_usuario -s /bin/bash
# passwd nombre_usuario


Acontinuación debemos de comprobar si el usuario esta creado, y verificar que fue correctamente. Para ello editaremos el fichero /etc/passwd y verificaremos que el usuario sigue una estructura asi(se encontrara en la ultima linea): nombre_usuario:x:1000:100::/home/nombre_usuario:/bin/bash (el valor 1000 es el identificador del usuario, puede ser 1000 o superior).

Código: Usuario creado correctamente
 
# cat /etc/passwd | grep usuario    
usuario:x:1000:100:,,,:/home/usuario:/bin/bash


Ahora deberemos de agregar el usuario a los grupos que nos interese añadir, es importante, remarcar que ahi un grupo en gentoo(y en otras distribuciones de linux/unix muy seguras) que tienen el grupo wheel el cual es necesario tener a nuestro usuario si queremos que sea capaz de usar el comando su - para tener acceso como root, sin tener que abrir una consola nueva. Los grupos que seria logico añadir al usuario serian: wheel, audio, cdrom, games, cdrw, usb. Para añadir usuarios seria: grupo:usuario1,usuario2,usuario3.... Un ejemplo:

Código: Comprobar usuario grupo whell
 
cat /etc/group | grep wheel
wheel::10:root,usuario


Gentoo implementa un script para la edición facil y rapida de usuarios. Se llama superadduser. Yo os lo recomiendo puesto que os ahorrara tiempo. el script se encuentra en /usr/sbin/superadduser. Vamos a emergerlo:

Código: Instalar script superadduser
 
# emerge superadduser


Un ejemplo de uso sera el siguiente, recordar que al preguntarnos siempre aparece entre [ ] la opcion default y que con apretar "intro", sin introducir nada, te toma la opción default si la tiene o simplemente no te introduce nada en esa opción. Un ejemplo es el siguiente:

Código: Ejecutar superadduser
 
# superadduser

Login name for new user []: nombre

User ID ('UID') [ defaults to next available ]: (enter)               *(pulsar intro, dejamos la opcion predeterminada o default)

Initial group [ users ]: (enter)

Additional groups (comma separated) []: wheel,audio,cdrom,games,cdrw,usb


Home directory [ /home/nombre ]  (enter)

Shell [ /bin/bash ]  (enter)

Expiry date (YYYY-MM-DD) []:  (enter)

New account will be created as follows:

---------------------------------------
Login name.......:  nombre
UID..............:  [ Next available ]
Initial group....:  users
Additional groups:  wheel,audio,cdrom,games,cdrw,usb
Home directory...:  /home/nombre
Shell............:  /bin/bash
Expiry date......:  [ Never ]

This is it... if you want to bail out, hit Control-C.  Otherwise, press
ENTER to go ahead and make the account.
(enter)

Creating new account...

Changing the user information for nombre
Enter the new value, or press ENTER for the default
        Full Name []: (enter)
        Room Number []: (enter)
        Work Phone []: (enter)
        Home Phone []: (enter)
        Other []: (enter)
New UNIX password: (password)
Retype new UNIX password:  (password)
passwd: password updated successfully

Account setup complete.


Como veis es bastante facilillo la creación de usuarios con este script.

[editar] Castellanizar

Para castellanizar la gentoo debereis de seguir el manual de castellanizacion.

[editar] Optimizacion

Gentoo se destaca por permitir una gran optimización, ahun asi, existen pequeñas herramientras y trucos que permiten aumentar el rendimiento de nuestro sistema, asi como acortar las compilaciones de este. Lo podemos encontrar en los foros de gentoo acelerar/optimizar el arranque y sistema linux gentoo.

[editar] Herramientas sistema fichero

Existe herramientas de control y reparacion de nuestros sistemas de fichero, las cuales es muy recomendable instalarlas, antes de concluir nuestra instalación.

Código: Para sistemas ext2 y ext3
 
 # emerge e2fsprogs
  


Código: Para sistemas reiserfs
 
 # emerge progsreiserfs reiserfsprogs
  


Código: Para sistemas xfs
 
 # emerge xfsdump xfsprogs
  


Código: Para sistemas jfs
 
 # emerge jfsutils
  


Código: Para sistemas raid(a parte del sistema de ficheros que usen)
 
 # emerge mdadm
  


[editar] Control de logs: syslog-ng

Existe una herramienta que permite controlar todos los logs(mensages que registran hechos ocurridos) de nuestro sistema. Esta herramienta se conoce como syslog-ng.

Para ello vamos a comenzar instalandola:

Código: Instalacion syslog-ng
 
 # emerge syslog-ng
  


Acontinuacion añadimos el log al arranque:


Código: Runlevel syslog-ng
 
 # rc-update add syslog-ng
  


El fichero de configuración de este demonio se encuentra en /etc/syslog-ng/syslog-ng.conf.

Podeis editarlo y ver muchos ejemplos de utilización, ademas podeis consultar el man del syslog-ng para mas información.

[editar] Tabla de sistema de ficheros: fstab

En este fichero especificamos que particiones queremos arrancar en el inicio o queremos tener un control sobre ellas. El fichero de configuración se encuentra en /etc/fstab.

En el tenemos una linea de del fichero por cada partición que deseemos añadir siendo esta linea de la siguiente forma:

Explicación: Formato fstab
 
  Dispositivo    Directorio    tipo_sistema_fichero    opciones   X   Y   
  


  • Dispositivo: particion o dispositivo dentro del /dev o tipo de ficheros especiales como tmpfs o proc.
  • Directorio: donde deseamos montar la unidad, en caso de ser swap seria none.
  • Tipo_sistema_fichero: el tipo de sistema de fichero a usar. Los mas usados son estos:
Explicación: Lista de tipo_sistema_fichero
 
  ext2 -> ext2
  ext3 -> ext3
  reiserfs -> reiserfs
  xfs -> xfs
  jfs -> jfs
  iso9660 -> cdrom/dvd
  swap -> swap
  vfat -> fat32
  ntfs -> ntfs
  tmpfs -> virtuales/temporales
  hfsplus -> Hfs+ mac/mac ox
  


  • Opciones: permite añadir varias opciones interesantes:
Explicación: Lista de opciones
 
  auto -> se monta en el arranque.
  noauto -> no se monta en el arranque.
  exec -> permite la ejecución de ficheros.
  noexec -> no se permite ejecutar nada.
  suid -> permite el bit suid(permisos de root para usuarios con menos nivel).
  nosuid -> no se permite el bit de suid.
  size=XY -> tamaño maximo permitido, siendo X un numero y Y la unidad(k(kilobyte),m(megabyte) o G(gigabyte)).
  default -> se traduce como rw, suid, dev, exec, auto, nouser y async.
  users -> es un grupo no una opcion, mirar opcion gid.
  user -> permite montar/desmontar particiones a usuarios.
  nouser -> lo contrario de user.
  dev ->  Interpretar dispositivos especiales de caracteres o bloques en el sistema de ficheros.
  ro -> solo lectura.
  rw -> lectura y escritura.
  uid=ZZZZ -> permite acceso a esa particion al usuario con uid=ZZ.
  gid=ZZZZ -> lo mismo que uid pero al grupo.  
  
  • X: Unidades montadas que no/si requieran volcados de seguridad. Para no hacerlo poner el valor 0 para si a 1. NFS, CDROM etc poner el valor a 0.
  • Y: comprobar el sistema de ficheros, el 1 para el raiz y el 2 para los restantes. Ojo tienen que ser sistemas soportados por fsck. Los que no lo estan poner 0.

Un ejemplo de este fichero seria el siguiente:

Archivo: /etc/fstab
 
  #Ejemplo de raiz boot 
  /dev/sdb3               /boot           ext2            noauto,noatime                  1 2
  #Ejemplo de raiz
  /dev/hda2                /               reiserfs        noatime                         0 0
  #Ejemplo de raiz para un raid
  /dev/md0                /               reiserfs        noatime                         0 0
  #Ejemplo para otra particion que se introduzca dentro del raiz
  /dev/md1                /home           ext3            noatime                         0 0
  #Particion swap
  /dev/sdb5               none            swap            sw                              0 0
  #Necesario para udev, y por tanto necesario para gentoo
  proc                    /proc           proc            defaults                        0 0
  shm                     /dev/shm        tmpfs           nodev,nosuid,noexec             0 0
  #Particion windows NTFS donde queremos que el usuario con uid=1000 tenga acceso
  /dev/sda1               /mnt/win        ntfs            auto,ro,uid=1000                0 0
  #Particion windows VFAT
  /dev/sda1               /mnt/win        vfat            auto,ro,rw                      0 0
  

Recordar que el numero de linias tiene que ser logico, es decir, primero montamos la raiz, luego las particiones dentro de estas, luego las de particiones externas como windows o cdroms, y por ultimo las de udev.

[editar] Montage en memoria ram

Actualmente se permite montar ciertas particiones en memoria ram. Estas son particiones que se generan temporalmente durante una sesion y son consecuencia de datos generados por los programas. Por ejemplo la partición temporal /tmp la generan los programas al ser ejecutados(los que lo requieren). Tambien por ejemplo la particion /var/tmp/portage es una particion temporal donde compilamos las cosas. La ventaja que aporta es que leemos directamente de memoria ram y no de disco duro, es decir, velocidad, ademas de evitar la fragmentacion de este al estar escribiendo y borrando constantemente. Ademas cada vez que reiniciemos los ficheros se borran por lo que no se produce un aumento de esta por cada sesión que iniciemos. Muy recomendable para portatil, ya que no hace tanto uso del disco duro.

Existe la posibilidad de indicarle un tamaño maximo para evitar posible llenado de la memoria, junto con la posibilidad de poder desmontar la particion y usar el disco duro en caso de ciertos programas que requieran gran memoria temporal, o incluso remontar la particion con mas tamaño(o menos).

Para ello deberemos de añadir al fstab la siguiente linea:


Explicación: Fstab dispositivo virtual
 
  tmpfs    Directorio    tmpfs    defaults,size=XXXm   0   0   
  

[editar] Montage automatico: ivman

Esta utilidad permite montar/desmontar particiones(como cdroms) automaticamente. Esta utilidad ha substituido al supermount.

Para ello instalaremos y añadiremos los siguientes programas al runlevel:


Explicación: Activando automount
 
  # emerge hotplug ivman
  # rc-update add ivman default
  # rc-update add hal default
  # rc-update add hotplug default
  

Debemos de tener activado en el kernel la opción de hotplug para muchos dispositivos pci hotplug.

[editar] Hosts

Acontinuación vamos a darle un nombre a nuestra maquina:

Archivo: /etc/conf.d/hostname
 HOSTNAME="NombreMaquina"
  

Por ultimo podemos asignamos nuestra ip al nombre del host:

Archivo: /etc/hosts
 127.0.0.1       localhost
 NuestraIp       NombreMaquina
  

[editar] Contraseña Root

Por ultimo y antes de finalizar deberemos de crear el password de root para nuestra nueva gentoo:


Código: Password root
 # passwd
 New UNIX password: mipassword
 Retype new UNIX password: mipassword
 passwd: contraseña actualizada correctamente  
 

[editar] Reiniciar

Ahora saldremos de nuestra flamante y nueva gentoo y reiniciaremos para cargar con nuestro nuevo kernel. Acordaros de volver a poner en la bios el arranque desde disco duro y de retirar el cd live.


Código: Reiniciar maquina
 
# umount /proc
# umount /boot
# umount /nombre_que_sea      *si hemos montado mas particiones aparte de las basicas
# exit
# unmount /migentoo
# reboot
  

[editar] Utilidades Adicionales

[editar] Copias de seguridad: Stage 4

Una vez tengamos nuestro sistema listo, lo mas indicado sera realizar una copia de seguridad, ya que, si se produjera un error seria tremendamente costoso volver a reinstalar todo el sistema. Para ello existe un pequeño script que nos realizar una copia de seguridad generandonos un fichero tar.gz o tar.bz2 el cual en el caso de tener que reinstalar nuestro sistema, solo deberiamos de realizar los primeros pasos, pero en vez de copiar el stage1-2-3 copiariamos nuestro fichero y ya volveriamos a tener nuestro fichero como antes.

Los pasos son los siguientes: