Optimizando nuestro sistema al estilo PRO de manera fácil

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

22 comentarios en “Optimizando nuestro sistema al estilo PRO de manera fácil

  1. 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

    Me gusta

  2. 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 :)

    Me gusta

    • 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.

      Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.