Está en la página 1de 5

Crea tus instaladores para Linux (Fedora, Ubuntu, etc)

sencillamente

How to make a self-extracting installer for


Linux (Fedora, Ubuntu and others) easily
By David Va & Kuboode

Buscas facilidad para crear un instalador en Linux?


Esta entrada la tengo desde hace mucho en borrador, as que el da de hoy decid terminarla y
compartirla con ustedes. Muchas veces tenemos nuestros propios scripts, o programillas que no
necesariamente se necesitan compilar o que funcione bajo gran cantidad dependencias, y en tal caso
necesitamos un instalador que funcione en todas las distribuciones. Porque gastar en alternativas
comerciales como Bitrock? Porque complicarnos la vida creando un .deb o un .rpm?

Si alguien recuerda al famoso winrar, winzip de aquel sistema operativo privativo, para hacer
programas autoextraibles djeme contarle que en Linux podemos hacer algo similar y mejor sin utilizar
software privativo, un ejemplo claro el instalador autoextraible de Yakito.

Porque no hacer un instalador autoextraible de nuestro fichero


tar.gz con alguna gui?
A esto me refiero que este sea descomprimido en un directorio temporal y un comando que sea
ejecutado (normalmente el propio script de instalacin del paquete) para realizar la copia del programa
y sus partes a su respectivo destino. Si ha llegado a este articulo no es producto de la casualidad es
probable que usted se haya preguntado lo mismo o este decepcionado al no poder crear un instalador
similar.

Conocimientos bsicos
Vamos a los pasos: Creamos nuestro script con las instrucciones para copiar y pegar las partes de
nuestro programa o script, al directorio destino.

Como nuestro instalador autoextraible usar un directorio temporal en donde los archivos sern
eliminados despues de haber sido copiados a su destino. El mayor nfasis es en las instrucciones que se
le darn.
Cmo crear nuestro autoinstalador?

PASO 1
Creamos nuestro script instalador, el que le da las instrucciones; lo que debe copiar y a donde, de
nuestro programa. Para ello podemos crearlo con gedit u otro editor de texto.

Desde una terminal:

gedit install.sh

Hacemos un copy y paste de lo siguiente:


Ojo. cuando vea "#" aqu le explico los pasos a seguir, puede dejarlos para no perderse.

----------------------------------------------------------------------------------------------------------------------------

#!/bin/bash

# Un titulo de bienvenida podriamos ponerle para que sea ms visual, para


# ello utilizaremos zenity, yad etc .

zenity --info --title="Mi programa" --text="Bienvenido la Instalacion de Mi programa"

# Damos las instrucciones a nuestro programa; para copiar archivos,


#directorios completos, este tambien incluye la imagen para el cono, que
#podria ser png o svg por sus capacidades de escalamiento no mayor de
#128*128.

#Si son directorios completos podemos utilizar una copia recursiva, ejemplo
#cp -R angelica /usr/bin/ "Angelica es mi directorio no vaco que quiero copiar a la
#ruta /usr/bin/"

cp -f miprograma.sh /usr/bin/

cp -f imagendemilanzador.svg /usr/share/icons/

cp -R angelica /usr/bin/

#Crear el lanzador, este paso es muy sencillo, podemos hacerlo con un simple "echo"
#siguiendo la estructura de abajo reemplazando por nuestro programa.
echo "[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Mi programa
Exec=/usr/local/bin/miprograma.sh
Comment=para lo que sirva tu programa este se usara por defecto
Comment[es]= para lo que sirva tu programa este se usara si detecta espaol
Icon=/usr/share/icons/imagendemilanzador.svg
Categories=GTK;Utility; " >> /usr/share/applications/Mi programa.desktop

# Le damos permisos a todo lo que se quiere ejecutar de nuestro programa.

chmod +rwxs /usr/bin/Mi programa.sh


chmod +x /usr/share/applications/Mi programa.desktop

# Le avisamos al usuario que ya se instalo el programa. podramos utilizar para que sea ms visual,
zenity, yad etc .

zenity --info --title="Mi programa" --text="La Instalacion a finalizado correctamente"

----------------------------------------------------------------------------------------------------------------------------

PASO 2
Agregamos a nuestro comprimido
tar.gz el instalador del paso 1 ya sea
con "File Roller" o similar; es
recomendable que nuestro
comprimido no tenga un directorio
principal o sea que este el tar.gz y
dentro solo contenga las partes de
nuestro programa y solamente si
tuviera subdirectorios.
PASO 3
Creamos nuestro script Autoinstalador, puedes hacerlo con gedit u otro editor de texto.

gedit autoinstalador.sh

----------------------------------------------------------------------------------------------------------------------------

#!/bin/sh
echo ""
echo "AutoInstalador Mi programa 1"
echo ""

# Creamos un directorio temporal donde lo extraeremos, aqu no tocamos nada.


export WRKDIR=`mktemp -d /tmp/selfextract.XXXXXX`

#Cambiamos el nombre exacto de nuestro archivo comprimido tar.gz, que podemos ver en negrilla

SKIP=`awk '/^miprograma.tar.gz/ { print NR + 1; exit 0; }' $0`

tail -n +$SKIP $0 | tar xvz -C $WRKDIR

PREV=`pwd`
cd $WRKDIR
sh install.sh

cd $PREV
rm -rf $WRKDIR

exit 0

# volvemos agregar el nombre exacto de nuestro archivo comprimido tar.gz

miprograma.tar.gz

----------------------------------------------------------------------------------------------------------------------------
4 PASO
Creacin del programa autoextraible, hemos llegado casi al paso final, ahora creamos el autoinstalador.
Suponiendo que todo lo tienes en tu directorio personal home o haciendo cd /ruta/donde/esten,
simplemente copiamos y pegamos lo siguiente.

cat autoInstalador.sh miprograma.tar.gz > instalador.sh

OJO instalador.sh se le puede cambiar el nombre, este es archivo final convertido en binario.
ULTIMO PASO
Las pruebas

Por lo general el problema se presenta en el paso 1, por mala programacin de su creador, depende de
usted.

Si necesita permisos de root o administrativos para copiar o instalar o ejecutar, no olvide incluirlos al
script instalador.

Si el autoinstalador necesita para su ejecucin permisos de administrador o root simplemente


haga lo siguiente:

Fedora y similares

su -c 'sh instalador.sh'

Ubuntu y similares

sudo sh instalador.sh

Este manual se encuentra bajo una Licencia Creative Commons Atribucin-Licenciamiento


Recproco 3.0 Unported. Basada en una obra en kuboosoft.blogspot.com.

También podría gustarte