Cargando



Crear instaladores de aplicaciones en diferentes distribuciones Linux

Pasos para saber crear instaladores para aplicaciones de múltiples distribuciones / plataformas Linux / Unix.


ago 28 2015 12:44
Avanzado
ago 28 2015 12:48
Cuando creamos una aplicación siempre debemos tener un método de distribuidor e instalación que se fácil para el usuario y debemos tener en cuenta que si nuestra aplicación esta pensada para múltiples plataformas y los usuarios les gusta instalar y utilizar programas de forma nativa, por ello veremos como hacer instalador en distintas plataformas.

Veamos como ejemplo un sencillo programa realizado en Java. Podemos hacer un Jframe, un Desktoppane, un label y un botón una simple aplicación. Luego la compilamos para que cree el paquete jar. A continuación veremos como distribuir nuestra aplicación.

instaladores-linux.jpg


Linux Ubuntu/Debian/Mint y derivados – Paquetes DEB


Para distribuir una aplicación en una distribución Linux basada en Debian es mejor empaquetarla como un .deb, es decir, un paquete Debian.

Es importante mencionar que este empaquetado no instalará recursos externos, como por ejemplo un servidor de base de datos como MySQL, si utiliza base de datos lo mejor es que sea embebida como SQLITE o bien que ya este preparada para conectarse a un servidor donde se encuentre la base de datos.

Veamos la estructura del proyecto de instalación que vamos a utilizar, en Linux los ejecutables sh normalmente se instalan en la carpeta /usr/bin aunque es optativo, luego la aplicación propiamente dicha y sus librerías suelen instalarse en la carpeta /usr/lib y el icono para integrar el menú en /usr/share/carpeta-de-instalacion como se muestra a continuación:

/usr/bin/tutoriales.sh [Script ejecutable sh o run]
/usr/lib/tutoriales/tutoriales.jar [jar de ejecucion java]
/usr/lib/tutoriales/librerias_tutoriales.jar [librerías varias]
/usr/share/doc/tutoriales/icono.gif [icono de la aplicación java]

Abrimos un explorador de archivos y creamos una carpeta de aplicación tutoriales, es importante que sea fácilmente accesible luego desde la terminal, para crear la estructura de instalación. Creamos la siguiente estructura de carpetas:

instaladores-linux2.jpg


A continuación dentro de la carpeta DEBIAN, creamos un archivo de texto sin ninguna extensión al que denominaremos control. Este archivo contendrá las especificaciones y descripciones para que Linux muestre la información al usuario de nuestra aplicación:

Veamos el ejemplo de configuración, creamos el archivo y escribimos el contenido siguiente:

Package: Tutoriales
Version: 2,0
Section: Documentation
Priority: optional
Architecture: all
Maintainer: innovesoft <info@innovesoft.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.

Grabamos el archivo control.

Algunos campos son importantes y requieren parámetros ya estandarizados:

Section: Este campo especifica un área de aplicación en el que el paquete ha sido clasificado. _La lista de secciones estandarizada por Debian se puede ver aquí https://packages.debian.org/jessie/

En este caso tutoriales podría ir en la sección Documentación o Educación.

Priority: Este campo representa que tan importante que es que el usuario instale este software, los parámetros que acepta son required, important,standard,optional y extra.

En este caso lo definimos como optional.

Architecture: es la arquitectura necesaria para ejecutar la aplicación 32 bit, 64 bit o ambas, los parametros son; all, i386 amd64.

A continuación dentro de la carpeta tutoriales/usr/lib/tutoriales/ copiamos todos los archivos compilados finales de nuestra aplicación, en el caso de la aplicación java debemos copiar el jar.

Luego crearemos un archivo dentro de la carpeta tutoriales/usr/bin generamos un archivo de texto llamado tutoriales.sh con el siguiente script bash que apunta al archivo ejecutable
#!/bin/bash

java -jar /usr/lib/tutoriales/tutoriales.jar
Grabamos como tutoriales.sh Este script bash es un ejecutable en linux que a su vez ejecutara el archivo jar en la carpeta que indicamos. Debemos recordar otorgarle permisos de ejecución mediante la terminal con el comando:
chmod +x tutoriales.sh
A continuación asignaremos un icono a nuestra aplicación, dentro de la carpeta tutoriales/usr/share/hola-mundo arrojamos el icono que utilizaremos para la aplicación.

instaladores-linux3.jpg


Ahora deberemos crear el archivo con las especificaciones para que el instalarse se añada automáticamente un lanzador o acceso directo al menú principal de nuestra distribución Linux.

Dentro de la carpeta tutoriales/usr/share/applications creamos un archivo de texto denominado tutoriales con el siguiente contenido:

[Desktop Entry]
Encoding=UTF-8
Name=Tutoriales
Comment=Tutoriales instructivos de autoaprendizaje
Exec=/usr/bin/tutoriales
Icon=/usr/share/tutoriales.png
Terminal=false
Type=Application
Categories=Education;Documentation;Other
StartupNotify=true
Guardamos el archivo tutoriales sin extensión, después de guardado lo renombramos a tutoriales.desktop.
Los campos para generar una entrada de menú son:
Name: es el nombre de la aplicación que se mostrara en el menú.
Comment: Un comentario que aparecerá junto con el nombre de la aplicación.
Exec: Ruta del archivo ejecutable.
Icon: Ruta del archivo del icono.
Terminal: especifica si en forma visual o se ejecuta mediante terminal.
Categories: especifica que categoría de menú contendrá a la aplicación, en este caso aplicamos tres categorías posibles, educación, documentación y otros. Adoptara la que este disponible.

Las categorías estandarizadas son http://standards.fre...tegory-registry.
Ahora tenemos todos los elementos y la estructura necesaria para construir el paquete DEB. Abrimos una ventana de terminal y vamos a donde tenemos la carpeta principal con todos los archivos que creamos, en este caso nuestra carpeta home y escribimos el siguiente comando para crear el paquete DEB.
dpkg --build tutoriales

instaladores-linux4.jpg


El resultado podemos verlo tanto en la terminal como en el explorador de archivos, ahora el archivo deb es un instalador independiente que podemos añadir en los repositorios o compartir con otra personas.

instaladores-linux5.jpg


Instalar y desinstalar paquetes DEB usando el comando dpkg


El comando dpkg es el que se usa para manejar paquetes .deb, desde la terminal con dpkg podemos instalar, eliminar y obtener información sobre un paquete .deb.

Generalmente se utilizan en conjunto con la herramienta y comando apt-get. Si una dependencia o requerimiento de la aplicación no se encuentra o tuviese algún problema, dpkg no permitirá que el software se instale y se ayudara con apt-get para mostrarnos una lista de dependencias que deben ser instaladas previamente para poder instalar el software, en nuestro caso necesitamos el Java Runtime. Mediante dpkg instalamos el paquete .deb, pero es importante tener en cuanta dpkg no descargara nada.

Para instalar paquetes con dpkg usamos la opción -i , ejemplo:
dpkg -i tutoriales.deb
Para desinstalar utilizamos
dpkg -r tutoriales.deb
También con el comando apt-get
apt-get remove tutoriales
Otra opción de instalación es a través del la herramienta GDebi, seleccionamos el archivo deb con un clic derecho y seleccionamos la opción Abrir con Instalador de paquetes GDebi.

instaladores-linux6.jpg


Gdebi permite instalar paquetes deb que tengamos descargados y buscará, resolverá e instalará sus dependencias, siempre y cuando estén en los repositorios. Esta herramienta funciona igual que apt-get..

instaladores-linux7.jpg


A continuación hacemos clic en instalar paquete y se iniciará el proceso de instalación e inclusive podremos ver en forma detallada los pasos y acciones que va haciendo el instalador.

instaladores-linux8.jpg


Si no se encuentra ningún problema al finalizar la instalación, podremos ver nuestra aplicación en el menú que tengamos, en este caso utilizamos un Linux Mint con Mate, debería funcionar en la mayoría de los escritorios XFCE, Gnome, Cinnamon, etc

instaladores-linux9.jpg


Hasta aquí hemos creado un paquete deb para distribuir nuestras aplicaciones en Linux con Debian y derivados. Para pero estos archivos no sirven para distribuciones como Fedora/Centos ya que usan archivos de instalación rpm.

Convertir archivo DEB a RPM


Podemos convertir archivos DEB a paquete RPM con el comando Alien. Instalamos la herramienta desde la terminal
sudo apt-get install alien
Luego escribimos el comando de conversión:
alien -r -c tutoriales.deb
que nos generara el archivo
Tutoriales-2.0-2.noarch.rpm
Una vez que se genero el archivo rpm, los copiamos en Red Hat, Fedora o CentOS.
Para instalarlo utilizaremos el siguiente comando:
rpm -ivh Tutoriales-2.0-2.noarch.rpm

¿Te ayudó este Tutorial?


1 Comentarios


Juan Carlos
ago 29 2015 03:32

Muy interesante para crear en Linux instaladores, me ha gustado mucho Sergio.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X