Gentoo, lo recomiendo
Hacía mucho que no escribía debido al trabajo 0:) Pero ya estoy de vuelta y os voy a comentar algunas cosillas a tener en cuenta de Gentoo.
Mi compi Picajoso ya ha escrito sobre la nueva versión de Gentoo. No os voy a comentar las novedades ni lo que ya ha comentado Picajoso. Os voy a recomendar probar Gentoo.
Para los que no conozcáis Gentoo, es una distribución que se compila casi desde el principio, algo similar a Linux From Scratch (LFS). La principal diferencia entre Gentoo y LFS es que Gentoo te ofrece un sistema básico desde el que puedes empezar. Este sistema básico te instala librerías, compilador y algunas herramientas básicas como por ejemplo editores. En el caso de LFS, no te trae nada precompilado y es un sistema operativo que te tienes que compilar desde un principio, aunque existe el proyecto ALFS (Automated Linux From Scratch, Linux From Scratch automatizado) que facilita la tarea de recompilar todo :)
Mucha gente preguntará:
- ¿por qué complicar las cosas?
- ¿por qué recompilar todo tu sistema si ya tienes distribuciones precompiladas?
- ¿es que no tienes vida privada?
- ...
Bueno, la respuesta principal es: para aprender. Algunos pensarán: "Buah! Para eso ya he ido/voy al cole/Universiadad/...". Correcto, en estos centros nos enseñan cosas, pero no todo se aprende allí. Este tipo de distribuciones nos permiten aprender:
- de qué se compone un sistema operativo (cuáles son sus partes)
- las dependencias entre unas partes y otras
- las herramientas necesarias
- qué hace cada herramienta
- mucho sobre (nuestro) hardware
- cómo optimizar un sistema
- que el compilador NO lo es todo
Voy a centrarme principalmente en el punto "que el compilador NO lo es todo" aunque también voy a hablar sobre algunas herramientas.
Es importante tener en cuenta que el compilador NO lo es todo, aunque sí es una parte muy importante. Mucha gente cree que la gran ventaja del software libre es que, al tener el código fuente y el compilador, puedo hacer lo que me da la gana. Esto no es cierto. Hay que saber programar muy bien y conocer muy bien cómo funciona un compilador para "hacer lo que me da la gana".
Muchas veces, se ve en los foros de Gentoo las miles de opciones que algunas personas le pasan al compilador para compilar su sistema. Esto es muy peligroso ya que puede provocar que el sistema sea inestable, pierda rendimiento, ... Debido a que las opciones que le hemos pasado al compilador son incorrectas. Un buen enlace para leer en este caso es este.
Una recomendación que os hago es: no exageréis las opciones del compilador. Muchas veces lo que os viene por defecto funciona perfectamente y no hace falta nada más. Sí es cierto, que otras veces por ejemplo, en el mundo HPC/Supercomputación, sí hace falta recompilar determinada aplicación y/o librería con determinadas opciones ya que se conseguirán mejoras interesantes, pero no todos estamos dedicados al 100% al mundo del HPC ;)
Lo primero que tenemos que hacer es: conocer bien nuestro hardware. Esto es muy importante porque las opciones que le pasaremos al compilador dependerán mucho de nuestro hardware.
Luego tendremos que leernos el manual de GCC, ese gran compilador que usa Linux por defecto. Pero OJO, hay que leerse la documentación de la versión que vamos a usar !!! ;)
Una vez que sabemos qué hardware vamos a usar y haber leído la documentación correspondiente de GCC, hay que usar unas opciones "lógicas" respecto a lo que estáis haciendo. Por ejemplo, para el sistema base, las opciones que vienen por defecto (-O2 -march=i686 -pipe) son más que suficientes (la opción -march dependerá de la arquitectura que estemos usando). Podremos añadir nuevas opciones al compiladro en función del paquete que estemos compilando, siempre asegurándonos con la documentación de GCC y la del paquete (sin olvidarnos de las listas de correo) que todo es correcto.
"Vaya ... si el GCC tiene "minolles" de opciones y tu me estás diciendo que use 3 de ellas ... ¿para qué tiene tantas?" Bueno, las opciones que tiene GCC o cualquier otro compilador muchas veces son para situaciones específicas. Determinadas aplicaciones/situaciones requieren dichas opciones, pero no todas.
"¿Entonces eso de que Gentoo es más rápida y más mejor es una milonga?" No, lo que pasa es que para que sea "más mejor" no hay que abusar o centrarse en el compilador, un sistema operativo tiene mucho más.
¿Dónde está realmente la potencia de Gentoo? Muy sencillo, en la variable de entorno USE. USE es una variable de entrono que nos permite definir qué queremos y qué no queremos que se compile. Por ejemplo, a mi no me gusta GTK ni GNOME (soy lo que los norte americanos llamarían un KDE die-hard), así que deshabilito todo aquello relacionado con GTK y/o GNOME. Es decir, puedo decidir qué opciones se compilan en un determinado paquete o si se va a soportar tal o cual propiedad. Otro ejemplo es que puedo compilarme el kdegraphics sin soporte para scanner porque no tengo.
Muchos pensarán: "pues no me instalo en GNOME o los paquetes para scanner y ya está". Pues no, ya que aunque no te instales el sane, tu KDE ha sido compilado con soporte para scanners, luego te va a incluir un montón de librerías que no quieres/necesitas.
La variable USE se define en el fichero /etc/make.conf y se define de la siguiente manera:
USE="palabras clave separadas por espacios"
Para una definición mucho más extensa, echad un vistazo a este enlace. Para una lista de una gran mayoría de palabras clave que se pueden usar en la variable USE, podéis acceder a este enlace. Cuando digo "gran mayoría", quiero decir a muchas, pero no todas ;)
La variable USE puede definirse de una forma tan sencilla como:
USE="-gtk -gnome kde qt3"
O bien complicarla como:
USE="-3dfx -3dnow X Xaw3d a52 aac aalib -accessibility acl acpi -adabas -adns -afs -aim alsa -altivec ao -apache2 apm arts -atm audiofile avahi bash-completion -bcmath berkdb -bidi bindist -birdstep -blas bluetooth -boundschecking bzip2 -cairo calendar -canna caps -cdb cddb cdinstall cdparanoia cdr -cgi -chasen -cjk clamav cracklib crypt cscope css ctype cups curl curlwrappers -cvs cxx -db2 dbase dbm -dbmaker dbus dbx -debug -dedicated dga directfb djvu -doc dri dts dv -dvb dvd dvdr dvdread -eds -emacs -emboss -empress -empress-bcs encode enscript esd -esoob -evo -examples exif expat fam -fastcgi fbcon ffmpeg -fftw -filepro -firebird firefox flac flatfile fltk fontconfig foomaticdb fortran -freetds -freewnn -frontbase"
Si os fijáis, un guión (-) antes de la palabra clave significa que deshabilito el soporte para dicha función o dicho paquete.
"Pero ... ¿y si mañana me compro un scanner?" Muy sencillo (y aquí viene otra de las grandes utilidades de Gentoo), añades scanner a la variable USE y recompilas. "¿Recompilo el qué? ¿Todo?" Depende ... deberías recompilar todo aquello que se pueda ver afectado por esta novedad. "Pos vaya rollo". Sí y no, sí porque tienes que recompilar y no porque así sabes de qué componentes está formado tu sistema y las dependencias que tienen unos de otros
Gentoo ha resuelto esto de recompilar "todo" de una manera muy sencilla. Tiene una herramienta en línea de comando que es:
revdep-rebuild
Básicamente lo que hace es escanear tu sistema y si ve que has cambiado una librería y que un paquete determinado debería ser recompilado ... lo recompila.
Existe otra opción también cuando cambias la variable USE que es:
emerge --update --deep --newuse world
emerge es la herrmaienta de gestión de paquetes y gestión de la compilación de dichos paquetes. Si quieres instalar un paquete, lo que tecleas es:
emerge nombre_del_paquete
Entonces emerge descarga el código fuente, lo compila y lo instala.
En el ejemplo que os he puesto arriba, lo que haría emerge es comprobar si las variaciones que hemos hecho a la variable USE afectan a algún paquete en cuestión y, si el paquete se ve afectado, lo recompila. Como podéis ver en la captura de pantalla que pongo abajo, en mi caso habría que recompilar 49 paquetes. Las palabras clave en verde son novedades, las que están en rojo son las que hemos utilizado en una compilación anterior y las que están en azul son las que hemos marcado con un guión (-).
Obviamente, esto de recompilar y volver a compilar y recompilar de nuevo tienes sus problemas te puedes cargar el sistema si no sabes lo que haces. La ventaja de este inconveniente, aprendes de los errores que has cometido ;)
Antes de acabar, unos consejos:
- no esperéis tener un Gentoo funcionando en una tarde
- tenéis que ser pacientes
- id poco a poco, entendiendo lo que estáis haciendo y lo que habéis hecho
- aprended todo lo que podáis
Es un proceso lento, pero muy gratificantes así que paciencia. Yo llevo una semana compilando y recompilando en un ASUS R2 y aún me queda ;)
En resumen, lo bueno de Gentoo es que te permite aprender mucho de tu sistema y sabrás que si algo falla es por tal o cual razón: sea culpa de una opción del compilador, por el hardware, por dependencias, por librerías, ... Y, lo más importante, nos pemite aprender de nuestros errores ;)
Si has disfrutado de este post, considera la opción de dejar un comentario o suscribirte al feed para poder seguirnos desde tu lector de feeds.
Comentarios
Cierto, gracias por decirlo porque se me ha pasado por alto completamente 0:) Sabayon es muy sencilla de usar y se instala desde un LiveCD por lo que se simplifica aún más la instalación ;)
Hola, Thrash! Quería comentarte que el enlace que pones a los comentarios de “picajoso” me remite a una entrada de tu blog que avisa de que la página no existe.
Me gustaría que le echaras un vistazo porque estoy pensando en instalar gentoo en mi portátil y todas las ideas que me animen a ello son bienvenidas.
Muchas gracias por tu atención y un saludo
kikback, ya está arreglado, pero como verás la noticia a la que enlaza es simplemente el anuncio de la distribución, no daba más detalles ahí. Este post tiene mucha más información al respecto, incluidos algunos enlaces que te ayudarán a completar el proceso.
Gracias por el aviso de que no funcionaba!
Muy buena nota.
Soy administrador de sistemas, mantengo servidores RHEL, pero en mi casa o con mis amigos uso, he probado y jugado con varios sistemas abiertos y mis comienzos fueron con BSD. De todo lo que he probado (FreeBSD, Slackware, Debian, Solaris, CentOS, OpenBSD) personalmente prefiero Gentoo, pese que fue el último en probar porque nunca me le había animado debido al tiempo de estudio que requiere conocerlo bien.
Lo que más destaco de esta distribución es la libertad que uno tiene de elección, similar a lo que solía tener con BSD usando los ports, pero mayor aún debido a que la variable USE es global.
Respeto distribuciones binarias como Debian o CentOS, pero siempre me he inclinado a operativos basados en código fuente como FreeBSD ó Gentoo.
Por último puedo decir que recomiendo Gentoo a entusiastas con ganas de aprender, tiempo para estudiar y hacer numerosas pruebas. Si ese no es tu perfil, recomiendo operativos basados en binarios.
Otra característica a destacar es la buena documentación que hay acerca de la distribución.
Saludos,
[...] public links >> recompilando Gentoo, lo recomiendo Saved by jamiew on Tue 07-10-2008 Recompilando um pacote .DEB Saved by edkay on Thu 02-10-2008 [...]















hola , gentoo es muy bueno pero esta mas orientado a usuarios medios en gnu/lunux y no mucho para principiantes pero para esto hay una solucion , que se llama SABAYON LINUX (actualmente vercion 3.5) que esta basada en gentoo que es una excelente distro (la mejor que he probado) y que incluye todo lo necesario para comenzar en linux con codecs propietarios y un montón de aplicaciones, tiene la estabilida de gentoo y la facilidad de uso de ubuntu. yo la uso y la recomiendo.