Ir al contenido

Recommended Posts

debian100.jpg


Apt-build nos brinda la oportunidad de compilar los paquetes de los repositorios para ajustarlos a las especificaciones de nuestro sistema y, de esa manera, aumentar el rendimiento.

Permite compilar cada paquete manteniendo las reglas y dependencias del sistema. Al hacerlo no vamos a perder la habilidad de administrar el programa a través de apt, ya que el propio apt-build se encarga de crear el paquete .deb para luego instalarlo como si se tratara de un paquete descargado directamente desde repositorios.

La desventaja es que hay que perder tiempo compilando y seguramente instalar multitud de dependencias para poder llevarlo a cabo dicho proceso. Por no hablar de tener que repetir todo cada vez que sea actualizado el paquete.


Lo primero que debemos hacer es asegurarnos de que tenemos los repositorios "source" (deb-src)

En el caso de Debian podemos consultarlos en Debian Source list generator

En ambos casos es tan simple como añadir deb-src delante de la dirección del repositorio en lugar del típico deb (El repositorio debe contener las fuentes, de lo contrario no funcionará aunque añadamos la línea deb-src)
 

deb http://ftp.fr.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ testing main contrib non-free

Ambas direcciones son idénticas, sólo cambia la cabecera de la línea


Instalar y configurar apt-build:
 
aptitude install apt-build
[Mientras se instala nos preguntará qué nivel de optimización nos interesa:
  • El nivel agresivo no es muy recomendado porque puede dar algunos problemas.
  • El nivel escaso, personalmente no lo aconsejo ¿Que gracia tiene hacer toda esta locura para obtener un rendimiento "escaso"? :P
  • Esto deja como nivel recomendado, el nivel medio
Lo siguiente que pregunta es el modelo de procesador que tenemos en el equipo, de esto depende el resultado de la optimización.
En caso de duda, podemos ver toda la información de nuestra cpu con el comando:
 
lscpu

Proceso de compilado

[Apt-build tiene un funcionamiento muy similar a apt-get o aptitude

Lo primero es actualizar la lista de sources:
apt-build update
Para compilar e instalar un paquete

apt-build install paquete


Para compilar e instalar un paquete que ya está instalado

apt-build install --reinstall paquete


Para eliminar un paquete 

apt-build remove paquete


Limpiar después de compilar/instalar
apt-build clean-sources; apt-build clean-build
El resto de opciones pueden consultarse con el habitual
apt-build --help

Compilar código fuente ajeno a los repositorios

Para paquetes que provengan de repositorios, para compilar el código fuente de algún programa que descarguemos y vayamos a compilar también nos puede servir de ayuda.

Suele ocurrir que aparece una nueva versión de determinado programa, y no hay ningún paquete .deb y los repositorios sólo ofrecen versiones antiguas de ese programa, por lo que no tenemos más remedio que descargar el código fuente y compilarlo por nuestra cuenta.
A la hora de compilar siempre nos encontramos con que son necesarias multitud de dependencias previas y es algo que molesta, y mucho.

Eso se puede solucionar con un:

aptitude build-dep paquete


De esta manera se descargarán e instalarán todas las dependencias necesarias para poder compilar ese programa/paquete en concreto.
Una vez instaladas ya podremos proceder a compilarlo manualmente teniendo instalado todo lo necesario para que se complete el proceso.

(No es necesario el apt-build para hacer esto último)
(Tampoco es necesario aptitude build-dep para paquetes que compilemos con apt-build)


Apt-build world

Llega la parte peliaguda.
El apt-build con el parámetro "world" lo que hace es compilar absolutamente todo lo que hay en el sistema.

Este proceso es sólo para los más osados, porque no ofrece garantías de que todo funcione correctamente una vez termine y, encima, tardará una barbaridad en compilar todo el sistema.
Si termina y todo sale bien, mejorará el rendimiento notablemente y con el apt-build podremos administrar las actualizaciones y paquetes que vayan surgiendo sin tener que volver a empezar, pero si no sale, habremos perdido unas cuantas horas compilando y las que nos quedarán para arreglarlo

Vale, ahora que ya los he asustado, empecemos con el proceso

Antes de ejecutar el apt-build world hay que tener en cuenta una cosa, y es que no se deben compilar los mismos paquetes que se utilizan para compilar (suena redundante pero es así), por lo que debemos excluirlos para que no haya problemas.

Creamos una lista de los paquetes que tenemos instalados para que la lea apt-build
dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list
Una vez termine debemos acceder al archivo y eliminar los paquetes que no queremos que se compilen:
nano /etc/apt/apt-build.list
Los paquetes que tenemos que eliminar de la lista son los siguientes:

linux-image-* (eliminar de la lista cualquier versión del kernel que tengamos instalado)
libc6
libc6-dev
libc6-i686
automake1.9
automake1.4
autoconf
bash
base-passwd
base-files
binutils
binfmt-support
bison
bsdutils
bsdmainutils
cpp
cpp-4.** (cualquier versión que tengamos instalada)
comerr-dev
findutils
g++
g++-4.** (cualquier versión que tengamos instalada)
gcc
gcc-4.** (cualquier versión que tengamos instalada)
gcc-4.**-base (cualquier versión que tengamos instalada)
libedit2
libdevmapper1.02
libgc1c2
libgcc1
libssp0



Cuando nos hayamos asegurado de que hemos excluido esos paquetes del proceso, ejecutamos el comando:

apt-build world
Aunque algunos no lo tengan en cuenta, lo siguiente es muy importante, y es que si no le pones unas velitas a San Ignucio, y le rezas a San Torvalds, tienes muchas menos posibilidades que que el proceso se complete satisfactoriamente

Después de varias Horas/Días compilando verás como te tomas la última recomendación mucho más en serio

Compartir este post


Enlace al post
Compartir en otros sitios

Pues..... para Iceweasel como tal me parece demasiado. Quizá 1GB o 2, pero 9... no lo veo. Y 5 horas como que tampoco.

Salvo que no esté compilando sólo iceweasel sino más cosas, que entonces podría ser más normal :hmmm:

Compartir este post


Enlace al post
Compartir en otros sitios
hace 14 horas, uzanto dijo:

Buenas @Shiba87

 

¿Que tal va apt-build hoy en día?

 

¿Qué arquitectura es la adecuada para AMD64? ¿x86_64?

 

¿Al actualizar basta con apt update y apt upgrade?

Hace mucho que no lo uso, pero debería ir bien.

Sí, x86_64 y Amd64 vienen siendo lo mismo.

Las ganas tuyas :jojojo:

 

Te veo añadiendo los paquetes a la lista apt-build.list y haciendo un

apt-build world

Todas las veces :sweat:

Compilar por cuenta propia es lo que tiene

Compartir este post


Enlace al post
Compartir en otros sitios

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder en este tema...

×   Has incluido contenido con formato.   Eliminar formato

  Sólo se permiten 75 emoticonos como máximo.

×   Tu enlace ha sido insertado automáticamente.   Deshacer y mostrar como enlace

×   Su contenido anterior ha sido restaurado.   Limpiar editor

×   No puedes pegar imágenes directamente. Súbelas a algún hosting de imágenes y pega la dirección URL

Conéctate para seguir esto  

×
×
  • Crear Nuevo...