tagger tag puddletag mp3tag mac kid3 editar easytag linux binary packages package software-distribution

linux - mp3tag - puddletag



¿Cuál es la mejor manera de distribuir una aplicación binaria para Linux? (8)

Cree un archivo .tar.bz2 con el archivo binario y luego publíquelo como se muestra a continuación:

<?xml version="1.0" ?> <interface uri="http://mysite/myprog.xml" xmlns="http://zero-install.sourceforge.net/2004/injector/interface"> <name>MyProgram</name> <summary>what it does</summary> <description>A longer description goes here.</description> <implementation main=''bin/myprog'' id="sha1new=THEDIGEST" version=''1.0''> <archive href=''http://mysite/myprogram-1.0.tar.bz2'' size=''10000''/> </implementation> </interface>

Firma con tu llave GPG. Puede usar las herramientas en 0install.net para calcular el resumen y agregar la firma GPG para usted en el formato correcto.

Luego, colóquelo en su sitio web en la dirección en el atributo uri . Cualquier usuario en la mayoría de las distribuciones de Linux (por ejemplo, Ubuntu, Fedora, Debian, Gentoo, ArchLinux, etc.) puede instalar y ejecutar su programa con:

0launch http://mysite/myprog.xml

Su sistema también buscará actualizaciones periódicamente. Hay varias GUI para los diferentes entornos de escritorio, pero la línea de comandos funcionará en todas partes.

También mire algunos de los feeds existentes en busca de inspiración.

Acabo de terminar de portar una aplicación de Windows a Linux.
Tengo que crear un instalador de la aplicación.
La aplicación no es de código abierto => Debería distribuir los archivos binarios de la aplicación (archivo ejecutable, archivos .so par, archivos de ayuda e imágenes).

Encontré varios métodos para hacerlo:
- paquetes RPM y DEB ;
- instalador en archivos .sh ;
- Autopackage .

No me gusta el primer método (paquetes RPM y DEB) porque no quiero mantener diferentes paquetes para diferentes distribuciones de Linux.

¿Cuál es la mejor forma de distribuir una aplicación binaria para Linux?


Es posible instalar un RPM en Debian y un APT en RHEL.

Si vas a vincular estáticamente este programa o vincular dinámicamente solo las bibliotecas que distribuirás en el paquete, entonces no importa mucho cómo lo distribuyas. La forma más simple es tar.gz y eso funcionaría.

OTOH si está enlazado dinámicamente con las bibliotecas del sistema, y ​​particularmente si tiene dependencias en bibliotecas dinámicas que se compartirán con las otras aplicaciones del cliente, entonces necesitará hacer RPM, APT o ambos.


Es posible que desee probar InstallBuilder . Es crossplatform (se ejecuta en Windows, Linux, Mac OS X, Solaris y casi cualquier otra plataforma Unix). Es utilizado por Intel, Motorola, GitHub, MySQL, Nokia / Trolltech y muchas otras compañías por lo que estará en buena compañía :) Además de los instaladores binarios, también puede crear paquetes RPM y DEB de distribución cruzada.

InstallBuilder es comercial, pero ofrecemos licencias gratuitas para programas de código abierto y descuentos muy significativos para mISV o desarrolladores individuales, solo escríbanos un mensaje.


Habiendo pasado por esto un par de veces con productos comerciales, creo que la mejor respuesta es usar el instalador nativo para cada plataforma compatible. Cualquier otra cosa produce una experiencia desagradable para el usuario final y, en la práctica, debe probar en todas las plataformas que desea admitir de todos modos, por lo que no es una carga significativa mantener paquetes para cada una. La idea de que pueda crear un archivo binario que pueda "funcionar" en todas las plataformas, incluso algunas de las que nunca haya escuchado, simplemente no funciona del todo bien.

Mi recomendación es que elijas inicialmente una o dos plataformas para apoyar (Red Hat y Ubuntu serían mis sugerencias) y luego dejar que el usuario exija la creación de paquetes de instalación adicionales. Quizás haga saber que está dispuesto a admitir plataformas adicionales, por una tarifa modesta que cubre su tiempo y esfuerzo en el empaquetado y las pruebas en esa plataforma. Si una plataforma resulta ser muy diferente, es posible que deba cobrar más por el soporte continuo.

Ah, y no puedo exagerar el valor de las máquinas virtuales para escenarios como este. Debe crear máquinas virtuales para cada plataforma que admita, y tal vez varias máquinas virtuales por plataforma para que resulte fácil probar diferentes configuraciones.


Hubo muchas buenas respuestas (la mía incluida :)) aquí . Aunque se trata más de compatibilidad binaria (de la que debe preocuparse).

Para el instalador recomendaría el autopackage (hemos lanzado varias versiones de nuestro software con éxito), ya hicieron la parte "installer.sh" y más (integración de escritorio, por ejemplo).

Debe tener cuidado y probar sus escenarios de actualización y demás, dependiendo de cuán compleja sea la estructura del paquete, pero es bastante ordenada en general. Solucioné algunos errores con el manejo de la dependencia en 1.2.6, por lo que debería estar bien.


No hay la mejor manera (universalmente hablando). tar.gz los binarios, eso debería funcionar.


También estudié esto en el trabajo y tendría que aceptar que realmente no hay una "mejor manera". Si su aplicación se distribuye como fuente, entonces elegiría los métodos make / configure empaquetados en tar.gz. Eso parece bastante universal en el mundo de Linux.

Una buena manera de tener una idea de qué hacer es mirar una organización más grande y ver cómo distribuyen sus binarios.


Te cuento una posibilidad adicional, aunque no conozco su estado: el instalador de Loki . Loki era una compañía que hacía videojuegos para Linux. Cayó en 2002, pero el instalador está disponible.

InstallShield también está disponible para Linux . Sin embargo, no tengo idea del estado.

Aunque muchas personas le proponen que vaya con tar.gz, no lo haga. Supongo que desea proporcionar una experiencia agradable para el procedimiento de instalación a sus usuarios. Una tar.gz es una de las opciones de bajo consumo, baja calidad y baja calidad que puede hacer. Funciona en todas partes porque básicamente no hace nada, como sabes.

Los chicos de freedesktop.org y LSB son bastante claros sobre dónde poner cosas. Lo que necesitas es un programa amigable para hacer eso. Autopackage imho tiene los números (me encanta), pero a pesar de su edad, no he visto un solo programa distribuido como autopaquete.

Evalúe con cuidado, pero no omita la posibilidad de ser parte del impulso a favor de ella, simplemente porque no es popular. Si funciona para usted, y funciona para sus usuarios, todo lo demás no importa.