Personaliza con Geeks & Linux Atelier!:

Después de un par de semanas en las que la carga laboral me mantuvo alejado de cualquier teclado que no fuera el de mi PC de la oficina, y en los que mi creatividad y mis energías fueron a parar a /dev/null, aprovecho esta pequeña ventana de relajo que tengo para sentarme aquí y dedicarle un poco de tiempo (que terminaron siendo un par de horas repartidas en varios días) a mis pocos pero queridos lectores (Además que el tirano gran jefe me va a tirar las orejas si no publico algo pronto).

Esta semana les traigo una manera de optimizar su sistema basado en Debian (Ubuntu, Mint, etc), de manera “PRO”, compilando desde las fuentes, pero con un método que trae muchas menos complicaciones.

Antes de seguir, debo hacerles una advertencia: dado que vamos a tocar nuestras aplicaciones y programas en la raíz más profunda de su ser, siempre tengan todo respaldado.

Introducción

¿En qué consiste lo que vamos a hacer? En pocas palabras, vamos a reconstruir nuestras aplicaciones de manera que se adapten más a las características de nuestro equipo (PC).
¿De qué manera? Pues, compilándolos nuevamente.
¿Qué logro con esto? Que tus aplicaciones se compilen de manera más específica según el tipo de procesador que tengas, dado que están compiladas de manera genérica, por lo que no hace uso de las características específicas de cada modelo de procesador con el fin de aumentar al máximo la compatibilidad. Es decir, que vamos a adaptar las aplicaciones que compilemos a las capacidades reales de nuestro procesador, permitiendo que se usen todas las capacidades posibles.
¿Puedo echar a perder mi sistema? SI. Es por esto que solo recomiendo recompilar aplicaciones que no sean críticas para el sistema. Por ejemplo, Empathy, Rhythmbox, Firefox. Pero tampoco es para asustarse, siempre podemos reinstalar las versiones precompiladas desde nuestros repositorios de siempre.
¿Necesito saber programar o debo tener conocimientos avanzados de Linux? NO. Solo tener un poco de manejo de la consola, una conexión a internet y mucha paciencia (a veces puede tomar muchas horas).

Es hora de meter las manos.

Primero vamos a instalar apt-build, que es un gestor de paquetes como apt-get o aptitude, pero con la diferencia de que no descarga los paquetes precompilados desde los repositorios, sino que descarga las fuentes y las compila. Su uso es muy sencillo, pero no todo resulta siempre a la primera.
sudo aptitude install apt-build
Durante la instalación nos va a hacer algunas preguntas, las que debemos responder según queramos el nivel de optimización, la arquitectura del procesador, etc. En mi caso, dejé la optimización en nivel 3 (que es una optimización más agresiva), pero se recomienda dejarla en nivel 2.
Les dejo unas pantallas de la instalación:
Seleccionar Nivel de Optimización.
Seleccionar Optimizacion

Agregar apt-build a repositorios.
Agregar a repositorios

Configurar Postfix.
Configurar Postfix

Selección de Arquitectura del Procesador.
Selección de Arquitectura del Procesador

A continuación, debemos agregar a nuestros repositorios los repositorios de las fuentes de nuestras aplicaciones. Si solo tenemos los repositorios originales que vienen con Ubuntu, basta con ir a Sistema > Administración > Orígenes de Software, activar la casilla Código fuente, cerrar y esperar que se recarguen los repositorios. Si tienen repositorios de terceros, deben agregarlos manualmente al archivo /etc/apt/sources.list, en el que los repositorios de programas y los de fuentes se diferencian porque los primeros empiezan con deb y los últimos empiezan con deb-src.
NOTA: Todos los repositorios deben quedar en el archivo /etc/apt/sources.list o no serán tomados en cuenta por apt-build (en caso que utilicen Ubuntu-Tweak, generalmente deja los repos en archivos separados).
Una vez que terminemos la edición de nuestros repositorios, debemos actualizarlos para que se refresquen los cambios.
Ahora estamos listos para compilar los paquetes que queramos, en vez de bajarlos compilados.

Para instalar un paquete:

sudo apt-build --yes --force-yes install <paquete>

Para reinstalar un paquete o recompilar un paquete que ya tenemos instalado hay que agregar la opcion –reinstall, por ejemplo:
sudo apt-build --reinstall --yes --force-yes install empathy
Durante este proceso, nuestra terminal se va a llenar de palabras y caracteres que escasamente entenderemos, pero es parte normal de la compilación. Este proceso puede demorar desde un par de minutos hasta muchas horas (no se les ocurra compilar openoffice.org si no tienen tiempo de sobra y espacio en disco de sobra, a mi me ha tomado más de 24 horas, tras lo cual me aburro y corto el proceso).
Como ejemplo, un par de pantallas de la compilación de empathy
Compilando empathy 1 Compilando empathy 2 Compilando empathy 3

En caso de que la compilación no salga bien, simplemente no se va a instalar nada, por lo que no hay que temer de que vaya a quedar mal el sistema. Si sucede esto, la única manera de saber que fue lo que sucedió es buscar en la terminal donde esté el error. Generalmente se debe a alguna dependencia, por lo que basta instalarla y volver a compilar.

Después de un tiempo necesitaremos limpiar un poco los directorios, porque se nos van a llenar con fuentes, compilados y otros archivos, que pueden llegar a pesar mucho. Para esto hacemos:
sudo apt-build clean-sources
sudo apt-build clean-repository
sudo apt-build clean-build

Para actualizar el repositorio:
sudo apt-build update
Y, finalmente, para hacer una actualización al sistema:
sudo apt-build upgrade
Existe otro comando, pero es un tanto peligroso, por lo que lo dejaré para otra oportunidad, ya que implica recompilar TODO el sistema operativo, lo que puede tomar muuuuuuuuuuchas horas (o días).

Como siempre, cualquier duda, estoy en los comentarios.

¿Cuando me verán de nuevo? No lo sé, pero tengo algunas ideas en mente, así que, en la medida que mi pega me lo permita, van a ir apareciendo algunos tips o modificaciones a nuestros sistemas.

Actualización: Para darle prioridad a lso repos de apt-build, hay que agregar el siguiente archivo: /etc/apt/preferences el que debe contener lo siguiente:

Package: *
Pin: release o=apt-build
Pin-Priority: 990

Actualización 2: Un poco de lectura recomendada acerca de las arquitecturas del procesador: gcc.gnu.org. Para poder cambiar la opcion de arquitectura de compilación por una que no aparece en la configuracion de apt-build deben modificar el archivo: /etc/apt/apt-build.conf y cambiar los parámetros -mtune por el que corresponda :D


  1. Vamos... sabemos que quieres comentar algo ;)

  1. [...] This post was mentioned on Twitter by Angelo G. Bernardi O, Pablo Olmos de A. C., Mauro Morel, Geeks & Linux!, Cultura Tecno and others. Cultura Tecno said: #Linux Optimizando nuestro sistema al estilo PRO de manera fácil http://bit.ly/aNuTgD [...]

  2. Luis Manuel (Responder) El 15 de Julio del 2010 a las 10:56

    Excelente post :D, muy bien explicado. Me animaré a probar a ver como me va :D

  3. marco (Responder) El 15 de Julio del 2010 a las 11:11

    Y el aumento en rendimiento es realmente notable? o sea, si recompilo (como estoy haciendo ahora) el pidgin, por ejemplo, se notará la diferencia? o sera mas o menos lo mismo?

    • Angelo Bernardi (Responder) El 15 de Julio del 2010 a las 11:47

      a medida que vas llegando más profundo, las diferencias se hacen más notables.
      a que me refiero? con las aplicaciones livianas ni se nota, pero a medida que vas compilando aplicaciones mas pesadas, junto a sus dependencias y librerias, la diferencia se va haciendo notable.
      la diferencia más notable es al compilar el kernel, pero para eso es otro procedimiento.

    • Patrick (Responder) El 15 de Julio del 2010 a las 17:12

      Pues mira, yo no se que ocurre, pero ya lo he probado con pidgin, avantwindow-navigator, y con autokey.
      Con los tres da error!!!
      Que leches ocurre?
      No me atrevo empezar con el vlc, porque me decía que tiene que bajar 170mb en archivos!

    • Patrick (Responder) El 15 de Julio del 2010 a las 19:38

      También he probado con wine, y lo mismo!
      En todo error. Y eso después de esperar 1h!!! Sabes cuanto fastidia eso!???

      • Angelo Bernardi El 16 de Julio del 2010 a las 14:29

        cual es el error??

      • Angelo Bernardi El 17 de Julio del 2010 a las 8:26

        Compilé vlc y soné sin problemas… Que error te da? Para ver por donde va la cosa. Y si, se cuanto fastidia haber esperado 2 a 3 horas compilando un Merkel para que me de un error.

      • Angelo Bernardi El 17 de Julio del 2010 a las 8:28

        De de erratas:
        dice: soné
        debe decir: wine
        (maldito corrector ortográfico automágico del iPod)

  4. Patrick (Responder) El 15 de Julio del 2010 a las 11:15

    Mi duda:
    Cada vez que haga un:
    sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get upgrade
    Los paquetes que yo haya recompilado, si tienen una actualización, y son bajados e instalados, los tendré que volver a recompilar, correcto?
    Entonces, al comando de arriba no le le puede incluir la regla, que a todos los paquetes a actualizar/bajar, sean recompilados con apt-build AUTOMÁTICAMENTE?

    Recibe un cordial saludo,
    Patrick

    • Angelo Bernardi (Responder) El 15 de Julio del 2010 a las 11:44

      sudo apt-build update && sudo apt-upgrade

      los que no se compilen los upgradeas con apt-get

  5. Patrick (Responder) El 15 de Julio del 2010 a las 11:21

    El Intel Atom no esta en la lista predeterminada de arquitecturas. Cual es la más similar a escoger?
    Gracias!

    • Angelo Bernardi (Responder) El 15 de Julio del 2010 a las 11:45

      toy buscando…. tambien tengo un atom, pero google no aporta mucho para ubuntusers (ni debianitas), solo para gentoonianos

      • Patrick El 15 de Julio del 2010 a las 15:40

        Al final has encontrado la respuesta de cual escoger??

      • Patrick El 15 de Julio del 2010 a las 15:45

        Ahh, ok!
        No había visto tu segunda actualización.
        Sencillamente seleccionamos “alguno”, y después hacemos un:
        sudo gedit /etc/apt/apt-build.conf
        y sustituimos “alguno” por “atom”.

        Fácil!

    • Angelo Bernardi (Responder) El 15 de Julio del 2010 a las 11:57

      Hice una actualización en el artículo, en la que se da prioridad a los paquetes del repositorio local, para que despues de compilarlos en la ultima versión, sea la compilada por nosotros la que prevalezca sobre la descargada desde los repos.

      • Patrick El 15 de Julio del 2010 a las 15:39

        Falta el comando desde el cual podemos crear este archivo directamente desde la consola con ese mismo contenido.

  6. [...] Optimizando nuestro sistema al estilo PRO de manera fácil – Geeks & Linux Atelier! [...]

  7. [...] Optimizando nuestro sistema al estilo PRO de manera fácil – Geeks & Linux Atelier! [...]

  8. PaBLoX (Responder) El 20 de Julio del 2010 a las 16:36

    Interesante el artículo Angelo, aunque la verdad si quisiera hacer eso, seguramente sería más simple cambiarse a Gentoo o alguna distribución que facilite la compilación y recompilación como Arch ;).

    Buen dato de todas formas :)

    • Angelo Bernardi (Responder) El 22 de Julio del 2010 a las 8:49

      Pero es una muy buena opcion para los que usamos Ubuntu/Debian. Ademas que es un comienzo para tomar interes por compilar. Lo que puede ser un punto de partida para irse a Gentoo o Arch ;)

      • Genoskill El 13 de Agosto del 2010 a las 22:52

        exacto! Yo en estos pocos meses en los que he usado ubuntu y linux mint, siento que he aprendido bastante, aun asi me falta muchisimo más por aprender. y QUIERO hacerlo. Es por eso que tengo muchas ganas de probar Archlinux y también otras distribuciones.


Avísame de los futuros comentarios via e-mail. También puedes suscribirte sin comentar.

XHTML: Puedes utilizar (con criterio) estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>