1 jun 2012

Construir un geento/funtoo gráfico (PARTE 1): como funciona, y ademas requiere conocer que apps y que orden colocarlas.

Geento&funtoo (conuco para mi.. ) se caracteriza no solo por su poder y rapidez, sino por lo extenuante y complicado que es construir una instalación estándar aun.. de este defecto esta residido su gran poder, al estar fuertemente casado con la arquitectura, es mas rápido que la velocidad de la luz misma..

Requisitos:
Portage activo y funcionando sin problemas...
Conexión a Internet muy buena, sino durara anos en esto..

Proceso normal.. ¿Como funciona esta cosa?

Resumiendo, se descargan las fuentes de un software o programa, se compila.. y luego se instala.. la fuentes quedan o se pueden borrar, después de compilar suceden cosas que no sabemos a simple vista, dentro de la fuentes queda la "cache de compilación" compuestos por "archivos objeto", adicional en casos donde se emplea "cmake" queda un registro del lugar donde se instalo el software.

Adicional a esto, el producto o programa generado queda un acopia en el directorio de fuentes, para que cuando ocurra algun problema, cn una repeticion de "install" se restituyan los ficheros, así como sus enlazamientos dinamicos.

Situación actual; la cache, la duplicacion: las fuentes+generados+instalados..

Si bien tenemos la cache/fuente de las apps que instalamos.. y con solo recompilar la diferencia basta, no es viable tener los 1.2Gb que genera solo en objetos las fuentes del qt4-x11 para solo instalar unos 300Megas.. (tengo una basura de 1.2gigas mientras solo uso unos 300Megas de manera efectiva) adicional de quien sabe que se nos paso habilitar por no conocer la plataforma (si, como veran hay qu habilitar o desabilitar según lo que se requiera..)

adicional a lo anterior, esta que la instalación duplica los archivos, es decir, que en el directorio de fuentes tienes los archivos resultantes, y al efectuar "install" estos no es que se mueven, sino que se "copian con un comando especial (el install)", generando mas data en el disco de manera extra.. es decir 300Megas en las fuentes así como los 300Megas mas que se llevara la instalacion (aparte de los objetos).

Ah, si puede ud limpiar la cache, (clean), pero si lo hace y quiere recompilar, a calarse la espera de nuevo.. así que en el proceso hay una regla fija, el espacio se consume como agua..
Se preguntara, porque debo mantener la cache? es porque algunas veces los programas requieren un cambio en sus librerias de las cuales dependen, necesitando recompilar estas, si esta cache (compilacion sin limpiar) no esta, hay que repetir todo y la espera (cosa fastidiosa en programas grandes como qt4-x11, la compilacion de librerias para qt4, o como kde4 mas aun..).

Para que debo conservar la cache de compilacion?

Tomemos un ejemplo, el programa/libreria LAME, lame es una libreria (la mas importante) para el procesamiento y soporte de los ultra necesario y de consumo basico "archivos mp3", lame, el ebuild hoy dia no toma en cuenta serio defectos: compila usando codigo de acceso a disco propio estando el libsndfile, no habilita optimizacion por procesador, no agrega codigo ensamblador en x86.. etc..

Si tiempo después vemos que lame no decodifica bien los mp3, podemos optar por leer los mensajes o la info y tomar medidas, cambiando, así los parámetros necesarios según lo que se descubra, para después volver usarlo pero con los cambios.. la cache permite que solo se compilen las partes que cambiaron ..

Que hacer para tener una seguridad de borrar la cache y compilar con la mayor seguridad de funcionalidades maximas?

Por ello una buena ayuda es saber en que orden instalar.. dado que muchos scripts de configuración de las fuentes habilitan características solo si encuentran el software del cual dependen.

Aqui paso el orden de los programas básicos tanto de un entorno gráfico asi como multimedia.

Software a instalar, y orden en que hacerlo

1) software basico queno debe faltar (para costruir el resto)

Estos son solo algunos, aparte de los que ya todos saben DEBE RESPETARSE EL ORDEN en que se presentan al instalarlos:
Leyenda: N:ncesario; U:actualizar no mucho; HU: necesita estar muy actualizado.
  • wdiff 
  • less 
  • patchutils
  • file(libmagic)   U
  • patch              U
  • zlib
  • bzib2
  • cmake           HU
  • flex                  HU
  • automake-1.4    N (para algun soft muy viejos que aun se usan)
  • autoconf2.13
  • automake-1.9
  • autoconf2.59
  • automake-1.10  HU
  • autoconf2.64
  • automake-1.11
  • bash,
  • check
  • libdaemon
  • libical
  • gmp
  • mpfr
  • libtool
  • quilt
  • texinfo
  • texi2html
  • check
  • m4

2) Librerias framework para construir software de escritorio complementario y para construccion delas librerias.

Con estos son necesarios para compilar la librerías mas usadas, ejemplos de librerías muy usadas con GTK+, Cairo, Pango, Qt4, asi como sistemas frameworks interfaces, como DBus, Udev, DeviceKit por decir algunos. Estos no compilaran a su máximas capacidades si algunas de estas faltan. (NOTA: algunas estarían de sobra si el software del cual dependen haya cambiado)
Siempre respetar el orden:
  • lsb
El software LSB no esta presente en todas las distros, pero provee de importantes scripts que determinan informacion base usada en otros programas, para asi determinar parametros de instalacion asi como demonios de arranque, es buno que ud mismo le dediqu un ebuild a este..
  • flex            HU
  • automake1.10.1
  • autoconf2.63
  • automake1.11.1
  • scons             HU
  • intltool
  • p4a               HU
  • gettext          HU
  • icu
  • popt
  • fam (esta en desuso, puede obviarse , pero es mas RAPIDO que gamin)
  • gamin
  • pcre            HU
  • liboil
  • glib1.2       N
  • glib2.0   2.12, 2.22, 2.25.12, 2.25.15
  • libjpeg
  • jasper
  • libpng
  • libpaper
  • tiff
  • tslib
  • freetype
  • tcl (8.4)      N
  • tcl (8.5)      N
  • tk  (8.4)      N
  • tk  (8.5)       N
  • directfb       U (no muy actual, sino rompe otras librerias, cuidado!)
  • recode
  • lualib
  • slice
  • lzma
  • libarchive 2.8.0 2.8.0 2.8.0 2.8.5
  • grep NA 2.6 2.6 2.6
  • elfutils
  • sharutils
  • python  (tomar especial cuidado aqui, note despues volvera aqui a recompilarlo)

3) sistema tipografico TEX, (opcional)

Necesario en algunos software, pero no imprescindible, pude obviarlo si no es desarrollador.
  • texlive-base
  • texlive-bin
  • texlive-extra
  • doxygen (NOTA: compilar sin gui, en este momento no tendra qt4 aun)

Compilar entorno x11:

  • x11  (aqui hay que bajar varia fuentes, por ahora solo necesitamos lo minimo, deje los ebulds hagan u trabajo)
El entorno x11 que se compilara en principio, sera un entorno básico solo para las compilaciones de las librerías, el preparado del entorno x11 es delicado porque depende del soporte MESA/GALLIUM respecto el kernel en curso (DRI2 vs GALLIUM), esto se abordara en un articulo por separado.

4) librerias propias para los escritorios:

Aqui hay que tener un entorno x11 precario primario.. para compilar estos siguientes, una vez finalizado, recompilar el entorno x11 ahora si on su funcionalidades completas..

  • selinux
  • sepol
  • setools
  • libsmbios
  • gperf
  • pmutils
  • util-linux
  • libvirt
  • db4.2
  • db4.6
  • db4.8
  • sqlite3
  • openssl
  • openslp
  • policykit
  • consolekit
  • dbus
  • dbus-glib
  • openais
  • lvm2
  • libtasn1
  • libgpg-error
  • libgcrypt11
  • gnutsl26
  • openldap
  • cups
  • ghoscript
Librerias propias ya de escritorios:
  • * freetype
  • * pixman
  • * pcre3
  • * libdatrie ( 0.1.9 para libthai viejas )
  • * libthai ( libdatrie 0.2.2 para libthai 0.1.12 )
  • * libpthread-strubs (usar -DBUILD_LIB en los flags ademas posilemente automake 1.11)
  • * xcb-proto
  • * libxcb  (requiere xorg 6.9.99 o >= 7.0 )
  • * direcfb
  • * sdl
  • * atk1.0 
  • * cairo2
  • * pango1.0
  • * gtk2.0
  • * gtkengines
  • * qt4-x11 4.6.3, 4.7.2 y 4.8.0

Escritorios (de un solo paso)

Son escritorios que se instalan de un solo paso, es decir no hay que bajar varias fuentes, sino una sola y listo. Mientras KDE o GnomePUACH requieren descargar muchas fuentes para tenerlo, estos descargan uno sola.
  • razorqt  (escritorio, barra de tares, menu, requere un menjador como openbox)
  • xfce (el paquete base solo ventanas, escritorio y barra de tareas)
  • openbox (solo ventanas y escritorio, menu en click derecho)

    Conclusiones y cual seria el siguiente paso?

    Ud se sorprendería al saber que son muchas, pero la mayoría son pequeñas, muchas no pasan de 900Kilobytes, en dos días ud con una conexión a Internet rápida tendrá todo lo aquí expuesto, eso si, cuidando no usar el ultimo kernel ni el ultimo xorg disponible, dado los software ulimos en salir son tan nuevos y tienen tantos cambios que los software los cuales lo usan no están aun enterados de la nuevas funcionalidades. Ademas, cundo un software es muy nuevo, esta menos probado y por ende es menos confiable.

    Para comenzar, use los enlaces al lado, el primer paso antes de esto es "Preparando la instalacion", antes de este articulo, obvie la parte del kenel y del xorg, dado son lo mas complicado es recomendable dejar de ultimo. (si netter esta tan pendiende de vender su alma al dinero que no supo done comenzar ni cm abordar el tema de instalar un geento).

    Esto es todo, el orden determina lo que se debe hacer, con esto tendrá la parte gráfica completa.
    El siguiente paso se debe centrar en dos cosas: mejorar el soporte x11 o compilar un entorno multimedia. dejare l arte de x11 a el vendido dueño de este blog, y yo haré la parte de multimedia.

    No hay comentarios:

    Publicar un comentario