Primera experiencia con apt-build

+1
0
-1

Hace poco me enteré acerca de apt-build, una herramienta desarrollada por el grupo Debtoo que funciona como apt-get, pero en lugar de trabajar con binarios trabaja con el código fuente. Permite optimizar los paquetes a tu procesador. Instalarlo es sencillo: sudo apt-get install apt-build, después de instalarlo nos pregunta el tipo de procesador que tenemos y listo. Además hay que especificarle en /etc/apt/sources.list los repositorios con las fuentes, por ejemplo:

deb-src http://archive.ubuntu.com/ubuntu/ warty main restricted universe multiverse

antes de usarlo por primera vez hay que ejecutar:

sudo apt-build rebuild-repository

Se supone que con eso debiera funcionar.

El comando estrella de apt-build es "world", al hacer "sudo apt-build world" construye y reinstala TODOS los paquetes de tu sistema, aunque recomiendan hacer la excepción con gcc y libc6 ¿Cómo hacerlo? se crea una lista de los paquetes instalados haciendo esto:

dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list

y se eliminan de ella gcc y libc6.

Bueno, yo hice todo eso y me tiré a la piscina con "sudo apt-build world", pero decía que no encontraba ningún paquete de los especificados en la lista. Con los grandes conocimientos que tengo de apt (broma) pensé que talvez necesitaba actualizar, así que hice "sudo apt-build update" y luego "sudo apt-build upgrade". El asunto es que descargó como cuatro paquetes (entre ellos el kernel) y los compiló e instaló. Con los primeros se demoró como dos minutos, pero le llegó el turno al kernel y después de una descarga de 30 minutos, lo compiló en 14 horas (sí, leyeron bien), desde las una de la mañana a las tres de la tarde. En todo caso he de decir que sí noto mayor rapidez en Ubuntu, especialmente en el acceso a unidades de disco, aunque creo que optimizar el sistema completo podría llevarme como una semana. Este fin de semana haré un "sudo apt-build reinstall xfree86" a ver qué tal me va.

Las referencias para todo lo que hice son de acá, que a su vez lo sacó de acá. Como gran aporte ;) he traducido el apt-build howto de Debtoo, aunque necesita una "revisión técnica" porque mis conocimientos corresponden a un usuario promedio, como no tengo de dónde colgarlo lo mandaré por correo a los administradores de Ubuntu-es para que lo hagan acá y en una de esas los de Debtoo se interesan también.

Saludos, la próxima semana les cuento más.

Comentarios

Imagen de Anónimo

¿Y funciona mediante synaptic?

¿Es decir, puedo usar synaptic, pero que haga un apt-build en vez de apt-get?

Imagen de ChicoGeek

No lo he provado con synaptic y no he encontrado ninguna referencia en ese sentido, habría que preguntarle a los de synaptic. En todo caso, yo uso la consola cuando se trata de actualizar, instalar o remover y el synaptic para revisar qué paquetes hay en los repositorios y qué hacen.

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

Imagen de sanse

Me estás diciendo que te compila el kernel en función de la configuración de tu equipo? Lo digo porque nunca he parcheado el kernel, ni compilado de nuevo, y todas ests facilidades son de agradecer...

Y referente al uso diario, ¿has notado mejoras al compilar tu mismo los paquetes y no basarte en paquetes precompilados?

---
Email: xaviersansebastian(arrobita)gmail (puntito) com
Linux user: #380048 PACO: Penja Ases pro Codi Obert

Imagen de ChicoGeek

Compila el kernel en función de la configuración que tiene, que en mi caso no es otra que la que hace el instalador ya que al instalar elegí la opción "linux" que lo único que te da a elejir es el idioma. Supongo que en caso de tener otra configuración también la respetará. En el uso diario he notado más rapidez en las aplicaciones (firefox, OOo, Gnumeric, que son las que uso más), pero donde se nota más es en el acceso a disco, el nautilus vuela en comparación con antes, las unidades extraíbles se montan/desmontan más rápido o al menos se siente más rápido. Realmente dan ganas de optimizar el resto. Espero haberte respondido.

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

Imagen de insulae

que equipo tienes, quiero saber porque yo tengo un Athlon XP 2500+ y compilar el kernel (pelado, le saco todo los modulos que no uso queda basico) tarda en compilar unos 30 minutos nada mas. mi pregunta es para ver si el apt-build realiza otras cosas mas alla de la compilacion o si solo es tu equipo.

Saludos

Juan Matias Granda
http://www.insulae.com.ar

Imagen de ChicoGeek

PIV 1.7 Ghz y 128 RAM. Compiló todos los módulos, que en el kernel de ubuntu son casi todos los posibles según he visto. A lo mejor se demora tanto por la optimización, que por defecto es -02 (lo digo por decir algo porque en realidad no tengo idea)

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

Imagen de horaciod

Gracias a esto se puede hacer algo parecido a lo que hace gentoo sobre todo para los que tenemos athlon y derivados.

Horacio Degiorgi
http://blog.codigophp.com

Horacio Degiorgi
http://blog.codigophp.com

Imagen de mdm

Hola,

Ante esta noticia me he decidido a probar el apt-build a ver que tal iba. He compilado sin problemas un par de juegos (el tuxracer y el supertux) y incluso el k3b. Pero al intentar compilar el gaim, me suelta esto:

dpkg-source: extracting gaim in gaim-1.0.0
-----> Building gaim <-----
Can't chdir(gaim-1.0.0-1ubuntu1.1): No existe el fichero o el directorio at (eval 1) line 3
main::__ANON__('gaim-1.0.0-1ubuntu1.1') called at /usr/bin/apt-build line 279
main::build('gaim', '1:1.0.0', '-1ubuntu1.1') called at /usr/bin/apt-build line 424
main::install called at /usr/bin/apt-build line 82

Sospecho que puede tratarse de un problema en el nombre del directorio, ya que parece que mete el código en la carpeta "gaim-1.0.0" y luego lo busca en "gaim-1.0.0-1ubuntu1.1".

Renombrándolo se soluciona el problema, pero ¿alguien sabría decirme algún truco para que no tenga que hacerlo yo?

Muchas gracias y un saludo.

Imagen de Anónimo

Exactamente eso mismo me pasa a mi creo que tiene que ver con las versiones en verdad he buscado info al respecto sin mucho exito.

Imagen de Anónimo

Bueno he probado apt-bulid tal como dices y tengo los repositorios src habilitados pero hay un problema que en los repositorios src no he encontrado los updates entonces al recompilar ejemplo gaim sucede que tengo una version mas nueva de la que esta en los src y me da error. me faltaria un repositorio src de updates para reinstalar las mismas versiones de mis paquetes y optimizarlas con apt-build.

Tambien hice una prueba con gpaint y como la version es la misma en los repo src pues la optimizo y el apt-build funciono perfecto.

Imagen de ChicoGeek

Sólo copié las líneas del sources.list donde hacían referencia a los repositorios deb y les inluí el -src de tal manera de tener los mismos repositorios en deb y en src. No sé si eso solucionará el problema.

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

En teoría no hay diferencia entre teoría y práctica, en la práctica sí

Imagen de yerga

Aver si me podeis resolver a esta duda que tengo, al instalar algun paquete con apt-build seria igual que si te bajases las fuentes y lo hicieras a mano (configure, make, make install...) o te lo configura de tal modo que sea mas optimo que a mano.

Gracias.
Un saludo.
----------------------------------------------------------------------
Linux user: 372827
Jabber: yerga@jabber.org
M$N: yerga@linuxmail.org

Un saludo.
------------------------------------------------------------------------
GNU/Linux user: 372827
Jabber: yerga@jabber.org
M$N: yerga@linuxmail.org

Imagen de mdm

Me parece que lo optimiza un poco añadiendole varias opciones al configure (lo vi de pasada mientras compilaba el gaim).

Un saludo.

Imagen de Anónimo

Por lo que tengo entendido optimiza para tu procesador agregando la opción -02 (que puedes cambiar en apt-build.conf). Si haces "man gcc" y buscas las opciones de optimización verás cuáles son las opciones. Creo que si haces un "configure -02" (o algo por el estilo) consegurías la misma optimización desde el código fuente, pero perderías la posibilidad que da apt para manejar las dependencias y hacer una desinstalación limpia.

Imagen de Sargate

hola, he seguido los pasos, al llegar al sudo apt-build rebuild-repository no me muestra nada, eso esta bien?, suponiendo que esta bien hago el dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list, y lo mismo pero con sudo pero la respuesta es la misma sargate@gubuntux:~ $ dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list
bash: /etc/apt/apt-build.list: Permiso denegado

que es lo malo?
gracias

Imagen de Anónimo

Me pasó lo mismo, lo que hice fue cambiar el archivo final a /home/mi_directorio/apt-build.list y hacer "sudo cp /home/mi_directorio/apt-build.list /etc/apt/apt-build.list" y me aseguré que tuviese los mismos permisos que el apt-build.conf

Imagen de Sargate

gracias a un comentario logre crear la .list, pero al irme a terminal y poner: sudo apt-build amsn, o cualquier otro no hace nada, y al darle el world me dice que no lo encuentra
$ apt-build world
-----> Rebuilding the world ! <-----
-----> Building package list <-----
Sorry, can't find amsn
, is it already installed?
(Remove it first, or try running 'apt-get clean')
Sorry, can't find beep-media-player
, is it already installed?
nada de nada, alguna sugerencia?
gracias

Imagen de Anónimo

Probá con este comando:

apt-build --rebuild --reinstall install paquete

Imagen de Nevershine

Un comentario al excelente artículo,las opciones de apt-build (la mayoría) se ponen con --(o al menos a mi me funcionan así)
En un principio me salía lo que a Sargate al hacer apt-build world,pos bien,hice "apt-build --reinstall world" y ahora mismo está "trabajando".

Imagen de bull3tpr00f

Obtengo siempre error al intentar compilar cualquier aplicación

Ejemplo: $ sudo apt-build install memstat

.......
Se instalarán los siguientes paquetes NUEVOS:
  memstat
0 actualizados, 1 se instalarán, 0 para eliminar y 28 no actualizados.
Necesito descargar 10,1kB de archivos.
Se utilizarán 86,0kB de espacio de disco adicional después de desempaquetar.
Des:1 http://es.archive.ubuntu.com hoary/universe memstat 0.4 [10,1kB]
Descargados 9890B en 0s (15,3kB/s)
Imposible obtener http://es.archive.ubuntu.com/ubuntu/pool/universe/m/memstat/memstat_0.4_i386.deb  El tamaño 
difiere
E: No se pudieron obtener algunos archivos, ¿quizás deba ejecutar
apt-get update o deba intentarlo de nuevo con --fix-missing?

Por cierto el parametro 'sudo apt-build rebuild-repository' no se reconoce.
_______________________________________
Polo Norte

Imagen de Anónimo

Mi problema es q cuando le doy a sudo apt-get install apt-build m dice q no encuentra el paquete apt-build y x ejemplo para intalar cualqier cosa cn el apt-build mdice qno encuentra el apt.build claro esta xq no esta instalado..alguien puede ayudarm?