Siguiendo un poco las temáticas de Java investigué como distribuir una aplicación pero empaquetandola como un .deb, es decir, un paquete Debian; encontré este artículo en inglés que quiero compartirlo con ustedes y tratar de hacerlo un poco más gráfico.
Quiero mencionar antes de empezar que esto solo tiene lógica si la aplicación trabaja por si sola sin utilizar recursos externos, y por externos me refiero a por ejemplo un servidor de base de datos como MySQL, Oracle, PostgreSQL, etc, si utiliza base de datos lo mejor es que sea embebida porque sino carece del sentido de empaquetarlo de esta manera, según mi punto de vista, a no ser que ya este preparada para conectarse a un servidor central.
Primero un poco de la nomenclatura que vamos a utilizar, en GNU/Linux los ejecutables sh de la mayoría de aplicaciones van dentro de /usr/bin , luego la aplicación en sí y sus librerías deben estar en /usr/lib y el icono para integrar el menú en /usr/share/carpeta-de-aplicacion como se muestra a continuación:
1 2 3 4 |
/usr/bin/mi_aplicacion [Ejecutable sh] /usr/lib/mi_aplicacion/mi_aplicacion.jar [jar principal] /usr/lib/mi_aplicacion/librerias_de_mi_aplicacion.jar [librerías] /usr/share/doc/mi_aplicacion/icon.gif [icono] |
Si no tienen una aplicación Java a la mano, les dejo un hola mundo que podemos utilizar para el ejemplo, descargar-->AQUI.
Abrimos un navegador de archivos como nautilus y vamos a nuesta carpeta personal y creamos un arbol de carpetas como este:
1 2 3 4 5 |
hola-mundo/DEBIAN hola-mundo/usr/lib/hola-mundo hola-mundo/usr/bin hola-mundo/usr/share/hola-mundo hola-mundo/usr/share/applications |
Dentro de hola-mundo/DEBIAN creamos un archivo de nombre "control" con la información básica de nuestra aplicación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Package: hola-mundo Version: 1.0 Section: web Priority: optional Architecture: all Maintainer: hug0tux <hug0@garabatoslinux.net> Installed-Size: 171 Description: Esta es la descripción del paquete. Si necesitan más lineas para escribir la descripción deben asegurarse que cada línea comience con un espacio como se ve aqui para que no se interprete como un campo. . Las lineas vacias se representan por un punto. |
Dentro de hola-mundo/usr/lib/hola-mundo arrojamos los archivos de nuestra aplicación, en el caso de la aplicación java que les di de ejemplo son estos:
En hola-mundo/usr/bin creamos un archivo de texto llamado "hola-mundo" con este contenido:
1 2 |
#!/bin/bash java -jar /usr/lib/hola-mundo/hola-mundo.jar |
Este va a servir para ejecutar el jar en la ubicación dada. Debemos recordar otorgarle permisos de ejecución ya sea haciendo clic derecho y luego en propiedades>>permisos.
O por consola con el comando:
1 |
chmod +x hola-mundo |
En hola-mundo/usr/share/hola-mundo arrojamos el icono que utilizaremos para la aplicación.
Hoy creamos un lanzador para poder agregarlo al menú principal de nuestra distribución, esto lo he probado en Cinnamon por lo que probablemente funcione en Gnome y derivados como Xfce. En hola-mundo/usr/share/applications creamos un archivo de texto llamado "hola-mundo" con el siguiente contenido:
1 2 3 4 5 6 7 8 9 10 |
[Desktop Entry] Encoding=UTF-8 Name=Hola Mundo Comment=Aplicación de ejemplo Exec=/usr/bin/hola-mundo Icon=/usr/share/hola-mundo/icon.png Terminal=false Type=Application Categories=GNOME;Application;Other StartupNotify=true |
- Name: Es el nombre de la aplicación
- Comment: Un comentario que aparecerá junto con el nombre de la aplicación.
- Exec: Ruta del ejecutable.
- Icon: Ruta del icono.
- Terminal: Si se ejecuta mediante terminal.
- Categories: Ruta que seguirá en el menú.
Después de guardado lo renombrados a "hola mundo.desktop".
Con esto creo que ya hicimos lo necesario en como debe quedar la "nomenclatura" para construir el paquete. Abrimos una terminal y nos posicionamos en donde tenemos la carpeta principal de todo el proyecto, en este caso nuestra carpeta personal y digitamos este comando:
1 |
hug0@hug0 ~ $ dpkg --build hola-mundo |
En su carpeta personal se habrá creado un paquete llamado hola-mundo.deb. Si lo abrimos con el instalador de aplicaciones (GDebi) podremos ver la información sobre el.
Lo instalas como harías con cualquier otro programa, para probarlo lo primero es revisar el menú.
También lo podemos ver en Synaptic después de haber recargado los repositorios.
Podes digitar "hola-mundo" en una terminal e igual la aplicación debe abrir. Y si lo queres desinstalar tambien funciona en terminal con:
1 |
sudo apt-get remove hola-mundo |
Espero que les sea de mucha ayuda, intenté hacerlo lo más "paso a paso" que puede, si en algo me he equivocado o le puedo mejorar estoy abierto a los comentarios.
Hasta luego amigos.
Fuente: http://garabatoslinux.net/como-crear-un-paquete-deb-de-una-aplicacion-java.html