21 nov 2010

Opciones de compilación en Gentoo

POST EN MODIFICACION | FUNTOO


Uno de los archivos de mas importancia en Gentoo es el que configuraremos ahora, y seguiremos configurando mas adelante.. es
 el make.conf. se encuentra en /etc/

para editar este usaremos nano con [ nano /mnt/gentoo/etc/make.conf ] recuerden que es /mnt/gentoo y no directamente /etc porque todavía estamos trabajando a través del minimal.
Importante: una de las ventajas en Gentoo es que nos permite compilar programas de manera especifica para nuestro hardware y con los módulos que escojamos; esto nos permite tener un sistema eficaz y optimo si lo hacemos de la manera correcta. Parte de ello se logra con este archivo
por los momentos les enseñare a trabajar para un Intel Atom.. pero dentro mucho menos tiempo del que creen publico el modo genérico para las x86.
En este archivo notaran que existen ya 3 lineas no comentadas con #
[
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
]

estas las dejaremos así, pero no sin antes explicar porque. las dos primeras (CFLAGS y CXXFLAGS) definen parámetros de optimización para el compilador de C y C++, donde -march especifica el nombre de la arquitectura destino,el -O especifica la clase de optimización (el máximo es 3 pero genera errores a nivel de configuración global. usen 2), y el -pipe es para trabajar con tuberías y no ficheros intermedios no use esta opción si dispone de poca memoria.

En CXXFLAGS simplemente estamos colocando lo mismo que en este en la variable CFLAGS.

CHOST especifica el tipo de arquitectura utilizada de manera general al igual que -march, no cambie esta variable ya que depende de ella las herramientas de compilación que se utilicen. Si esta comentada, descomentela.

ahora agregaremos
[ MAKEOPTS="-j4" ] este define la cantidad de compilaciones que aremos en paralelo, el valor a escoger sera el 2 por cada nucleo | core que tengamos. en mi caso tengo 2 por ello coloco -j4 (minúscula)

[ LINGUAS="es la en" ] ahora agregamos los lenguajes soportados, en mi caso agrego el español, el ingles porque ciertos programas no tiene traducción y la por cuestiones de soporte a teclados latinoamericanos.

[ USE="fbcon nls unicode alsa" ] esta variable es sumamente importante ella define a nivel global que soporte tendrá lo que compilemos, recomiendo solo colocar opciones globales ya que mas adelante explicare como configurar USE por paquetes. En mi caso agrego unicode para tener soporte unicode, nls para compilar con soporte a lenguaje nativo, fbcon para el soporte a framebuffer en la consola y alsa para el sonido.

[ INPUT_DEVICES="mouse keyboard synaptics evdev" ] no explicare mouse, keyboard ni synaptics por ser evidentes, evdev nos da soporte a trabajo con múltiples terminales gráficas.

[ VIDEO_CARDS="intel vesa vga"] ciertamente es evidente para que es esta variable.
Importante: si no desea esperar a que publique la config genérica x86 simplemente busque la variable en google acompañada del nombre de la distro GENTOO y obtendrá ayuda, ciertamente variables como VIDEO_CARDS no se deben tratar de manera genérica.
Guarde el fichero con Ctrl+O

ahora agregaremos un par de variables mas pero esta vez sin editar el fichero directamente.

agreguemos el servidor de replica con la variable GENTOO_MIRRORS vía el siguiente comando [ mirrorselect -i -o >> /mnt/gentoo/etc/make.conf ] es importante seleccionar uno cercano por cuestiones de rapidez.

agreguemos la configuración de la variable SYNC ella se encargara de darle a portage toda la información que necesita. Usemos el siguiente comando [ mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf ] Recomendamos escoger uno de rotación, como rsync.us.gentoo.org, en vez de uno individual. Esto ayuda a repartir la carga y agrega seguridad en caso que el servidor espejo individual esté fuera de línea. }

Si a tenido problemas por tener un proxy de por medio lea lo que esta en rojo, si no puede omitirlo


{
Les comento e tenido problemas con mi proveedor de internet y por cantarle unas cuantas verdades me a bloqueado los servidores de gentoo y 3dsp. Pero no crean que me quede de brazos cruzados..
Les explico que hacer en un caso como este. Busque direcciones de servidores proxy's y conseguí esta página rosinstrument.com.proxy.cgi-bin.fp.pl.showlog la lista lateral en letras pequeñas tiene bastantes direcciones, me toco usar links con el parametro -http-proxy [ links -http-proxy servidor:puerto] o directamente en el menu setup/network options/proxies ir configurándolos.
se preguntaran porque ir configurando, resulta que no todos me dan acceso desde la consola así que toca probar varios hasta conseguir el correcto intentando abrir gentoo cuando logre entrar a la pagina cree las variables necesarias para trabajar en la consola de la siguiente forma
[
export http_proxy="http://usuario:clave@servidor:puerto"
export ftp_proxy="http://usuario:clave@servidor:puerto"
export https_proxy="http://usuario:clave@servidor:puerto"
export rsync_proxy="http://usuario:clave@servidor:puerto"   
]
   
les voy a dar el proxy que me funciono pero no quiero que lo usen si no es necesario

[ 93.153.213.218:3128 ]
ahora podemos continuar.
}

Verifiquemos que se estén las variables nuevas realizando un cat a make.conf [cat /mnt/gentoo/etc/make.conf ]
Todavía quedan pasos antes de que entremos al entorno nuevo con CHROOTING

ahora copiaremos el archivo de configuración de los DNS a nuestro nuevo entorno, y así asegurarnos de que la red siga funcionando después de que entremos al entorno con [ cp -L /etc/resolv.conf /mnt/gentoo/etc/ ] es importante usar la -L para asegurarnos de que no copiamos un enlace simbólico

ahora montaremos el sistema de archivos /proc para permitir el acceso a la información proporcionada por el kernel aun estando dentro del nuevo entorno con CHROOTING y montamos /dev de manera transparente
[
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
]

Ya con esto podemos hacer CHROOTING para entrar al nuevo entorno. Pero lo explico en la siguiente entrada.

1 comentario:

  1. mira apura edite que debes agregar -striped sino el kernel se genera demasiado grande con vainas de depurado..

    ResponderEliminar