Las personas que realmente conocen la respuesta a esta pregunta son aquellas que desarrollan programas o bibliotecas que están incluidas en las distribuciones de Linux y que dependen de otras bibliotecas que se incluyen en las distribuciones de Linux. El solo decirme qué hacen en términos del entorno de desarrollo que describo sería útil.¿Qué son buenas distribuciones de Linux (y métodos) para desarrollar los últimos paquetes de Linux en sentido ascendente (kernel, Gnome, etc.)?
El problema es básicamente así:
distribuciones de Linux lían el núcleo de Linux con Linux típica de fontanería - simplista, dbus, udev y similares. La mayoría también incluye entornos de escritorio como KDE o Gnome.
Si bien la distribución puede tener algunos paquetes propios del paquete de paquetes, la mayoría de los programas y bibliotecas provienen de fuentes anteriores, lo que significa fuentes distintas a él. Los paquetes como dbus son "ascendentes" y fluyen hacia abajo a distribuciones como Debian, Fedora, Ubuntu y similares.
A veces utilizo estos programas y siento que se pueden mejorar. Algunas de las mejoras son correcciones de errores con las que no se puede discutir, digamos un pequeño parche que evita que una falla de segmentación provenga de una violación innecesaria de la memoria.
Al compilar estos paquetes, una cosa es que las distribuciones son listas "dependientes", ya que muchos de estos programas dependen de ciertas bibliotecas (y ciertas versiones de esas bibliotecas), y algunas de esas bibliotecas dependen de otras bibliotecas. Esto lleva a algunas de las complicaciones que estoy enfrentando.
Si encuentro un error en un programa o biblioteca y lo informo en sentido ascendente, una pregunta frecuente es: "¿está utilizando la última versión en control de código fuente o una versión anterior?". Es comprensible que los desarrolladores quieran que use el código de la última confirmación, ya que no quieren perder tiempo recorriendo terreno que ya han cubierto, especialmente si el error ha sido resuelto.
Así que voy a obtener la última confirmación. Pero luego me encuentro con un problema porque el último compromiso ahora depende de una biblioteca que es más nueva de lo que usa mi sistema operativo.
Un ejemplo podría ser si estoy mirando un PDF con el lector predeterminado en Ubuntu, evince. No se muestra correctamente debido a que lo que parece ser un defecto en la biblioteca poppler de la que depende depende. Entonces publico un error, pero quieren saber si tengo la última versión de poppler. Así que descargué la última confirmación de poppler, pero la biblioteca poppler depende de la biblioteca de cairo, y mi sistema operativo no tiene la última biblioteca de cairo. Así que tengo que conseguir eso, pero luego Cairo se queja de que no tengo las últimas bibliotecas pixman y x11.
Este es un ejemplo de esto, pero vale prácticamente para cualquier paquete.
Así que mi pregunta es, ¿qué es una buena distribución de Linux para este tipo de cosas? ¿Uno que es conocido por tener los paquetes más actualizados, o al menos la opción de obtenerlos fácilmente?
O tal vez una distribución de Linux que me permite hacer tales cosas más fácilmente. He escuchado hablar sobre cómo Gentoo construye desde la fuente a través de emerge, y pude ver que esto solucionaba muchos problemas.
También existe la opción de tener un subsistema de los últimos paquetes en un entorno chrooted dentro de otro sistema utilizando herramientas como pbuilder y debootstrap.
Por último, podría descargar los últimos commits de todas las bibliotecas, compilar el primero sin dependencias que me preocupen primero, y luego ir al siguiente y compilarlo, señalando el programa para utilizar mi biblioteca local compilada , no la biblioteca del sistema, y luego hacer eso de nuevo y así sucesivamente. Esto es lo que trato de evitar por varias razones (demasiada manipulación manual, podría pasar por alto una dependencia importante, etc.)
Con respecto a mi pregunta anterior, descubrí que Gnome tiene un sistema de compilación llamado "jhbuild" (http://live.gnome.org/Jhbuild) donde puede obtener las últimas versiones de Git commit de todo el proyecto Gnome . Entonces esa sería la solución al ejemplo de arriba. Estoy de acuerdo en que los KVM son un buen entorno para jugar sin preocuparme por demasiado daño. He comenzado a hacerlo más después de leer las respuestas. Gracias por las respuestas –