¿Cuáles son las ventajas de build herramientas / librerías desde la fuente?

Al build desde la fuente, ¿obtienes algún beneficio? ¿El código está mejor optimizado para su architecture de hardware? ¿Está optimizado mejor en general?

¿Por qué alguien elegiría build desde la fuente en lugar de utilizar un sistema de gestión de packages como APT / yum? ¿Hay algún tipo de ganancia de optimization cuando eso supera el beneficio de un sistema de administración de packages?

La creación desde la fuente proporciona las siguientes opciones que no están disponibles cuando se utiliza una versión de un administrador de packages binarys.

La compilation desde la fuente te permite:

  • utilice optimizaciones específicas del procesador
  • usa la última versión
  • aprender cómo comstackr y vincular el trabajo (sugerencia de @mattdm)
  • corregir errores, trabajo de desarrollo
  • establecer opciones de time de compilation (por ejemplo, include funciones de X en vim)

He hecho esto exactamente muy recientemente.

Compilé openssl-1.0.something de la fuente en un sistema Slackware 11.0 linux. Quería parchar la contraseña de inicio de session para pausar durante 7 segundos en un inicio de session fallido, a fin de poner en context esos desagradables adivinos de passwords de ssh en chino.

Recopilé Apache httpd 2.2.17 en el mismo sistema Slackware 11.0 porque venía con Apache 2.0.something, y quería usar un http.conf 2.2.x de otro sistema.

Ahora que lo pienso, también compilé Alpine 2.0 (cliente de correo electrónico, follow-on de pino) para el mismo sistema. ¿Por qué Slackware 11.0? Se ejecuta en una máquina circa 2003 con charts Intel "Brookdale", y cualquier Slackware posterior simplemente no admite los charts Intel mal documentados.

En una máquina diferente, saqué la compatibilidad con chip inalámbrico TI ACX111 de github y compilé un nuevo controller, lo que me permitió usar una tarjeta inalámbrica de $ 9.

También recompilo habitualmente núcleos de Linux para que sean específicos de la máquina en la que se ejecutan.

Entonces, en mi caso, hay varias razones de personalización, soporte de hardware y "simplemente porque".

Dado lo que sabemos de la epidemiología en una población uniforme (http://www.usenix.org/publications/login/2005-12/openpdfs/geer.pdf), ¿por qué no todos comstackn desde la fuente en sus propios sistemas, con lo que sea? opciones de time de compilation que eligen? Eso haría una población mucho más resistente a virus y gusanos.