UBUNTU y apt-build.....que maravilla

Pues eso, los que les gusta el estilo de Gentoo de compilar todo lo que se inbstala, poer estan acostumbrados a paquetes DEB, a los apt-get, aptiutude synaptics y demás.
El otro dia empeceé a usar apt-build y es una autnteica gozada.

Os pongo unos pasos apare emepzar a usarlo y para que veais como mejora Ubunut y debian cuando inbstalasd paquetes compilados para tu sistema, sin tener que hacer nada.
Tan solo el tipico :
#apt-get install paquete


pero cambiando la orden por:

#apt-build install paquete


Hay que hacer unos cambios en el sources.list


lo primero es instalar el apt-build:

sudo aptitude install apt-build


Os nos preguntará por el nivel de optimización ; cuanto más alto mas tiempo tardaran las compilaciones, yo he hecho pruebas y apenas noto diferencia. Recomiendo dejarlo en Medio.

Editamos el sources.list y descomentamos todas las entradas que sean deb-src para disponer de las fuentes de los paquetes, si teneis repositorios extras fijaos que tambien dispongan de su correspondiente deb-src, pues si no hay fuentes no podemos compilar

sudo gedit /etc/apt/sources.list


Vereis que durante la instalación de apt-build se ha añadido una nueva fuente a sources.list que será parecido a esto:

deb file:/var/cache/apt-build/repository apt-build main

Esto es porque apt-build funciona haciendo un apt-get source para descargar el código fuente, compilándolo con dpkg-buildpackage y poniendo el paquete resultante en este nuevo repositorio local para que apt-get lo encuentre.

Ahora vamos a modificar el archivo /etc/apt/preferences para dar prioridad a este nuevo repositorio local:

sudo gedit /etc/apt/preferences



Añadiendo las líneas:
Package: *
Pin: release o=apt-build
Pin-Priority: 990


ahora cuando querais instalar un paquete que esté especificamente compilado para vuestro UBUNTU o DEbian en lugar de hacer apt-get install haced apt-build install.

Si el paquete que quereis "compilar" ya está instalado yo lo que hago es primero un apt-get remove y luego un apt-build install

Espero que os sea util
La cosa es...
¿se nota en el rendimiento?, y a que arquitecturas les beneficiara el cambio...
¿ahorra espacio al final?, porque si al hacerlo especifico nos quitamos algo de espacio vendra bien para distros propias, servidores y ultraportatiles con SSD
¿Que beneficios especiales da?

Porque hay que promover el porque de eso del "estilo Gentoo" (ahora recuerdo un par de dias que estube intalandolo en modo comandos desde 0 compilandolo todo uff).
Pues a mí eso de perder el tiempo compilando todos los programas, me parece eso: una pérdida de tiempo. Sobre todo con los pepinacos que hay ahora: el más barato de los ordenadores ya sirve y sobra para hacer vida normal en linux.

Y, por supuesto, si decidiese de todos modos perder el tiempo lo haría con una distribución pensada para ello como gentoo.

Aunque alguna vez he usado apt-build. En realidad, "aptitude build-dep" para saber cómodamente cuáles eran los paquetes que tenía que instalar para poder compilar un paquete del que debian sólo tenía la versión estable y del que yo necesitaba la inestable. El paquete era rtorrent.
Leí hace tiempo información acerca de eso por internet y la verdad me gustaría probar. Creo que probaré con una instalación desde 0 con lo justo y compilándolo todo a ver si se nota algun tipo de diferencia.
La verdad es que el Darkca ha compilado toda su debian con apt-build y dice que se nota MUCHO. El compilar programas se nota MUCHO en el rendimiento. Precisamente el tener cosas altamente genéricas es una de las grandes cruces de ubuntu.
APT no es algo de Ubuntu, sino que es algo proviniente de Debian y que todos los sistemas basado en él lo suelen traer.

Además, existe una opción (world) para el apt-build para recompilar todo el sistema completo. Por tanto si pones
# apt-build world
te recomilará el sistema completo. Es algo que no he probado y que no recomiendo hacerlo si no sabes bien lo que haces. Personalmente no creo que me compense andar compilando todo el sistema. Puede que sí que se note diferencia, pero yo al menos no tengo la necesidad y afán de optimizar hasta esos límites.

Saludos [bye]
resadent escribió:Precisamente el tener cosas altamente genéricas es una de las grandes cruces de ubuntu.


¿Que quieres decir con genéricas?

PD: No creo que se note tanto.
Si se nota, sí. Pero no se os ocurra hacerlo con el openoffice porque eso tarda más de medio día.

Y el apt-pinnig es en realidad la prioridad. Eso no tiene que ver nada, eso es para dar prioridad a una rama.
Yog-Sothoth escribió:
resadent escribió:Precisamente el tener cosas altamente genéricas es una de las grandes cruces de ubuntu.


¿Que quieres decir con genéricas?

PD: No creo que se note tanto.

A ver, quiero decir que el sistema y los programas en general están muy poco optimizados.
A ver, quiero decir que el sistema y los programas en general están muy poco optimizados.


¿seguro?
Omega69 escribió:APT no es algo de Ubuntu, sino que es algo proviniente de Debian y que todos los sistemas basado en él lo suelen traer.

Además, existe una opción (world) para el apt-build para recompilar todo el sistema completo. Por tanto si pones
# apt-build world
te recomilará el sistema completo. Es algo que no he probado y que no recomiendo hacerlo si no sabes bien lo que haces. Personalmente no creo que me compense andar compilando todo el sistema. Puede que sí que se note diferencia, pero yo al menos no tengo la necesidad y afán de optimizar hasta esos límites.

Saludos [bye]


Existe algo asi para Arch (pacman)??? Hombre, si se nota, no pierdo nada por probar...

Salu2!!!
analca3 escribió:Existe algo asi para Arch (pacman)??? Hombre, si se nota, no pierdo nada por probar...

Salu2!!!

ABS + makepkg
resadent escribió:La verdad es que el Darkca ha compilado toda su debian con apt-build y dice que se nota MUCHO. El compilar programas se nota MUCHO en el rendimiento. Precisamente el tener cosas altamente genéricas es una de las grandes cruces de ubuntu.


Darkca? escribe mi nick bien coñe xDD

Si, es cierto, yo tengo TODO el sistema compilado con apt-build en Debian, la verdad es que no lo aconsejo si no se tiene una CPU un poco rápida, por que aunque el rendimiento se nota, puede tardar bastante en compilar algunas cosas (el OpenOffice ni lo probeis xD)

Yo os recomiendo que si no queréis tardar mucho en compilar todo el sistema, que solo lo hagáis con aquellas aplicaciones que utilicéis mucho (como Firefox etc...)

PD: No me gusta tener algo en el PC que sé que no le saca provecho al 100 % a mi Hardware (por eso tengo Debian y de 64 bits, y compilada, Kernel incluido).
codestation escribió:
analca3 escribió:Existe algo asi para Arch (pacman)??? Hombre, si se nota, no pierdo nada por probar...

Salu2!!!

ABS + makepkg


Ya, pero existe algo parecido al descrito # apt-build world ?
@maeseoki: no creo, tal vez con yaourt pero no sabria decirte, solo le dedique un par de meses a arch.

[qmparto] [qmparto] Recuerdo la primera (y ultima vez) que compile openoffice y me tardo 13 horas.
Aunque me gustó mucho poder compilar desde fuentes en debian y arch, siempre eché de menos el poder modificar las dependencias de las aplicaciones que instalaba y regresaba a gentoo. Siempre me pregunte si habia algo parecido que pudiera usar con apt-get o pacman (por ejemplo no es mi idea instalar mysql+postgres al instalar una aplicación que dependiera de qt solo porque esta ultima tubiera una dependencia opcional en esos manejadores).
maeseoki escribió:
codestation escribió:
analca3 escribió:Existe algo asi para Arch (pacman)??? Hombre, si se nota, no pierdo nada por probar...

Salu2!!!

ABS + makepkg


Ya, pero existe algo parecido al descrito # apt-build world ?


http://bbs.archlinux.org/viewtopic.php?id=48957

El creador de dicha herramienta no es ni más ni menos que Cimitan, el padre del motor gtk: murrine.

En mi opinión, es una pérdida de tiempo.
codestation escribió: siempre eché de menos el poder modificar las dependencias de las aplicaciones que instalaba y regresaba a gentoo.



para eso sirve editar el PKGBUILD del paquete que vas a compilar...
resadent escribió:Precisamente el tener cosas altamente genéricas es una de las grandes cruces de ubuntu.


De Ubuntu y de todos los sistemas operativos. Esa es una fuente de buena parte de los fallos del software en general.
¿Cuando se compila, se optimiza al hardware o al kernel?
chiribe escribió:¿Cuando se compila, se optimiza al hardware o al kernel?


Al hardware :) pero más importante que compilar, es configurar tanto el núcleo, como el resto del software, con las opciones justas y necesarias.

Refiriéndonos a optimización, claro.
jorchube escribió:para eso sirve editar el PKGBUILD del paquete que vas a compilar...

Eso lo se, pero no habia una manera algo automatica de hacerlo y mantener un mini arbol abs no fue muy gratificante que digamos. Volviendo al tema, que CFLAGS usan generalmente al compilar desde fuentes? Llevo varios años usando un juego bastante sencillo( -march=core2 -O2 -pipe -msse3 -mssse3 -fomit-frame-pointer), ya que la mayoria no son muy recomendables y relamente deje de enfocarme en la optimización.
Ups, es verdad, en Arch esta ABS. Pues a ver si me animo con mis principales programas (firefox, amsn...)

PD: Si lo hago con este metodo, ¿pierdo configuraciones y demas?

Salu2!!!
analca3 escribió:Ups, es verdad, en Arch esta ABS. Pues a ver si me animo con mis principales programas (firefox, amsn...)

PD: Si lo hago con este metodo, ¿pierdo configuraciones y demas?

Salu2!!!

NO
POSDATA: Ferdy, 100%
EDIT1: ¿ alguien ha probado alguna vez a compilar gcc ?
POSDATA: Ferdy, 100%


Pues estás 100% equivocado en bastantes casos.

EDIT1: ¿ alguien ha probado alguna vez a compilar gcc ?


Claro.... como cualquier otro programa vaya...

- ferdy
resadent escribió:
analca3 escribió:Ups, es verdad, en Arch esta ABS. Pues a ver si me animo con mis principales programas (firefox, amsn...)

PD: Si lo hago con este metodo, ¿pierdo configuraciones y demas?

Salu2!!!

NO
POSDATA: Ferdy, 100%
EDIT1: ¿ alguien ha probado alguna vez a compilar gcc ?

Compilar un compilador, menudo bucle infinito.
peor es tener que compilar "a medias" un compilador, para compilar las bibliotecas necesarias para hacer una compilación cruzada del compilador...

creo que me he liado un poco, pero un amigo lo ha hecho (necesitaba un compilador para sparc virtualizado o algo asi, y le ha tocado hacer virguerías para conseguirlo)...

un saludo
codestation escribió:que CFLAGS usan generalmente al compilar desde fuentes? Llevo varios años usando un juego bastante sencillo( -march=core2 -O2 -pipe -msse3 -mssse3 -fomit-frame-pointer)

Yo cuando tengo que compilar algo ya directamente creo un paquete en mi repositorio personal del openSUSE Build Service. Así que los CFLAGS propios del sistema...
  • Para i586: -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
  • Para x86-64: -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
No sé por qué usan "-funwind-tables"... aunque "-D_FORTIFY_SOURCE=2 -fstack-protector", por seguridad, no está de más.

De las tuyas:
- Que yo sepa "-fomit-frame-pointer" está implícito en "-O2" en x86-64 (no en x86), así que no te hace falta.
- Si el man de gcc no me engaña "-march=core2" ya implica "-msse3 -mssse3".

Así que a la práctica estás usando "-march=core2 -O2 -pipe".
RedDwarf escribió:
codestation escribió:que CFLAGS usan generalmente al compilar desde fuentes? Llevo varios años usando un juego bastante sencillo( -march=core2 -O2 -pipe -msse3 -mssse3 -fomit-frame-pointer)

Yo cuando tengo que compilar algo ya directamente creo un paquete en mi repositorio personal del openSUSE Build Service. Así que los CFLAGS propios del sistema...
  • Para i586: -march=i586 -mtune=i686 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
  • Para x86-64: -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
No sé por qué usan "-funwind-tables"... aunque "-D_FORTIFY_SOURCE=2 -fstack-protector", por seguridad, no está de más.

De las tuyas:
- Que yo sepa "-fomit-frame-pointer" está implícito en "-O2" en x86-64 (no en x86), así que no te hace falta.
- Si el man de gcc no me engaña "-march=core2" ya implica "-msse3 -mssse3".

Así que a la práctica estás usando "-march=core2 -O2 -pipe".


Lo del fomit-frame-pointer implicito en O2 lo sabia, pero algunos ebuilds en gentoo cambian O2 por O0, asi que pongo ese flag de todas maneras para siempre lo tome. Respecto a lo del sse3 no lo sabia ya que hace poco actualize a gcc 4.3 y aproveche en cambiar nocona por core2. Lei la descripción del funwind-tables y no me parece que la vaya a necesitar aunque D_FORTIFY_SOURCE y fstack-protector parecen interesantes para agregarla a mi lista de CFLAGS. Gracias por el comentario, saludos.
Ferdy escribió:
POSDATA: Ferdy, 100%


Pues estás 100% equivocado en bastantes casos.

Pueees. ¿Has leído el nombre del kernel?
Como teneis vuestro apt-build.conf ??

El mio tras una instalacion nueva ha quedado así , pero no creo que lo tenga bien :

build-dir = /var/cache/apt-build/build
repository-dir = /var/cache/apt-build/repository
Olevel = -O3
mtune = -mtune=opteron-sse3
options = " "
make_options = "-j3"


El procesador es un Opteron 180 Socket 939
Sirve de algo un rebuild del sistema si no has cambiado para nada los CFLAGS o CXXFLAGS ?

Yo ahora estoy haciendo un rebuild del arch con pacbuilder y los CFLAGS y CXXFLAGS que recomiendan en el wiki de gentoo para mi atom n270; ya os comentaré si noto algo.
Weno, voy a echarle huevos al asunto.

Una duda, para compilar el entorno grafico y el kernel (lo mas importante creo yo) que paquetes deberia escoger?
4eVaH escribió:Sirve de algo un rebuild del sistema si no has cambiado para nada los CFLAGS o CXXFLAGS ?

Yo ahora estoy haciendo un rebuild del arch con pacbuilder y los CFLAGS y CXXFLAGS que recomiendan en el wiki de gentoo para mi atom n270; ya os comentaré si noto algo.

http://wiki.canaima.softwarelibre.gob.v ... os_y_flags

Arch ni idea.

Namco69. El kernel no se compila con apt-build xD,

El entorno de escritorio sigue siendo los mismos paquetes que apt. Por ejemplo Gnome-core o kde-minimal, es el escritorio sin nada.
Snakefd99cb escribió:Namco69. El kernel no se compila con apt-build xD,

.

mierda xD

otra cosa... ya he compilado unos pocos paquetes, y ahora cada vez que hago apt-get upgrade me dice qe hay qe actualizarlos. Por mucho que le de a que "sí" y los actualice, al volver a usar el comando me dice qe hay qe actualizarlos.

Alguna sujerencia¿
¿con apt-build se puede elegir las opciones del "configure" correspondiente o simplemente se trata de cambiar los parámetros del gcc?
Snakefd99cb escribió:
4eVaH escribió:Sirve de algo un rebuild del sistema si no has cambiado para nada los CFLAGS o CXXFLAGS ?

Yo ahora estoy haciendo un rebuild del arch con pacbuilder y los CFLAGS y CXXFLAGS que recomiendan en el wiki de gentoo para mi atom n270; ya os comentaré si noto algo.

http://wiki.canaima.softwarelibre.gob.v ... os_y_flags

Arch ni idea.


Los CFLAGS para mi máquina ya los sé, sólo preguntaba porque, como he visto que el que escribe el hilo no ha comentado nada de los C[XX]FLAGS, tal vez no los ha revisado, y a lo mejor está haciendo rebuild del sistema con los mismos C[XX]FLAGS con los que compilan para ubuntu por defecto, y eso si que sería una gran cagada.
4eVaH escribió:
Snakefd99cb escribió:
4eVaH escribió:Sirve de algo un rebuild del sistema si no has cambiado para nada los CFLAGS o CXXFLAGS ?

Yo ahora estoy haciendo un rebuild del arch con pacbuilder y los CFLAGS y CXXFLAGS que recomiendan en el wiki de gentoo para mi atom n270; ya os comentaré si noto algo.

http://wiki.canaima.softwarelibre.gob.v ... os_y_flags

Arch ni idea.


Los CFLAGS para mi máquina ya los sé, sólo preguntaba porque, como he visto que el que escribe el hilo no ha comentado nada de los C[XX]FLAGS, tal vez no los ha revisado, y a lo mejor está haciendo rebuild del sistema con los mismos C[XX]FLAGS con los que compilan para ubuntu por defecto, y eso si que sería una gran cagada.


Pues la verdad es que no he revisado los C[XX]FLAGS.

No obstante no he hecho una compilacion completa, solo compilo los paquetes que voy instalando.

Si alguien domina mas el tema de los FLAGS que se curre un tutorial y probamos.

Yo arriba ya he posteado el apt-build.conf que he hecho para mi opteron 180
4eVaH escribió:
Snakefd99cb escribió:
4eVaH escribió:Sirve de algo un rebuild del sistema si no has cambiado para nada los CFLAGS o CXXFLAGS ?

Yo ahora estoy haciendo un rebuild del arch con pacbuilder y los CFLAGS y CXXFLAGS que recomiendan en el wiki de gentoo para mi atom n270; ya os comentaré si noto algo.

http://wiki.canaima.softwarelibre.gob.v ... os_y_flags

Arch ni idea.


Los CFLAGS para mi máquina ya los sé, sólo preguntaba porque, como he visto que el que escribe el hilo no ha comentado nada de los C[XX]FLAGS, tal vez no los ha revisado, y a lo mejor está haciendo rebuild del sistema con los mismos C[XX]FLAGS con los que compilan para ubuntu por defecto, y eso si que sería una gran cagada.


Que conf editas para cambiarle las flags en pacbuilder? estoi decidido a probar
lanchazo escribió:Que conf editas para cambiarle las flags en pacbuilder? estoi decidido a probar


Te contesto en el hilo de Arch.
Pues no me compila el Firefox 3, le faltan dependencias que no encuentra... xD
Gromber escribió:Pues no me compila el Firefox 3, le faltan dependencias que no encuentra... xD



Has seguido el tutorial para descomentar los repositorios SOURCE ??
Edit: Ya esta, ya lo he conseguido, gracias por la ayuda, a tardado poquisimo y parece que funciona mejor.
Para un intel Atom 270 que arquitectura eligo?
http://en.gentoo-wiki.com/wiki/Safe_Cfl ... #Atom_N270

Yo desde un principio lo veo lógico, pero con medio si, medio no, es una perdida de tiempo.
Nota para los que querais hacer esto con Karmic:

Crear un archivo "preferences" en /etc/apt/ y poned esto en su interior para dar preferencia a los paquetes compilados por vosotros a los precompilados :

Package: *
Pin: release o=apt-build
Pin-Priority: 1001
45 respuestas