Como crear un paquete .deb de una aplicación Java

Imprimir

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

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

Tags: ,