Cómo distribuir nuestro software en Ubuntu y otras distros

Si son programadores o no y quieren un método de instalar esa aplicación o script, aquí les dejo varios métodos.
Paquete DEB con Fuentes (Solo para debian y Derivados)

Este método es para cuando tenemos el código fuente de la aplicación.

Primero instalamos el programa que hace la magia «checkinstall», en una terminal ejecutamos

sudo aptitude install checkinstall

Para el ejemplo usaremos la librería «LAME», descargan el fuente desde aquí, creamos una carpeta y colocamos el archivo lame-3.98.4.tar.gz y desde terminal como root entramos a dicha carpeta y ejecutamos estas lineas.

tar -xzvf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure
make
checkinstall
cp *.deb ../
cd ..
rm -R lame-3.98.4
chmod 777 lame-3.98.4*.deb

Nos genera el paquete deb, este método instala el paquete generado al finalizar.

Paquete DEB Manual (Solo para debian y Derivados)

Este método es para nuestros scripts o aplicaciones precompiladas

Estructura de un Paquete DEB

|Setup                   (Carpeta General)
|
|-DEBIAN                 (Carpeta donde están los archivos de Configuración)
|--control               (Archivo de configuración)
|--preinst               (Archivo o Script que se ejecuta antes de Instalar)
|--postinst              (Archivo o Script que se ejecuta luego de Instalar)
|--prerm                 (Archivo o Script que se ejecuta antes de desinstalar)
|--postrm                (Archivo o Script que se ejecuta luego de desinstalar)
|
|-usr                    (Carpeta donde están los archivos de tu aplicación)
|-usr/bin                (Carpeta donde están los binarios o scripts)
|-usr/share/pixmaps      (Carpeta donde están los iconos)
|-usr/share/applications (Carpeta donde están los lanzadores)

Ejemplo de archivo «control»

Package: TUPAQUETE
Version: VERSION
Architecture: amd64 (i386 o all)
Maintainer: AUTOR
Section: partner/web
Priority: optional
Description: TEXTO

Generando un Paquete DEB

sudo chmod -R root:root setup/
sudo chmod -R 755 setup/
sudo dpkg -b setup/ paquete.deb
chmod 777 paquete.deb
chown -R setup

Con estos datos ya se puede generar un paquete deb para nuestra aplicación, como ejemplo vamos a hacer un script bash simple

Creamos una carpeta de nombre «ubunlog» y dentro de esta otra de nombre «setup»
luego dentro de la ultima carpeta creamos dos carpetas una de nombre «DEBIAN» y otra «usr».

Este es el archivo de control

Package: ubunlog-web
Version: 0.11.5.13
Architecture: all
Maintainer: TU NOMBRE
Section: partner/web
Priority: optional
Description: Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu

Lo guardamos dentro de la carpeta «DEBIAN» que creamos antes como «control»

Este código es del archivo postinst

#!/bin/sh
chmod 755 /usr/bin/ubunlog-web
chmod +x /usr/bin/ubunlog-web
chmod 755 /usr/share/pixmaps/ubunlog-web.png
chmod 755 /usr/share/applications/ubunlog-web.desktop
chmod +x /usr/share/applications/ubunlog-web.desktop

Este lo guardamos en la misma carpeta que antes como «postinst»

Ahora creamos las carpetas para el script, el lanzador y el icono, dentro de la carpeta «setup» creamos una carpeta de nombre «usr»

Como ven tenemos dos carpetas una «DEBIAN» y otra «usr» que creamos hace segundos, dentro de esta ultima creamos carpetas una «bin» y otra «share»

Este es el código del script

#!/bin/sh
firefox https://ubunlog.com/ &

lo guardamos en la carpeta «bin» con el nombre «ubunlog-web».

Ahora vamos a la carpeta «share» en esta creamos una carpeta de nombre «pixmaps» y  guardamos con el nombre «ubunlog-web.png» esta imagen la bajamos de aquí

Solo nos queda crear el lanzador, para esto creamos una ultima carpeta dentro de share de nombre «applications»

Este es el código del mismo

[Desktop Entry]
Encoding=UTF-8
Name=Ubunlog Web Blog
Comment=Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu
GenericName=Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu
Exec=ubunlog-web
Terminal=false
Type=Application
Icon=ubunlog-web
Categories=Application;Network;Internet;
StartupWMClass=ubunlog-web
StartupNotify=true

Lo guardan en la carpeta «applications» como «ubunlog-web.desktop»

Ya tenemos todo listo solo queda generar el paquete deb, le pide contraseña de root, pero no instala nada.

sudo chmod -R root:root setup/
sudo chmod -R 755 setup/
sudo dpkg -b setup/ ubunlog-web_0.11.5.13_all.deb
chmod 777 ubunlog-web_0.11.5.13_all.deb
chown -R setup

Si tiene todo bien ya tiene el paquete «ubunlog-web_0.11.5.13_all.deb».

Autoextraible Manual (Solo probado en Ubuntu, Funciona en Cualquier Distro)

Este método es para generar archivos con el script makeself (http://megastep.org/makeself/)

Descargan desde la web, es un archivo .run, le dan permisos y lo ejecutamos,

Como se usa.

makeself.sh CARPETA/ORIGEN/ RESULTADO.RUN "TEXTO" ./setup.sh

Como verán «CARPETA/ORIGEN/» son los archivos y carpetas de nuestra aplicación o script «RESULTADO.RUN» es el archivo resultante o archivo Autoextraible
«TEXTO» es el mensaje que se muestra al ejecutar el archivo Autoextraible, y se pone entre comillas.
«./setup.sh» es el script que ejecuta al descomprimir el archivo Autoextraible, no olviden darle permisos.

Para que sea mas entendible usaremos el mismo ejemplo del paquete deb pero adaptado a este.

Creamos una carpeta de nombre «ubunlog» y copiamos la carpeta que genero makeself, renombrenla como «makeself»
En la carpeta «ubunlog» creen otra de nombre setup y dentro de esta colocan los archivos siguientes.

Script Instalador

#!/bin/sh
cp ubunlog-web /usr/bin/
chmod 755 /usr/bin/ubunlog-web
chmod +x /usr/bin/ubunlog-web
cp ubunlog-web.png /usr/share/pixmaps/
chmod 755 /usr/share/pixmaps/ubunlog-web.png
cp ubunlog-web.desktop /usr/share/applications/
chmod 755 /usr/share/applications/ubunlog-web.desktop
chmod +x /usr/share/applications/ubunlog-web.desktop

Lo guardan como setup.sh

Nuestro Script

#!/bin/sh
firefox https://ubunlog.com/ &

Lo guardan como «ubunlog-web» el icono lo guardamos con el nombre «ubunlog-web.png» esta imagen la bajamos de aquí

El Lanzador

[Desktop Entry]
Encoding=UTF-8
Name=Ubunlog Web Blog
Comment=Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu
GenericName=Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu
Exec=ubunlog-web
Terminal=false
Type=Application
Icon=ubunlog-web
Categories=Application;Network;Internet;
StartupWMClass=ubunlog-web
StartupNotify=true

Lo guardan como «ubunlog-web.desktop»

Ahora generamos el archivo Autoextraible

chmod 755 setup/
chmod +x setup/setup.sh
sh ../makeself/makeself.sh setup ubunlog-web.run "Ubunlog - Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu" ./setup.sh

Ya tenemos el archivo autoextraible.

Espero que les ayude en algo esta

Gracias por sus Comentarios, Si hay algún ERROR es producto de su imaginación, jajajaj