Está en la página 1de 57

Tutorial instalación Gentoo:

Buenas, soy x11tete11x y esta vez les traigo un Tutorial de instalación de Gentoo, antes que nada
quiero mencionar, que todo lo que uno necesita, esta en la Wiki de Gentoo, o en la Wiki de Arch, las
cuestiones relacionadas con la instalación, están en el handbook de Gentoo. Este tuto lo hago,
porque me lo han pedido varias personas, y porque voy a añadir mi granito de personalización, al
momento de instalar Gentoo. Sepan que en esta Distro, se aprecia mucho a la gente que lee, si, es
una distro donde la mayoría de los problemas, se pueden resolver, leyendo la wiki e indagando un
poco (es decir si preguntas algo y te contestan: fíjate en la wiki , significa que como usuario de
Gentoo, no estas haciendo las cosas bien xD). Con esto no quiere decir que no se contesten dudas
"sencillas" pero la gran cantidad de documentación, apunta a que uno lea, para resolver sus
problemas.
Ahora hablare un poco de que se trata Gentoo, que es lo que tiene de llamativo, y que la diferencia
de las demás distros de Linux. Partiremos de la base de que Gentoo, es una Distro basada en código
fuente, ¿que quiere decir esto? , que a diferencia de las Distros convencionales (precompiladas),
como Debian, Ubuntu, Arch, Manjaro, Fedora, Suse, y un largo etc etc, ésta, al instalar un paquete,
no baja el ejecutable (binario, .deb, .rpm, .pkg.tar.xz, etc) y lo instala, sino, que, baja su código
fuente, lo compila según nuestro procesador y que reglas hayamos definido para los paquetes, y con
esto, genera el ejecutable, luego, lo instala. Acá es donde radica la diferencia, y lo que la hace única
a esta Distro, no solo el hecho de que compila los paquetes, sino también que uno decide soporte
para que características tendrá cada paquete (no se preocupen, mas adelante entrare en detalle). La
consecuencia directa de la personalización y compilación de los paquetes, es la velocidad,
¿Porque?, vamos a ilustrarlo con un ejemplo. Sea X una Distro precompiladas (de las que mencione
anteriormente), para que la Distro X, pueda ser instalada en varios tipos de maquinas, es necesario
que sus paquetes sean compilados con el juego de instrucciones de la maquina mas vieja, de esta
manera, si queremos que anden desde una Pentium II en adelante, compilaremos todos sus paquetes
con el juego de instrucciones de la pentium II, ¿Que consecuencias trae esto?, los procesadores mas
nuevos, supongamos un I7, los paquetes no estarían aprovechando toda la capacidad que ofrece éste
ultimo, ya que si son compilados con el juego de instrucciones que provee el I7, no se podrán
ejecutar en procesadores anteriores a este, porque éstos últimos carecen de esas instrucciones mas
nuevas, Gentoo, al descargar el código fuente y compilarlo para el procesador que poseas,
Aprovechará toda la capacidad del mismo, ya que si lo instalas en un I7, utilizara el juego de
instrucciones de éste, y si lo instalas en un Pentium II, utilizara los correspondientes a éste ultimo.
Por otro lado también se puede personalizar que tipo de soporte que se desea que tengan los
paquetes, yo utilizo KDE y qt, entonces no me interesa que los paquetes tengan, soporte para gtk y
Gnome, por lo tanto le digo que los compile sin soporte para éstos. De ésta manera al comparar el
mismo paquete en Gentoo y en la Distro X, el paquete de Gentoo es mucho mas liviano dado que en
mi caso definí que le saque el soporte para gtk y para Gnome. Y como en la Distro X los paquetes
son genéricos, estos tendrán soporte para todo.
Ahora habiendo hecho una introducción, comenzare a explicar como instalar Gentoo, desde un Live
CD de Linux cualquiera (Ubuntu, Fedora, Suse, Backtrack, Slax, o lo que se les ocurra ) o partición
en la cual tengan una Distro de Linux instalada

El proceso hasta cierto punto, lo voy a hacer en una VMware (porque no tengo ganas de reinstalar
mi sistema xD y porque llega un punto que la VM tira errores raros al compilar u.u), y tengo a mano
una iso de Ubuntu 12.10 así que voy a usar ésta.
1) Iniciar con el Live CD o desde la particion que contiene OTRO Linux
Bueno, esto simplemente se reduce a meter el live cd e iniciar con el mismo, lo de la
particion con otro linux lo aclaro, porque tengo instalado Gentoo, Backtrack y Windows 7, y varias
veces e reinstalado Gentoo desde la particion de Backtrack

en el caso de ubuntu le damos “Probar Ubuntu” para que inicie como Live
2) Particionado
En este punto haremos las particiones desde el live cd usando el Gparted, pueden usar el que
venga en el live (Kpartition por ejemplo), y si no viene ninguno, pueden instalarlo en el mismo live
cd (el live cd se monta en RAM por lo tanto al reiniciar el programa instalado en el live cd
desaparecera, es una simple aclaracion). A partir de aca voy a insertar las screenshots del live CD
(es que me di cuenta que tenia para seleccionar ventana xD)

cree un disco de 40 GB en la VM con la siguiente disposición:


/dev/sda1 → /boot 500 MB
/dev/sda2 → / 20 GB
/dev/sda3 → swap 1 GB
/dev/sda4 → /home 18,36 GB

(aquellos que lo deseen pueden omitir la particion swap)


3) Preparando el Live CD para usar el Handbook
Este paso es el fundamental, para aquellos que gustan seguir el handbook al pie de la letra, el
Live CD de Gentoo trae un directorio en /mnt llamado /gentoo entonces simplemente lo que
haremos sera crear este directorio, para luego seguir el handbook, por la tanto, abrimos la terminal,
nos ponemos como root y creamos la carpeta:

sudo su
mkdir /mnt/gentoo
4) Conectarse a internet y verificar que estemos conectados
En este paso lo que haremos sera conectarnos a internet mediante el administrador de redes
que traiga el Live CD y verificar que la conexión este funcionando (notar que en mis capturas esta
conectado como si estuviera conectado por cable, ya que el Vmware cuando comparte la conexión
la meneja como si fuera una cableda), si quieren conectarse a una inalambrica solo vayan al
administrador de redes seleccionen la red a la que se quieren conectar y luego ingresen la
contraseña, si tuviera. Para verificar que este andando, simplemente haremos un ping a google

ping www.google.com
5) una vez hecho esto, abriremos el navegador de Live CD e ingresaremos a la pagina del
handbook de Gentoo
www.gentoo.org/doc/es/handbook/
yo suelo elegir la version de todo en una sola pagina, aca deben elegir la arquitetura que usen
(x86<32 Bits>, amd64<64Bits>)
6) Montado las Particiones
A partir de este punto empezaremos a hacer las cosas que dice el handbook (en el paso
anterior ya lo tiene abierto por si lo quieren consultar)
Nota: Puede que alguno de mis pasos difieran un poco de los del Handbook, también mas adelante
voy a añadir opcionales para obtener un sistema super optimizado y de alto rendimiento.

Montemos las particiones:


IMPORTANTE: en la captura que muestro a continuación volví a ejecutar el mkdir
/mnt/gentoo (porque tuve que reiniciar la virtual), si YA ejecutaron el paso 3) NO hay que hacerlo
(si lo vulven a hacer no va a pasar nada, el comando solo tirara error)

Miremos las particiones


fdisk -l

Activaremos la swap:
swapon /dev/sda3

Montemos /
mount /dev/sda2 /mnt/gentoo

Creacion de los puntos de montaje /home /boot (notar que los crearemos en la particion recien
montada)
mkdir /mnt/gentoo/home
mkdir /mnt/gentoo/boot

Montemos /boot y /home


mount /dev/sda1 /mnt/gentoo/boot
mount /dev/sda4 /mnt/gentoo/home

Posicionarse en /
cd /mnt/gentoo
7) Descargar el Stage3
Descargaremos el sistema base para Gentoo, por lo que nuevamente abriremos el firefox y
en la pagina principal de Gentoo, nos iremos a la parte de “Downloads” y descargaremos la
ULTIMA versión de stage3 disponible:
Bien, ahora lo que haremos sera copiar el archivo recien descargado, a la carpeta /mnt/gentoo (se
puede hacer desde la consola mediante cp, o como lo voy a hacer ahora).
Abrimos el Administrador de archivos con permisos de root, para esto usamos gksu <nombre del
administrador de archivos> o si es un live con kde kdesu <nombre del administrador de archivos>,
y copiamos el archivo a la carpeta mencionada
Volvemos a la consola y descomprimimos el archivo recién copiado

tar xjpf stage3-*.tar.bz2

NOTA: yo le saco la opción “v” para que lo haga mas rápido


8) El make.conf
Acá tendremos que hacer un alto, dado que esta es una de las partes mas importantes, ¿que es el
make.conf? El make.conf es el archivo de configuración en el que definiremos las reglas de
compilación. Miremos lo que nos sugiere el handbook:

“CFLAGS y CXXFLAGS
Las variables CFLAGS y CXXFLAGS, definen los parámetros de optimización para el compilador
de C y C++ de gcc respectivamente. Aunque generalmente se definen aquí, tendrá el máximo
rendimiento si optimiza estos parámetros para cada programa por separado. La razón es que cada
programa es diferente.
En el fichero make.conf deberá definir los parámetros de optimización que piense que vayan a hacer
su sistema el mejor en todas las situaciones. No coloque parámetros experimentales en esta
variable; un nivel demasiado alto de optimización puede hacer que los programas se comporten mal
(cuelgues, o incluso peor, funcionamientos erróneos).
No explicaremos todas las opciones posibles para la optimización. Pero si quiere conocerlas todas,
léase El manual en línea de GNU o la página información de gcc (info gcc -- Solo en un sistema
Linux funcional). El fichero make.conf también contiene una gran cantidad de ejemplos e
información; no olvide leerlo también.
El primer parámetro es -march= o -mtune=, el cual especifica el nombre de la arquitectura destino.
Las posibles opciones se describen en el fichero make.conf.example (como comentarios). Un valor
frecuentemente utilizado es native ya que indica al compilador que seleccione la arquitectura
destino del sistema actual (en el que se está realizando la instalación).
Seguida de esta, está el parámetro -O, que especifica la clase optimización de gcc. Las clases
posibles son s (para tamaño optimizado), 0 (para no optimizar), 1, 2 o incluso 3 para la optimización
de velocidad (cada clase tiene los mismos parámetros que la primera, más algunos extras). -O2 es la
recomendada. Es conocido que -O3 provoca problemas cuando se utiliza globalmente en el sistema,
por esto se recomienda mantener siempre -O2.
Otros parámetros de optimización bastante populares son los -pipe (usando tuberías en lugar de
ficheros temporales para la comunicación entre las diferentes etapas de compilación). No tiene
ningún impacto sobre le código generado, pero usa más memoria. En sistemas con poca memoria, el
proceso del compilador podría ser terminado. En este caso, no use este parámetro.
Cuidado con utilizar -fomit-frame-pointer (el cual no mantiene el puntero de macro en un registro
para las funciones que no lo necesiten) pues podría tener graves repercusiones en la depuración de
errores en aplicaciones.
Cuando defina las variables CFLAGS y CXXFLAGS, debería combinar algunos parámetros de
optimización”

Perfecto, una vez leído esto pasaremos a configurar nuestro make.conf


en el parámetro “-march=” existe un valor llamado “native” que lo que hace es el que GCC
(compilador) reconozca automáticamente las flags de nuestro procesador
nano -w /mnt/gentoo/etc/portage/make.conf
CFLAGS="-march=native -O2 -pipe "
CXXFLAGS="${CFLAGS}"

Dentro del mismo archivo también hay que configurar el MAKEOPTS, ¿que es esto según el
handbook?
“Con la variable MAKEOPTS definimos cuantas compilaciones paralelas pueden hacerse al mismo
tiempo cuando instalamos un paquete. El valor sugerido se obtiene sumando uno a la cantidad de
CPUs (o de cores) de su sistema, aunque este valor no es siempre el perfecto.”

Bien, entonces nuestro MAKEOPTS quedaría así:


MAKEOPTS=”-j(cantidad de cores de nuestro procesador*(2 SOLO SI POSEE DE HT<Hyper
Threading>) + 1)”

en mi caso tengo un procesador CORE I7 por lo tanto seria:


MAKEOPTS=”-j9” ( 4(Cores) * 2(Por el HT) + 1 )

Configurar los mirrorlist y el server de sincronizan


El Live CD de Gentoo, trae consigo la herramienta mirroselect, dado que no estamos con el
Live CD de Gentoo, tendremos que configurarlo a mano, para esto el make.conf debe contener una
variable llamada GENTOO_MIRRORS=”” y SYNC=”” a continuación voy a poner los mirrors que
yo uso (estos los saque con el mirrorselect en una instalación que hice hace mucho<probablemente
se pueda obtener este script mirrorselec mas adelante veré que puedo sacar de eso :D>)

GENTOO_MIRRORS="http://gentoo.inode.at/ ftp://gentoo.inode.at/source/
rsync://gentoo.lagis.at/gentoo-distfiles/ http://gentoo.lagis.at/ ftp://gentoo.lagis.at/
http://gd.tuwien.ac.at/opsys/linux/gentoo/ ftp://gd.tuwien.ac.at/opsys/linux/gentoo/
rsync://gd.tuwien.ac.at/opsys/linux/gentoo/ rsync://gentoo.c3sl.ufpr.br/gentoo/
ftp://gentoo.c3sl.ufpr.br/gentoo/ http://www.las.ic.unicamp.br/pub/gentoo/
ftp://ftp.las.ic.unicamp.br/pub/gentoo/ http://ftp.gentoo.bg/ http://distfiles.gentoo.bg/
http://mirrors.telepoint.bg/gentoo/ ftp://gentoo.arcticnetwork.ca/pub/gentoo/
http://gentoo.arcticnetwork.ca/ http://gentoo.gossamerhost.com
rsync://gentoo.gossamerhost.com/gentoo-distfiles/ rsync://mirror.the-best-hosting.net/gentoo-
distfiles http://mirror.the-best-hosting.net ftp://mirrors.tera-byte.com/pub/gentoo
http://gentoo.mirrors.tera-byte.com/ rsync://mirrors.tera-byte.com/gentoo
http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://mirrors.163.com/gentoo/
ftp://mirrors.sohu.com/gentoo/ http://mirrors.sohu.com/
gentoo/ ftp://mirrors.stuhome.net/gentoo/ rsync://mirrors.stuhome.net/gentoo/
http://mirrors.stuhome.net/gentoo/ rsync://mirrors.xmu.edu.cn/gentoo/
http://mirrors.xmu.edu.cn/gentoo ftp://mirrors.xmu.edu.cn/gentoo http://gentoo.supp.name/
http://ftp.fi.muni.cz/pub/linux/gentoo/ rsync://ftp6.linux.cz/pub/linux/gentoo/
rsync://ftp.fi.muni.cz/pub/linux/gentoo/ ftp://ftp.fi.muni.cz/pub/linux/gentoo/
http://gentoo.mirror.dkm.cz/pub/gentoo/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/
ftp://gentoo.imj.fr/pub/gentoo/ http://mirrors.linuxant.fr/distfiles.gentoo.org/
ftp://mirrors.linuxant.fr/distfiles.gentoo.org/ http://gentoo.modulix.net/gentoo/
ftp://mirror.ovh.net/gentoo-distfiles/ http://mirror.ovh.net/gentoo-distfiles/
http://mirror.opteamax.de/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/
ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.halifax.rwth-aachen.de/gentoo/
http://ftp.halifax.rwth-aachen.de/gentoo/ rsync://ftp.halifax.rwth-aachen.de/gentoo/
ftp://sunsite.informatik.rwth-
aachen.de/pub/Linux/gentoo ftp://ftp.iij.ad.jp/pub/linux/gentoo/ http://ftp.iij.ad.jp/pub/linux/gentoo/
rsync://ftp.iij.ad.jp/pub/linux/gentoo/ http://ftp.jaist.ac.jp/pub/Linux/Gentoo/
rsync://ftp.jaist.ac.jp/pub/Linux/Gentoo/ ftp://ftp.jaist.ac.jp/pub/Linux/Gentoo/
http://darkstar.ist.utl.pt/gentoo/ ftp://ftp.rnl.ist.utl.pt/pub/gentoo/gentoo-distfiles/
http://cesium.di.uminho.pt/pub/gentoo/ http://ftp.dei.uc.pt/pub/linux/gentoo/
ftp://ftp.dei.uc.pt/pub/linux/gentoo/ http://ftp.romnet.org/gentoo/ http://mirrors.xservers.ro/gentoo/"

SYNC="rsync://rsync.au.gentoo.org/gentoo-portage"
También, vamos a definir la variable una serie de variables:
ACCEPT_LICENSE: En esta vamos a especificar que tipo de licencias va a aceptar nuestro sistema
en mi caso le voy a poner que acepte todo tipo de licencias

ACCEPT_LICENSE="*"

LINGUAS: En esta variable especificaremos soporte para que lenguajes queremos que tengan los
paquetes (esto sinceramente es fantástico, no hay que andar instalando paquetes de idiomas como
en otras distros, solo el sistema baja todo lo correspondiente)

LINGUAS="es"

INPUT_DEVICES: En esta especificaremos que tipo de entrada de periféricos tenemos, por lo


general, con colocar lo que pongo a continuación no tendremos problemas con teclados con teclas
multimedia etc

INPUT_DEVICES="evdev synaptics"

VIDEO_CARDS: En esta especificaremos que tipo de driver usaremos para nuestra placa de video:
NVIDIA:
VIDEO_CARDS="nvidia"
NOUVEAU:
VIDEO_CARDS="nouveau"
ATI:
VIDEO_CARDS="fglrx"
RADEON
VIDEO_CARDS="radeon"

en mi caso tengo una NVIDIA por lo tanto lo tengo así:


VIDEO_CARDS="nvidia"

(voy a dejar mis archivos de configuración a modo de ejemplo)


9) CHROOT
El chroot lo utilizaremos para entrar al sistema (si, para iniciar sesión root en el mismo)

miremos que dice el handbook:

“Copiar la información DNS


Aún queda una cosa que hacer antes de entrar en el nuevo entorno, copiar la información sobre los
DNS en /etc/resolv.conf. Necesita hacer esto para asegurarse de que la red continúe funcionando
después de entrar en el nuevo entorno. /etc/resolv.conf contiene los servidores de nombres para su
red.
Listado de Código 3.17: Copiar la información de DNS

(La opción "-L" es necesaria para asegurarnos que no copiamos un


enlace simbólico)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/

Montar los sistemas de archivos necesarios


En breve, cambiaremos la raíz de Linux a la nueva localización. Para asegurarse de que el nuevo
entorno funciona correctamente, necesitaremos disponer de ciertos sistemas de ficheros en la nueva
localización.
Monte el sistema de ficheros /proc en /mnt/gentoo/proc para poder usar la información
proporcionada por el núcleo dentro del entorno chroot y luego monte el sistema de ficheros /dev y
/sys.
Listado de Código 1.4: Montar /proc y /dev

# mount -t proc none /mnt/gentoo/proc


# mount --rbind /sys /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev

Entrar en el nuevo entorno


Ahora que todas las particiones están inicializadas y el sistema base instalado, es hora de entrar en
nuestro nuevo entorno de instalación haciendo chrooting en él. Esto significa pasar desde el actual
entorno de instalación (CD de instalación u otro medio) hacia su entorno de instalación (o sea, las
particiones inicializadas).
El enjaulamiento (chroot) se hace en tres pasos. En primer lugar, se cambia la raíz desde / (en el
medio de instalación) a /mnt/gentoo (en sus particiones) utilizando chroot. A continuación se cargan
en memoria algunas definiciones ofrecidas por /etc/profile mediante source. Para terminar, se
redefine el símbolo de espera de órdenes primario que nos hará recordar que nos encontramos en un
entorno enjaulado (chroot).
Listado de Código 1.5: Entrar al nuevo entorno

# chroot /mnt/gentoo /bin/bash


# source /etc/profile
# export PS1="(chroot) $PS1"
¡Enhorabuena! Está dentro de su nuevo entorno Gentoo Linux. Por supuesto aún no hemos
terminado, todavía quedan unas cuantas secciones :-)
Si, en cualquier momento, necesita otro terminal o consola para acceder al entorno chroot, todo lo
que necesita hacer es ejecutar de nuevo los pasos de arriba. ”

Creo que mas claro imposible ¿no?


10) Preparando Portage
Nuevamente acudimos al handbook:

“Desempaquetar una instantánea de Portage


Ahora debe instalar una instantánea de Portage, una colección de ficheros que informa a Portage de
los títulos que se pueden instalar, qué perfiles están disponibles, etc. Los contenidos de esta
instantánea se extraerán en /usr/portage.
Recomendamos utilizar emerge-webrsync. Esta orden obtendrá la última instantánea de portage
(con las liberaciones diarias de Gentoo) de uno de nuestros servidores réplica y la instalará en su
sistema.
Listado de Código 2.1: Ejecutar emerge-webrsync para instalar una instantánea de Portage

# mkdir /usr/portage
# emerge-webrsync

Opcional: Actualizar el árbol Portage


Ahora puede actualizar su árbol Portage a la última versión. La orden emerge --sync utilizará el
protocolo rsync para actualizar el árbol Portage (que obtuvo anteriormente mediante emerge-
webrsync) a su último estado.
Listado de Código 2.2: Actualizar el árbol Portage

# emerge --sync
(Si está utilizando un terminal lento como algunos framebuffers
o consolas seriales, puede añadir la opción --quiet para aumentar la
velocidad del proceso:)
# emerge --sync --quiet

Si está detrás de un cortafuegos que bloquea el tráfico rsync, puede ignorar esta paso de forma
segura ya que tiene su árbol Portage actualizado.
Si ha advertido que está disponible una nueva versión de Portage y se debe actualizar, debería
hacerlo ejecutando emerge --oneshot portage.
Eligiendo el perfil adecuado
Primero, una pequeña definición:
Un perfil es la piedra inicial de cualquier sistema Gentoo. No solamente especifica unos valores
predeterminados para USE, CFLAGS, y otras variables importantes, también bloquea del sistema
ciertos rangos de versiones de algunos paquetes. Son mantenidos por los desarrolladores de Gentoo.
Tiempo atrás, los perfiles raramente los tocaba el usuario. Sin embargo, puede haber situaciones en
las cuales sea necesaria un cambio de perfil.
Se puede ver el perfil actualmente utilizado con la siguiente orden:
Listado de Código 2.3: Comprobar el perfil del sistema

# eselect profile list


Available profile symlink targets:
[1] default/linux/amd64/10.0 *
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/server

Como puede ver, también existen sub-perfiles desktop (escritorio) y server (servidor) para algunas
arquitecturas. Ejecutando eselect profile list mostrará los perfiles disponibles.
Después de revisar los perfiles disponibles para su arquitectura, puede utilizar uno diferente si lo
desea:
Listado de Código 2.4: Cambiar de perfil

# eselect profile set 2

Si quiere disponer de un entorno puramente de 64 bits puros, sin aplicaciones de 32 bits ni


bibliotecas, debería utilizar un perfil no multilib:
Listado de Código 2.5: Cambiar a un perfil no multilib

# eselect profile list


Available profile symlink targets:
[1] default/linux/amd64/10.0 *
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/no-multilib
[4] default/linux/amd64/10.0/server
(Elija el perfil no-multilib)
# eselect profile set 3
(Compruebe el cambio)
# eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/no-multilib *
[4] default/linux/amd64/10.0/server

Bien, en mi caso voy a hacer la instalación con KDE así que acá va captura :
11) Configurar la variable USE
Bueno, en este punto hemos llegado a otra parte en la que hay que mirar con SUMO detalle.
De esta variable hablaba específicamente cuando decía que Gentoo ofrece la posibilidad configurar
las características de los paquetes a instalar.
Primero veamos que nos dice el handbook:

“Configurar la variable USE


La variable USE es una de las más importantes que Gentoo proporciona a sus usuarios. Muchos
programas pueden ser compilados con o sin soporte opcional para ciertas cosas. Por ejemplo,
algunos programas pueden ser compilados con soporte gtk, o con soporte qt. Otros programas
pueden ser compilados con o sin soporte SSL. Algunos programas pueden ser compilados con
soporte framebuffer (svgalib) en lugar de soporte X11 (servidor X).
Muchas distribuciones compilan sus paquetes con el mayor soporte posible, aumentando el tamaño
de los programas y su tiempo de carga, sin mencionar una cantidad enorme de dependencias. Con
Gentoo puedes definir con que opciones debe ser compilado un paquete. Ahí es donde actúa la
variable USE.
En la variable USE definimos palabras clave que son transformadas a opciones de compilación. Por
ejemplo ssl compilará los programas que lo requieran con soporte ssl.-X quitara el soporte para el
servidor X (nótese el signo menos delante). gnome gtk -kde -qt4 compilará sus programas con
soporte para gnome (y gtk), pero sin soporte para kde (y qt), haciendo su sistema completamente
compatible con GNOME.
Los valores por defecto de la variable USE se encuentran en make.defaults, archivos de su perfil.
Encontrará los archivos make.defaults en el directorio al cual apunte /etc/portage/make.profile y
todos sus directorios padre. El valor predeterminado de configuración de la variable USE es la suma
de todas las configuraciones de USE en todos los archivos make.defaults. Lo que modifique en
/etc/portage/make.conf se calcula contra estos valores. Si pone algún valor en su USE, es añadido a
la lista por defecto. Si elimina algo en su variable USE, poniéndole un signo menos delante, es
eliminado de la lista por defecto (si estaba en ella, claro). Nunca cambie nada en
/etc/portage/make.profile ya que ¡se sobreescribirá cuando actualice Portage!
Puede encontrar una descripción completa sobre la variable USE en la segunda parte del Manual de
Gentoo Capítulo 1: Variables USE. Encontrará una descripción más extensa sobre las opciones de la
variable USE en su sistema, en /usr/portage/profiles/use.desc.
Listado de Código 2.6: Ver las opciones disponibles

# less /usr/portage/profiles/use.desc
(Puede desplazarse arriba y abajo utilizando sus teclas de flechas y
salir pulsando 'q')

Como ejemplo, se muestran algunas opciones USE para un sistema basado en KDE con DVD,
ALSA y soporte para grabar CD's.
Listado de Código 2.7: Abrir /etc/portage/make.conf

# nano -w /etc/portage/make.conf

Listado de Código 2.8: Configurar la variable USE

USE="-gtk -gnome qt4 kde dvd alsa cdr"


Bueno, de entrada parece un poco extraño, pero luego tiene bastante sentido, así que nada, a no
desesperarse jaja

En esta variable como ya dijo el handbook especificaremos las características que queremos que
estén activadas globalmente, anteriormente al elegir el perfil lo que hace este es activar una serie de
USEFLAGS, asique las use flags que recomiendo que añadan en este punto, serian: consolekit dbus
policykit udev

USE="consolekit dbus policykit udev"

esto probablemente sea lo mas difícil de explicar y de entender, en un momento


dado revolviendo y haciendo unas pruebas, encontré exactamente que use flags
agrega el perfil KDE, y decidí, mas allá de haber seleccionado el perfil kde,
agregarlas a la variable use, junto con un par que uso yo, así me quedo ami
(aunque debería hacerle una limpieza xD):

USE="zeroconf python graphite symlink mmx sse sse2 sse3 -gtk -gnome opengl qt4
kde dvd alsa cdr samba cups v4l opencl openal mixer cuda plasma cairo fontconfig
foomaticdb pdf scanner consolekit dbus pam policykit udev networkmanager appmenu
pcmcia gstreamer bluetooth plasma video truetype kdepim kdeenablefinal"

OJO las USE FLAGS graphite y kdeenablefinal son experimentales.


12)Zona Horaria

Ya deben estar cansados de que les mencione el handbook, pero bueno, por algo no
hay guiás de Gentoo, porque esta todo ahí! ahí va:

“Zona Horaria

Primero necesita seleccionar su zona horaria para que su sistema sepa dónde está localizado.
Busque su zona horaria en /usr/share/zoneinfo, cópiela a /etc/localtime. Por favor, evite las zonas
horarias /usr/share/zoneinfo/Etc/GMT* ya que los nombres no indican las zonas esperadas. Por
ejemplo, GMT-8 es realmente GMT+8.
Listado de Código 1.1: Configurar la Zona Horaria

# ls /usr/share/zoneinfo
(Supongamos que desea utilizar Europe/Brussels)
# cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime
(A continuación ajustamos timezone)
# echo "Europe/Brussels" > /etc/timezone

en mi caso:

cp /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime

echo “America/Argentina/Buenos_Aires” > /etc/timezone


13)Descargando el Kernel

Nuevamente miramos el handbook

“Instalar las Fuentes

Elegir un Núcleo
El eje alrededor del cual se construyen todas las distribuciones es el núcleo de Linux. Es la capa
entre los programas de usuario y el hardware del sistema. Gentoo proporciona a sus usuarios varias
fuentes de núcleos. Una lista completa está disponible en la Guía del Núcleo de Gentoo.
Para los sistemas basados en AMD64 tenemos, entre otros núcleos, gentoo-sources (fuentes del
núcleo modificadas para obtener algunas características adicionales).
Elija sus fuentes del núcleo e instálelas usando emerge.
Listado de Código 2.1: Instalar unas fuentes del núcleo

# emerge gentoo-sources

Cuando vea en /usr/src verá un enlace simbólico llamado linux apuntando a las fuentes del núcleo.
En este caso, asumimos que la fuentes del núcleo instaladas apuntan a gentoo-sources-3.4.9. Su
versión podría ser distinta, así que por favor tenga esto presente.
Listado de Código 2.2: Visualizar el enlace a las fuentes del núcleo

# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-3.4.9

NOTA: Los que siguieron las opciones para aumentar el rendimiento, en este
punto, pasen por el punto 13.1) al final del tuto
14)Compilando el Kernel

Miremos que propone el handbook (solo voy a mostrar la opción automática)

“7.d. Alternativa: Usar genkernel

Si está leyendo esta sección, eligió usar nuestro guión genkernel para configurar el núcleo.
Ahora que el árbol de las fuentes del núcleo está instalado, es hora de compilarlo usando nuestro
guión genkernel que automáticamente construirá un núcleo. genkernel trabaja configurando un
núcleo prácticamente idéntico al núcleo de nuestro CD de instalación. Esto significa que cuando use
genkernel para construir su núcleo, su sistema generalmente detectará todo su hardware en el
arranque, tal como lo hace el CD de instalación. Debido a que genkernel no requiere ninguna
configuración manual del núcleo, es una solución ideal para esos usuarios que no se sienten
cómodos compilando sus propios núcleos.
Ahora, veamos como usar genkernel. Primero, haga emerge al ebuild de genkernel:
Listado de Código 4.1: Instalar genkernel

# emerge genkernel

Ahora, compile las fuentes del núcleo ejecutando genkernel all Recuerde que genkernel compila un
núcleo que soporta casi todo el hardware, ¡esta compilación tardará un rato en terminar!
Observe que si su partición de arranque no usa el sistema de archivos ext2 o ext3, necesitará
configurar manualmente su núcleo con genkernel --menuconfig all y agregar soporte para su
sistema de archivos en el núcleo (no como módulo). Los usuarios de LVM2 probablemente querrán
añadir también el argumento --lvm2.
Listado de Código 4.2: Ejecutar genkernel

# genkernel all

Una vez que genkernel haya terminado, un núcleo, un conjunto completo de módulos y un disco
ram de inicio (initramfs) serán creados. Usaremos el núcleo e initrd para configurar un gestor de
arranque más tarde en este documento. Escriba los nombres del núcleo y de initrd ya que los
necesitará para el archivo de configuración del gestor de arranque. El initrd iniciará inmediatamente
después del arranque para realizar la autodetección de hardware (igual que en el CD de instalación)
antes que inicie su sistema "real".
Listado de Código 4.3: Verificar los nombres del núcleo e initrd creados

# ls /boot/kernel* /boot/initramfs*

Ahora bien para los que quieran mas rendimiento pásense por la sección 14.1) al
final del tuto, en este punto, explico como por ejemplo hacer que el kernel sea
de baja latencia, para que tenga mayor respuesta
15)Fstab

En este punto configuraremos el archivo localizado en /etc/fstab en este


definiremos las particiones que montaremos en nuestro sistema

Por supuesto, voy a dejar la referencia al handbook:

“¿Qué es el fstab?

En Linux, todas las particiones usadas por el sistema deben estar reflejadas en /etc/fstab. Este
fichero contiene los puntos de montaje de esas particiones (donde se encuentran en la estructura del
sistema de ficheros), cómo deben ser montadas y con que opciones especiales (automáticamente o
no, si los usuarios pueden montarlas o no, etc.).
Creando el /etc/fstab
/etc/fstab usa una sintaxis especial. Cada línea tiene seis campos, separados por espacios en blanco
(espacio(s), tabuladores o una combinación). Cada campo tiene su propio significado:
• El primer campo muestra la partición descrita (la ruta al fichero de dispositivo)
• El segundo campo muestra el punto de montaje donde la partición debe montarse
• El tercer campo muestra el sistema de ficheros usado por la partición
• El cuarto campo muestra las opciones de montaje que debe usar mount al tratar de montar
la partición. Como cada sistema de ficheros tiene sus propias opciones de montaje, le
animamos a leer la página man de mount (man mount) para un listado completo. Cuando
existen múltiples opciones se separan por comas.
• El quinto campo es usado por dump para determinar si la partición necesita ser volcada o
no. En general puede dejar esto como 0 (cero).
• El sexto campo es usado por fsck para determinar el orden en que los sistemas de ficheros
deben ser comprobados si el sistema no se apagó correctamente. La partición raíz debe
tener un 1 mientras que el resto puede tener 2 (o 0 en el caso en que la comprobación del
sistema de ficheros no sea necesaria).
Importante: El archivo /etc/fstab que proporciona Gentoo de manera predeterminada no es un
archivo fstab válido. Debe crear su propio /etc/fstab:

Listado de Código 1.1: Abrir /etc/fstab

# nano -w /etc/fstab

Vamos a ver como anotar las opciones para la partición /boot. Esto es solo un ejemplo, si su
arquitectura no requiere una partición /boot, no lo copie al pie de la letra.
En nuestro ejemplo para AMD64 de particionamiento, /boot es la partición /dev/sda1, con un
sistema de ficheros ext2. Esta necesita ser comprobada durante el arranque del sistema, así que
necesitamos escribir:
Listado de Código 1.2: Un ejemplo de línea /boot para /etc/fstab

/dev/sda1 /boot ext2 defaults 0 2

Algunos usuarios no quieren que su partición /boot sea montada automáticamente para mejorar la
seguridad de su sistema. Estos usuarios deberían sustituir defaults por noauto. Esto implica la
necesidad de montar manualmente la partición cada vez que se quiera usarla.
Añada las reglas que coincidan con su esquema de particionamiento para su dispositivo(s) CD-
ROM, y por supuesto, si tiene otras particiones o dispositivos, también para éstos.
Ahora use el ejemplo que tiene a continuación para crear su /etc/fstab:
Listado de Código 1.3: Un ejemplo completo de /etc/fstab

/dev/sda1 /boot ext2 defaults,noatime 0 2


/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1

/dev/cdrom /mnt/cdrom auto noauto,user 0 0

auto provoca que mount intente adivinar el sistema de archivos (se recomienda para los dispositivos
extraíbles ya que pueden ser creados con distintos sistemas de ficheros) y user hace posible a los
usuarios que no pertenezcan a root monten el CD.
Para aumentar el rendimiento, la mayoría de usuarios podrían querer agregar la opción noatime
como opción de montaje, que desemboca en un sistema más rápido, puesto que los tiempos de
acceso no son registrados (de todas formas, no necesitará esto en general):
Repase su /etc/fstab, guarde los cambios y salga para continuar. ”

siguiendo el particionado de la VM procedemos a borrar esos puntos de montajes


que trae el fstab por defecto y definir los nuestros:

nano /etc/fstab

/dev/sda1 /boot ext4 defaults,noatime 0 2


/dev/sda2 / ext4 noatime 0 3
/dev/sda3 none swap sw 0 0
/dev/sda4 /home ext4 noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
16)Informacion de Red

En este punto yo los archivos que modifico son los siguientes:

nano -w /etc/conf.d/hostname

y en este segmento le pongo el nombre de host (si, me gusta Ironman, por eso le
pongo Jarvis xD)

# Set to the hostname of this machine

hostname="Jarvis"

Ahora modificamos este y en localhost asignamos el nombre anterior

nano -w /etc/hosts

# IPv4 and IPv6 localhost aliases

127.0.0.1 Jarvis

::1 Jarvis

si lo necesitan hagan esto que menciona el handbook:

“Opcional: Hacer funcionar el PCMCIA

Los usuarios de PCMCIA deben instalar primero el paquete pcmciautils.


Listado de Código 2.11: Instalar pcmciautils

# emerge pcmciautils


17)Informacion del Sistema

Miremos el handbook

“Contraseña de administrador (Root)

Primero fijamos la contraseña de administrador escribiendo:


Listado de Código 3.1: Configurar la contraseña de administrador

# passwd

Información del sistema


Gentoo usa /etc/rc.conf para configurar los servicios y el arranque y apagado de su sistema. Abra el
fichero /etc/rc.conf y disfrute de todos los comentarios que hay en este fichero.
Listado de Código 3.2: Configurar servicios

# nano -w /etc/rc.conf

Cuando haya terminado de configurar estos dos ficheros, guárdelos y salga de su editor.
Gentoo utiliza /etc/conf.d/keymaps para gestionar la configuración del teclado. Edítelo y configure
su teclado.
Listado de Código 3.3: Abrir /etc/conf.d/keymaps

# nano -w /etc/conf.d/keymaps

Tenga especial cuidado con la variable keymap: porque si selecciona un keymap incorrecto,
obtendrá extraños resultados al escribir con el teclado.
Cuando termine de configurar /etc/conf.d/keymaps, guarde los cambios y salga.
Gentoo utiliza /etc/conf.d/hwclock para fijar las opciones del reloj. Edítelo de acuerdo a sus
necesidades.
Listado de Código 3.4: Abrir /etc/conf.d/hwclock

# nano -w /etc/conf.d/hwclock

Si su reloj de hardware no utiliza UTC, añada clock="local" al archivo. De lo contrario notará como
el reloj no funciona correctamente.
Cuando haya acabado de configurar /etc/conf.d/hwclock, guárdelo y salga del editor.”

Para que el clock tome la configuracion local hay que activar la opcion RTC en
el kernel, esto lo explico en el apartado de los tweaks que yo propongo al final
del tuto.

Para otro pequeño tweak vayan a la seccion 17.1) al final del tuto
18)Idioma

Vamos a configurar el idioma de nuestro Sistema

Segun el handbook:

“Configurar localizaciones

Probablemente utilice únicamente una o dos localizaciones (locales) en su sistema. Debe especificar
las localizaciones que utilizará en el fichero /etc/locale.gen.
Listado de Código 3.5: Abrir /etc/locale.gen

# nano -w /etc/locale.gen

A continuación se muestran dos localizaciones para obtener el inglés de Estados Unidos y el


español de España con los formatos de carácter asociados (como por ejemplo UTF-8).
Listado de Código 3.6: Especificar sus localizaciones

en_US ISO-8859-1
en_US.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES@euro ISO-8859-15

Nota: Puede seleccionar las localizaciones que desee de la lista que se obtiene ejecutando locale -a.

Aviso: Le recomendamos que utilice al menos una localización UTF-8 ya que sus aplicaciones
pueden necesitarla.

El siguiente paso es ejecutar locale-gen. Se generarán las localizaciones que ha especificado en el


fichero /etc/locale.gen.
Listado de Código 3.7: Ejecutar locale-gen

# locale-gen

Una vez realizado el paso anterior, tendrá la posibilidad de ajustar las definiciones que afectan a
todo el sistema en el fichero /etc/env.d/02locale:
Listado de Código 3.8: Definir la localización por defecto del sistema en /etc/env.d/02locale

LANG="es_ES.UTF-8"
LC_COLLATE="C"

Y recargue su entorno:
Listado de Código 3.9: Recargar el entorno del intérprete de comandos

# env-update && source /etc/profile

Perfecto, en mi caso seria:

nano -w /etc/locale.gen
y agregue:

es_AR.UTF-8 UTF-8

Luego:

locale-gen

Ahora NO SE OLVIDEN DE EDITAR ESTE ARCHIVO:

nano /etc/env.d/02locale

y en mi caso quedaria asi:

LANG="es_AR.UTF-8"
LC_COLLATE="C"
19)Instalando Programas necesarios del Sistema

Lo voy a resumir todo en un solo comando:

emerge syslog-ng && rc-update add syslog-ng default && emerge vixie-cron
&& rc-update add vixie-cron default && emerge mlocate && emerge dhcpcd ppp
gentoolkit linux-firmware module-rebuild

para los que posean placas inalámbricas:

emerge wireless-tools

20) GRUB

Primero instalaremos el grub:

emerge grub

Ahora lo configuraremos, tomemos como ejemplo la configuración que ofrece el


handbook:

Listado de Código2.3: grub.conf ejemplo

# Qué título arrancar por defecto. 0 es el primero, 1 el segundo, etc.


default 0
# Cuantos segundos esperar antes de arrancar el título por defecto.
timeout 30
# Una bella, hermosa imagen para ensalzar las cosas un poco :)
# Coméntela si no tiene una tarjeta gráfica instalada
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 3.4.9


# Partición donde se encuentra la imagen del núcleo (o sistema operativo)
root (hd0,0)
kernel /boot/kernel-3.4.9-gentoo root=/dev/sda3

title Gentoo Linux 3.4.9 (rescate)


# Partición dónde se encuentra la imagen del núcleo (o sistema operativo)
root (hd0,0)
kernel /boot/kernel-3.4.9-gentoo root=/dev/sda3 init=/bin/bb

# Las siguientes cuatro líneas solo se usan en caso de arranque dual con un sistema
Windows.
# En este caso, Windows reside en la partición /dev/sda6.
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Cuando construya el núcleo Linux, si opta por incluir un initramfs desde el cual iniciar, entonces
tendrá que cambiar la configuración haciendo referencia a este fichero initramfs e indicándole
donde se encuentra su sistema de ficheros raíz en:
Listado de Código2.4: Fragmento de GRUB para construcciones de núcleo con initramfs habilitado

title Gentoo Linux 3.4.9


root (hd0,0)
kernel /boot/3.4.9 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-amd64-3.4.9-gentoo

Si queremos conocer los nombres de nuestros initramfs y kernel podemos hacer un:

ls /boot

con esto obtendran toda la informacion que necesitan

la parte de configuracion que dice:

root (hd0,0)

es asi: root (hd0,X) donde X es la particion /boot . Las particiones se numeran


de 0 en adelante,

En mi maquina real tengo instalado Windows 7, Gentoo y Backtrack, y me esquema


de particiones, es el siguiente:

Jarvis x11tete11x # fdisk -l

Disk /dev/sda: 750.2 GB, 750156374016 bytes

255 heads, 63 sectors/track, 91201 cylinders, 1465149168 sectores en total

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Identificador del disco: 0x0004784d


Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/sda1 * 2048 524290047 262144000 7 HPFS/NTFS/exFAT

/dev/sda2 524290048 525314047 512000 83 Linux

/dev/sda3 525314048 525826047 256000 83 Linux

/dev/sda4 525839641 1465144064 469652212 5 Extendida

/dev/sda5 525839643 693590309 83875333+ 83 Linux

/dev/sda6 1342262943 1465144064 61440561 83 Linux

/dev/sda7 1338069978 1342262879 2096451 82 Linux swap / Solaris

/dev/sda8 693590373 1338069914 322239771 83 Linux

Las entradas de la tabla de particiones no están en el orden del disco

donde sda2 es el /boot de Gentoo sda3 es el /boot de Backtrack y sda5 es el / de


Gentoo y sda6 es el / de Backtrack, sda8 es la home y sda1 es el Win7, entonces
mi grub.conf me queda asi:

Jarvis x11tete11x # cat /boot/grub/grub.conf

# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook

# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?
part=1&chap=10#doc_chap2

# If you are not using Genkernel and you need help creating this file, you

# should consult the handbook. Alternatively, consult the grub.conf.sample that

# is included with the Grub documentation.

default 0

timeout 30

#splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo

root (hd0,1)
kernel /boot/kernel-genkernel-x86_64-3.7.1-gentoo root=/dev/ram0
real_root=/dev/sda5

initrd /boot/initramfs-genkernel-x86_64-3.7.1-gentoo

title Backtrack

root (hd0,2)

kernel /vmlinuz-3.2.6 root=UUID=e2d49f3f-56fc-4576-bce7-b700355e3a5c ro text


splash vga=791

initrd /initrd.img-3.2.6

title Windows 7

rootnoverify (hd0,0)

makeactive

chainloader +1

# vim:ft=conf:

Ahora si, procedemos a instalar:

grep -v rootfs /proc/mounts > /etc/mtab

grub-install --no-floppy /dev/sda


21) Reiniciamos

Desmontamos todas las particiones y reiniciamos! :D

“10.d. Reiniciando el sistema

Salga del entorno chroot y desmonte todas las particiones que continúen montadas. Después
podemos ejecutar el mágico comando que hemos estado esperando: reboot.
Listado de Código 4.1: Desmontar todas las particiones y reiniciar

# exit
cdimage ~# cd
cdimage ~# umount -l /mnt/gentoo/dev{/pts,/shm,}
cdimage ~# umount -l /mnt/gentoo{/boot,/sys,/proc,}
cdimage ~# reboot

Por supuesto, no olvide quitar el CD arrancable, o el CD será arrancado de nuevo en lugar de su


nuevo sistema Gentoo.

22) Iniciando Nuestro Gentoo

Nada mas iniciar, con nuestro Gentoo recien instalado, lo que haremos sera
conectarnos a internet:

dhcpcd

ping www.google.com

TIP: No voy a explicar como conectarse a las redes WIFI mediante consola, pero
para aquellos que no les gusta lidiar con este tipo de cosas existe una manera
poco ortodoxa xD de instalar lo que falta sin internet, consiste en: reiniciar,
iniciar con el live CD, volver a hacer el CHROOT, y una vez dentro hacemos:

emerge --fetchonly <paquetesQueVamosAInstalarLuego>

De esta manera lo que hacemos es que Portage baje el codigo fuente de todos los
paquetes (y sus dependencias) que necesita para instalar los paquetes que le
especificamos
23)Instalacion de las X

Bueno este es un estracto de la guia de configuracion de las


X(http://www.gentoo.org/doc/es/xorg-config.xml),

esto es lo necesario para instalar las X

Listado de Código2.8: Instalando Xorg

(Asegúrese de que udev está en sus ajustes USE)


# echo "x11-base/xorg-server udev" >> /etc/portage/package.use
(Instale Xorg)
# emerge xorg-server

Yo les sugiero hacer lo siguiente:

En el caso de tener una placa NVIDIA y querer usar el Driver Propietario:

emerge --quiet xorg-server && emerge --quiet xorg-drivers && emerge --quiet
nvidia-drivers && nvidia-xconfig && module-rebuild rebuild

En el caso de tener una placa ATI y querer usar el Driver Propietario:

emerge --quiet xorg-server && emerge --quiet xorg-drivers && emerge --quiet ati-
drivers && aticonfig --initial && module-rebuild rebuild

En el caso de tener una placa INTEL:

emerge --quiet xorg-server && emerge --quiet xorg-drivers && module-rebuild


rebuild

En el caso de tener una placa NVIDIA o ATI y usar los drivers libres:

emerge --quiet xorg-server && emerge --quiet xorg-drivers && module-rebuild


rebuild

24) Instalacion del Entorno Grafico

KDE: este es una extracto de la wiki en ingles de KDE Gentoo (), son los
posibles grupos de paquetes para instalar KDE

kde-base/kde-meta, the full KDE suite

• kde-base/kdebase-meta, a basic KDE environment


• kde-base/kdebase-startkde, a very minimal, effectively unsupported KDE environment (no
KDE applications or artwork)
It's usually a good idea to start with kdebase-meta and install whatever else you need as you go:
root # emerge --ask kdebase-meta
There are other meta packages that can be installed to pull in parts of the KDE suite:
• kde-base/kdeaccessibility-meta: Accessibility applications and utilities.
• kde-base/kdeadmin-meta: Administrative utilities, which helps you manage your system.
• kde-base/kdeartwork-meta: Extra themes, screensavers, etc.
• kde-base/kdebindings-meta: Bindings for various languages.
• kde-base/kdeedu-meta: Educational applications and games.
• kde-base/kdegames-meta: Standard desktop games.
• kde-base/kdegraphics-meta: Graphics applications such as image viewers, color pickers, etc.
• kde-base/kdemultimedia-meta: Audio and video playback applications and services.
• kde-base/kdenetwork-meta: Network applications and VNC services.
• kde-base/kdepim-meta: PIM applications such as emailer, addressbook, organizer, etc.
• kde-base/kdesdk-meta: Various development tools.
• kde-base/kdetoys-meta: Toy like applications.
• kde-base/kdeutils-meta: Standard desktop utilities such as a archiver, a calculator, etc.
• kde-base/kdewebdev-meta: Web development tools.

Como dice ahi es buena idea instalar kdebase-meta (emerge kdebase-meta) y luego
añadir los grupos de paquetes que querramos instalar

la version estable de KDE es la 4.9.3 las otras son consideradas Testing, si


estando en un sistema estable, quieren utilizar el ultimo KDE (4.9.5) (yo lo uso
actualmente sin ningun tipo de inconvenientes) tienen que hacer lo siguiente:

Si ya existe esta carpeta simplemente omitir este paso:

mkdir /etc/portage/package.keywords

Ingresamos:

cd /etc/portage/package.keywords

Y:

emerge wget && wget http://git.overlays.gentoo.org/gitweb/?


p=proj/kde.git;a=blob_plain;f=Documentation/package.keywords/kde-4.9.keywords

GNOME: No soy usuario de este entorno asique pondre directamente lo que dice la
wiki (recuerden ajustar las use flags en los pasos previos)

http://www.gentoo.org/doc/es/gnome-config.xml

Gnome 3 es considerado inestable por lo que si no desenmascaran ningun paquete


(mas adelante explicare que significa esto), cuando hagan “emerge gnome” estaran
instalando Gnome 2
si quieren instalar Gnome 3:

http://en.gentoo-wiki.com/wiki/Gnome_3

lo que tienen que hacer es:

Si ya existe esta carpeta simplemente omitir este paso:

mkdir /etc/portage/package.keywords

Ingresamos:

cd /etc/portage/package.keywords

Y:

nano gnome.keywords

dentro de ese archivo copiaremos y pegaremos lo que en la pagina de la wiki esta


debajo de:

“Unmasking

Enter the following into /etc/portage/package.accept_keywords:”

luego procedemos a hacer el emerge normalmente

LXDE:

http://en.gentoo-wiki.com/wiki/LXDE

En el profile list (eselect profile list) tienen que seleccionar el que dice
desktop

emerge -av lxde-meta

XFCE:

http://wiki.gentoo.org/wiki/Xfce

Instalacion:

En el profile list (eselect profile list) tienen que seleccionar el que dice
desktop

Luego:

echo 'app-text/poppler -qt4' >> /etc/portage/package.use

echo 'dev-util/cmake -qt4' >> /etc/portage/package.use


Si configuraron correctamente las USEFLAGS habran puesto -qt gtk (para que los
paquetes no tengan el soporte para QT)

echo 'gnome-base/gvfs -http' >> /etc/portage/package.use

Instalamos:

emerge --ask xfce4-meta xfce4-notifyd

25) Añadiendo demonios útiles y configurando Pantalla de login

rc-update add dbus boot

rc-update add consolekit boot

rc-update add xdm default

nano /etc/conf.d/xdm

y en “DISPLAYMANAGER=” le ponen el que vayan a usar, en mi caso:

# What display manager do you use ? [ xdm | gdm | kdm | gpe | entrance ]

# NOTE: If this is set in /etc/rc.conf, that setting will override this one.

DISPLAYMANAGER="kdm"

26)Networkmanager

http://en.gentoo-wiki.com/wiki/NetworkManager

emerge -av networkmanager

rc-update add NetworkManager default

KDE:

emerge networkmanagement

GNOME o XFCE:

emerge emerge -av nm-applet

27) Añadiendo nuestro usuario

useradd -m -G users,wheel,audio,video,plugdev,usb -s /bin/bash -d


/home/<TUUSUARIO> <TUUSUARIO>

Le Ponemos contraseña

passwd <TUUSUARIO>
28)Sudo

Instalamos sudo:

emerge sudo

nano /etc/sudoers

debajo de “root ALL=(ALL) ALL”

ponemos <TUUSUARIO> ALL=(ALL) ALL

Listo, con esto ya tenemos habilitado el sudo en nuestro usuario

29)Listo

Ahora nada, reiniciar, y a disfrutar Gentoo :D

TIPS Y Consejos
package.use / package.accept_keywords / package.mask / package.unmask

¿Que son esos archivos?

Se alojan en /etc/portage/

.use: el package.use es un archivo en el cual definiremos use flags especificas


para un paquete esto es excelente ya que sino las USEFLAGS del make.conf
tendrian que contener incluso, las use flags que solo queremos para un paquete
en particular, a continuacion voy a poner un fragmento la extensa lista que fui
armando con el tiempo, como para que se den una idea de cual es la utilidad, ami
el vlc me gusta que tenga soporte para todo por lo tanto en mi package.use tengo
(tambien muestro el amarok):

#Multimedia

media-video/vlc X a52 aac aalib alsa atmo audioqueue avahi avcodec avformat bidi
bluray cdda cddb dbus dc1394 debug dirac directfb dts dvb dvbpsi dvd egl encode
fbosd ffmpeg flac fluidsynth fontconfig gcrypt gme gnutls growl httpd ieee1394
jack kate kde libass libcaca libnotify libproxy libsamplerate libtar libtiger
linsys lirc live lua macosx macosxaudio macosxdialogprovider macosxeyetv
macosxqtkit macosxquartztext macosxvout matroska mmx modplug mp3 mpeg mtp
musepack ncurses ogg omxil opengl optimisememory oss png portaudio postproc
projectm pulseaudio pvr qt4 rtsp runasroot samba schroedinger sdl sdlimage shine
shout sid skins speex sqlite sse svg switcher swscale taglib theora truetype
twolame udev upnp v4l vaapi vcdx vlm vorbis wmafixed x264 xcb xml xosd xv zvbi

media-sound/amarok ipod ofa mtp mp3tunes daap lastfm

.accept_keywords: en el package.accept_keywords se especifican los paquetes


instables (o testing) que aceptaremos en nuestro sistema estable podemos
especificar versiones puntuales, mediante: =<grupopaquete>/<paquete>-<version> o
simplemente especificarle <grupopaquete>/<paquete> de esta manera siempre
tendremos la ultima version del paquete yo por ejemplo suelo usar las ultimas
versiones de firefox y las ultimas versiones del kernel, por lo que tengo:

#Kernel

sys-kernel/gentoo-sources

#Internet

www-client/firefox

.mask y .unmask : Aveces los paquetes son enmascarados porque contienen algun
tipo de bug o inestabilidad serio (no es lo mismo que testing) si aun asi
queremos instalar uno de estos paquetes, lo podemos declarar en el .unmask,
el .mask es para hacer lo contrario, en mi caso me resulto útil una vez que
cuando queria actualizar el sistema entero, un paquete me causaba problemas,
entonces simplemente lo meti en el .mask de la siguiente manera
>=grupopaquete>/<paquete>-<version> entonces todos los paquetes > o = a la
versión que le especifique, portage no los vería y por lo tanto no intentaría
actualizar, al cabo de un tiempo lo quite del .mask , y las versiones vigentes
en ese momento estaban corregidas y funcionaban a la perfección

EQUERY:

equery es un programa que nos sirve para consultar información sobre los
paquetes, en especial, lo que quiero destacar, es esto:

equery uses <nombredepaquete>

de esta manera equery nos mostrará todas las USE FLAGS que soporta ese paquete,
entonces si queremos activar alguna característica de este paquete, podemos
agregarlo al package.use con la correspondiente USE FLAG

Consejos:

1) si algun paquete falla, proba re emergerlo individualmente:

emerge <nombredelpaquete>

2) LEER SIEMPRE LO QUE NOS INDICA PORTAGE, muchas veces cuando queremos instalar
algo portage nos tira un error porque falta algo (alguna USE FLAG en algun
paquete por ejemplo, o poner algo en el accept_keywords), PERO, dentro del
MENSAJE de ERROR nos dice QUE DEBERIAMOS hacer para solucionarlo, así que,
PRESTAR ATENCION

por ejemplo (este error me lo paso uno de mis contactos que esta instalando
Gentoo <gracias Ale Riera por la imagen>):
como se ve en la captura zlib necesita la useflag minizip . Y udev necesita las
useflags gudev y hwdb

entonces lo que hacemos sera agregarles esas useflags a esos paquetes, por lo
tanto en nuestro /etc/portage/package.use tendríamos que agregar (siempre les
suelo poner un titulo descriptivo, comentado con #):

#Sistema

virtual/udev gudev hwdb

#Sys-libs

sys-libs/zlib minizip

al re-emerger esos paquetes (emerge udev && emerge zlib) se compilaran con las
nuevas USE FLAGS, entonces al intentar hacer emerge <paquetequetiroerror> este
ya no se debería quejar, dado que los paquetes del cual depende, ya están
compilados con las USE FLAGS que necesitaba

3)USAR la WIKI muchísimas cosas están explicadas en la wiki muchísimas

4)Familiarizarse con la personalizacion del kernel, muchas cosas como por


ejemplo el soporte para USB 3.0 no vienen activadas por defecto en el kernel
para esto, mediante genkernel --menuconfig all, activaremos las opciones
pertinentes para obtener soporte para el USB 3.0, lo mismo sucede con otro tipo
de hardware, lo mejor en estos casos es saber cual es el hardware mediante lspci
y luego buscar <salida del lspci> Gentoo, probablemente nos lleve a un link de
la Wiki de Gentoo en donde explican que opciones hay que activar en el Kernel,
para tener la Notebook X con el soporte de hardware para todo lo que trae. La
notebook X puede que no sea la misma maquina que la nuestra, pero si comparte la
misma pieza de hardware, entonces lo que se necesita tocar en el kernel para la
notebook X también servirá para la nuestra
Secciones de Optimizacion:

13.1) Optimizando GCC

Optimizaremos el GCC para esto vamos a utilizar Graphite, una tecnologia


bastante experimiental, que en simples palabras optimiza los ciclos (loop) <si,
tales como el for o el while> :

nano /etc/portage/make.conf

en las USE FLAGS añadiremos graphite, a la lista

Tambien en los niveles de optimizacion pondremos el maximo nivel -O3

CFLAGS="-march=native -O3 -pipe"

Luego utilizaremos la ultima version de GCC, para esto haremos:

nano /etc/portage/package.accept_keywords

y en el pondremos:

#Compilador

sys-devel/gcc-config

sys-devel/gcc

procedemos a instalar el GCC:

emerge gcc gcc-config

una vez terminado cambiamos a nuestro nuevo compilador:

gcc-config -l

gcc-config <numero correspondiente a la versión mas reciente de GCC>

gcc-config -l <para comprobar que esta seteado la nueva versión>


<captura de mi computadora>

Volvemos a editar el make.conf para añadir las caracteristicas de graphite

nano /etc/portage/make.conf

CFLAGS="-march=native -O3 -pipe -floop-interchange -floop-strip-mine -floop-


block"

Perfecto, de ahora en mas todo lo que compilemos lo hará con las optimizaciones
que ofrece graphite

14.1) Optimizaciones para el kernel

para optimizar el kernel lo que haremos sera al ejecutar el genkernel añadiremos


la opcion --menuconfig

genkernel --menuconfig all

aquí se nos desplegara un menu, empezaremos por seleccionar que el procesador


este optimizado para el tipo de procesador que tenemos, en mi caso tengo un I7
por lo que elegiré:
Processor type and features

También dentro de ésta categoría esta la opción para hacer que el kernel sea de
baja latencia, los kernels de baja latencia, en simples palabras, consumen un
poco mas de memoria, pero responden mucho mejor, ya que, imaginemos un tipo que
atiende un lugar de comidas, si el kernel no fuera de baja latencia, si viene
alguien y pide algo para comer, y luego llegamos nosotros y queremos pedir algo,
el tipo nos hará esperar a que termine de preparar el pedido anterior y
entregarlo, y luego atendernos a nosotros, en cambio si fuera de baja latencia,
cuando llegamos nosotros, el tipo, mientras se cocina el pedido de la persona
anterior, nos atenderá a nosotros, (reponde a las interrupciones al kernel)

entonces:

RTC (Real Time Clock) cuando instalamos Gentoo junto con Windows tenemos que
ponerle al clock, clock=local (para que los relojes funcionen bien en ambos SO)
pero esto no funciona si no activamos esta característica en el kernel:
Opciones administración de energía del kernel, probablemente si tenes una
notebook, desees que el kernel no consuma energía como loco, para esto debemos
activar lo siguiente:
17.1) Arranque de los servicios en paralelo

Si queremos que arranque los servicios en paralelo, para mejorar un poco el boot
time, en el rc.conf tendremos que tener una linea que diga asi:

rc_parallel="YES"

Otros TIPS de Optimizacion:

a) Éste lo separe del resto porque por ahi suele tirar errores al compilar
(muchas veces simplemente usando emerge o volviendo a hacer tmerge <ahora
explicare que es> se soluciona).

Tmerge, consiste en lo siguiente, hay un script, dentro de la wiki de gentoo,


para hacer que el directorio temporal de compilacion, en vez de estar montado en
el disco, este montado en la RAM, la diferencia como se podran imaginar, es
bastante, ya que para aquellas compilaciones que necesitan guardar muchos
archivos temporales, esto se hará todo sobre la RAM, sin mas preámbulos, ahí va:

http://en.gentoo-wiki.com/wiki/Portage_TMPDIR_on_tmpfs

en el kernel, necesitamos:

Linux Kernel Configuration: Enable the Virtual memory file system


File systems --->
Pseudo filesystems --->
[*] Virtual memory file system support (former shm fs)

Por default el kernel lo trae activado.

Luego haremos:

nano /usr/local/sbin/tmerge

y pegaremos lo siguiente:
#!/bin/bash

MEMSIZE=512M
mounted=false

. /etc/make.conf
. /etc/init.d/functions.sh

if [ -z "$PORTAGE_TMPDIR" ]; then
PORTAGE_TMPDIR="/var/tmp/portage"
fi

mounttmpfs() {
mount -t tmpfs -o size=$MEMSIZE,nr_inodes=1M tmpfs $
{PORTAGE_TMPDIR}
mounted="true"
}

compile() {
einfo "running emerge ${*}"
emerge ${*}
}

unmount() {
ebegin "unmounting tmpfs"
umount -f ${PORTAGE_TMPDIR}
eend $?
}

ebegin "Mounting $MEMSIZE of memory to ${PORTAGE_TMPDIR}"


if [ -z "$(pgrep -f /usr/bin/emerge)" ];then
if [ -z "$(mount | grep ${PORTAGE_TMPDIR})" ];then
mounttmpfs
else
eerror "tmpfs already mounted!"
exit 0
fi
else
eerror "emerge already running!"
exit 0
fi
eend $?

# the next line would change the cpu-governour, if available, to the highest
frequency
#[ -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ] && echo
performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# run emerge
compile $@

# unmount tmpfs
$mounted && umount ${PORTAGE_TMPDIR}

# and set the scheduler back to "ondemand"


#[ -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ] && echo ondemand >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Donde dice “MEMSIZE=512M” cambienlo por el tamaño que le vayan a asignar al
directorio en RAM, en mi caso le puse: 6144MB (6GB) <Esto no significa que cada
vez que ejecutemos el comando vaya a ocupar 6GB, sino que lo máximo que puede
llegar a ocupar, es esa cantidad>

le damos permisos de ejecución:

chmod +x /usr/local/sbin/tmerge

y luego ejecutamos la siguiente instrucción:

echo 'export PATH="$PATH":/usr/local/sbin' >> /root/.bashrc

Listo ahora, tendremos un nuevo comando disponible, “tmerge” se utiliza igual


que el emerge, pero monta el directorio de compilación en RAM

tmerge <nombreDelPaquete>
Bueno, espero que les sea útil

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-


CompartirIgual 3.0 Unported.

http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es

También podría gustarte