SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
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.
¿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.
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 español
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. 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.
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
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.

Más contenido relacionado

La actualidad más candente

Entrenamientos arrigo s.
Entrenamientos arrigo s.Entrenamientos arrigo s.
Entrenamientos arrigo s.
Futbol_Ofensivo
 
Entrenamiento y preparacion fisica en el futbol
Entrenamiento y preparacion fisica en el futbolEntrenamiento y preparacion fisica en el futbol
Entrenamiento y preparacion fisica en el futbol
322619
 

La actualidad más candente (10)

Qualites physiques théorie à la pratique
Qualites physiques théorie à la pratiqueQualites physiques théorie à la pratique
Qualites physiques théorie à la pratique
 
Scheda integrativa al lavoro settimanale per l'allenamento dei dilettanti velini
Scheda integrativa al lavoro settimanale per l'allenamento dei dilettanti veliniScheda integrativa al lavoro settimanale per l'allenamento dei dilettanti velini
Scheda integrativa al lavoro settimanale per l'allenamento dei dilettanti velini
 
Implantação e Caraterização de um Modelo de Jogo
Implantação e Caraterização de um Modelo de JogoImplantação e Caraterização de um Modelo de Jogo
Implantação e Caraterização de um Modelo de Jogo
 
Entrenamientos arrigo s.
Entrenamientos arrigo s.Entrenamientos arrigo s.
Entrenamientos arrigo s.
 
Periodização Tática - Morfociclo padrão: pelas entranhas do processo
Periodização Tática - Morfociclo padrão: pelas entranhas do processoPeriodização Tática - Morfociclo padrão: pelas entranhas do processo
Periodização Tática - Morfociclo padrão: pelas entranhas do processo
 
Planificacion entren
Planificacion entrenPlanificacion entren
Planificacion entren
 
Periodização Tática - José guilherme 2016
Periodização Tática - José guilherme 2016Periodização Tática - José guilherme 2016
Periodização Tática - José guilherme 2016
 
pemanfaatan pekarangan.pptx
pemanfaatan pekarangan.pptxpemanfaatan pekarangan.pptx
pemanfaatan pekarangan.pptx
 
Seirulo
SeiruloSeirulo
Seirulo
 
Entrenamiento y preparacion fisica en el futbol
Entrenamiento y preparacion fisica en el futbolEntrenamiento y preparacion fisica en el futbol
Entrenamiento y preparacion fisica en el futbol
 

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

97132962-instalacion-de-open meetings-en-squeeze
 97132962-instalacion-de-open meetings-en-squeeze 97132962-instalacion-de-open meetings-en-squeeze
97132962-instalacion-de-open meetings-en-squeeze
xavazquez
 
Fases de instalacion de un sistema operativo.
Fases de instalacion de un sistema operativo.Fases de instalacion de un sistema operativo.
Fases de instalacion de un sistema operativo.
Reiber Gonzales
 
Fases de instalacion de un sistema operativo [jabbawockeez]
Fases de instalacion de un sistema operativo [jabbawockeez]Fases de instalacion de un sistema operativo [jabbawockeez]
Fases de instalacion de un sistema operativo [jabbawockeez]
Reiber Gonzales
 
04 taller-django
04 taller-django04 taller-django
04 taller-django
samerscd
 
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
taylerx
 
Administracion de software en debian y derivados (comandos) taringa!
Administracion de software en debian y derivados (comandos)   taringa!Administracion de software en debian y derivados (comandos)   taringa!
Administracion de software en debian y derivados (comandos) taringa!
Frank Davila
 

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

97132962-instalacion-de-open meetings-en-squeeze
 97132962-instalacion-de-open meetings-en-squeeze 97132962-instalacion-de-open meetings-en-squeeze
97132962-instalacion-de-open meetings-en-squeeze
 
Guia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosGuia instalacion y configuracion nagios
Guia instalacion y configuracion nagios
 
Crear servidor local de repositorios de paquetes DEB para Ubuntu
Crear servidor local de repositorios  de paquetes DEB para UbuntuCrear servidor local de repositorios  de paquetes DEB para Ubuntu
Crear servidor local de repositorios de paquetes DEB para Ubuntu
 
Que hacer después de instalar fedora 17 beefy miracle v.2
Que hacer después de instalar fedora 17 beefy miracle v.2Que hacer después de instalar fedora 17 beefy miracle v.2
Que hacer después de instalar fedora 17 beefy miracle v.2
 
Clase9 (consola linux)
Clase9 (consola linux)Clase9 (consola linux)
Clase9 (consola linux)
 
Drupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuraciónDrupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuración
 
Fases de instalacion de un sistema operativo.
Fases de instalacion de un sistema operativo.Fases de instalacion de un sistema operativo.
Fases de instalacion de un sistema operativo.
 
FASES DE INSTALACION DE UN SISTEMA OPERATIVO
FASES DE INSTALACION DE UN SISTEMA OPERATIVOFASES DE INSTALACION DE UN SISTEMA OPERATIVO
FASES DE INSTALACION DE UN SISTEMA OPERATIVO
 
Servidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/LinuxServidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/Linux
 
Fases de instalacion de un sistema operativo [jabbawockeez]
Fases de instalacion de un sistema operativo [jabbawockeez]Fases de instalacion de un sistema operativo [jabbawockeez]
Fases de instalacion de un sistema operativo [jabbawockeez]
 
04 taller-django
04 taller-django04 taller-django
04 taller-django
 
Dockers y wp
Dockers y wpDockers y wp
Dockers y wp
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
PROGRAMAS DE APLICACIONES EN LINUX UNIDAD 4
 
Instalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónInstalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuración
 
Despues de instalar fedora 14
Despues de instalar fedora 14Despues de instalar fedora 14
Despues de instalar fedora 14
 
Administracion de software en debian y derivados (comandos) taringa!
Administracion de software en debian y derivados (comandos)   taringa!Administracion de software en debian y derivados (comandos)   taringa!
Administracion de software en debian y derivados (comandos) taringa!
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
Controladores.
Controladores.Controladores.
Controladores.
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (10)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

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

  • 1. 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.
  • 2. ¿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.
  • 3. 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 español 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. 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.
  • 4. 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 ----------------------------------------------------------------------------------------------------------------------------
  • 5. 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.