Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

5

Click here to load reader

Transcript of Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

Page 1: Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

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 día 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 déjeme 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 instalación 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 básicos

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 serán eliminados despues de haber sido copiados a su destino. El mayor énfasis es en las instrucciones que se le darán.

Page 2: Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

¿Cómo 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 más 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 vacío 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.

Page 3: Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

echo "[Desktop Entry]Version=1.0Type=ApplicationTerminal=falseName=Mi programaExec=/usr/local/bin/miprograma.shComment=para lo que sirva tu programa este se usara por defectoComment[es]= para lo que sirva tu programa este se usara si detecta españolIcon=/usr/share/icons/imagendemilanzador.svgCategories=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.shchmod +x /usr/share/applications/Mi programa.desktop

# Le avisamos al usuario que ya se instalo el programa. podríamos utilizar para que sea más 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.

Page 4: Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

PASO 3

Creamos nuestro script Autoinstalador, puedes hacerlo con gedit u otro editor de texto.

gedit autoinstalador.sh

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

#!/bin/shecho ""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 $WRKDIRsh install.sh

cd $PREVrm -rf $WRKDIR

exit 0

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

miprograma.tar.gz

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

Page 5: Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente

4 PASO

Creación 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 programación 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 ejecución 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 Atribución-Licenciamiento Recíproco 3.0 Unported. Basada en una obra en kuboosoft.blogspot.com.