2009-05-12 16 views
8

Mi empresa tiene un producto de software que está escrito en C para una plataforma Linux, construido con autotools y distribuido a través de paquetes binarios. Para hacer los binarios, primero producimos un RPM fuente y luego compilamos la fuente del SRPM.paquetes de construcción de Linux para múltiples distribuciones y versiones

Actualmente solo proporcionamos paquetes RPM para Fedora 10 de 64 bits, pero queremos comenzar a proporcionar paquetes para múltiples distribuciones de Linux -tanto de 32 bits como de 64 bits- y posiblemente también diferentes versiones de cada distribución (por ej. Fedora 11 y Fedora 10).

He oído que la mejor manera de producir compilaciones para múltiples sabores de Linux es tener un único servidor de compilación y utilizar un entorno chrooted diferente para cada conjunto de paquetes que desee compilar. ¿Alguien tiene un buen recurso que explique esto con más detalle, tal vez con ejemplos de proyectos bien conocidos que utilizan este mecanismo de construcción, o tiene una mejor alternativa para lograr el mismo objetivo?

Respuesta

1

Usted puede usar LSB appchecker para probar la aplicación/dynlib/shell de compatibilidad de script: http://ldn.linuxfoundation.org/lsb/check-your-app. Después de eso, puede usar RPM para todas las distribuciones RPM y usar alien para todas las distribuciones apt-get y tar.gz para otras

+1

Mientras appchecker muestra valiosa información acerca de la compatibilidad, que no construye paquetes con las especificaciones de dependencia de distribución específica. –

1

Herramientas como checkinstall le ayudarán a producir paquetes para diferentes distros. Personalmente, si está buscando integrarse con los sistemas de gestión de paquetes existentes, también querrá alojar múltiples repositorios en sus servidores y proporcionar paquetes allí, luego haga que los usuarios configuren sus gestores de paquetes para extraer las aplicaciones de sus servidores.

0

Dependiendo de qué hace exactamente su software y qué dependencias tiene (si existe) en las bibliotecas locales, puede construir su software usando una distribución glibc más antigua y hacer que funcione en muchas distribuciones diferentes. Esto es lo que hacemos con InstallBuilder. Si no tiene dependencias en paquetes específicos, también es posible crear paquetes RPM o DEB que se ejecutarán en la mayoría de las distribuciones de Linux basadas en RPM o DEB. El desarrollo de Cross-Linux, en cualquier caso, no es fácil :) ¡Buena suerte!

0

Este es uno de los casos cubiertos por Bob Aiello en this article en agentes de construcción. We tienen varios clientes que utilizan este enfoque para construir en varias plataformas en paralelo.

+0

Gracias: nuestra infraestructura de compilación está en Amazon EC2, por lo que es posible utilizar agentes de compilación, pero preferiría mantener todo en un servidor de compilación si fuera posible para facilitar el mantenimiento (por ejemplo, si actualizamos la versión de algún paquete dependiente, No quiero tener que actualizar varias imágenes de la máquina de Amazon). –

Cuestiones relacionadas