SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
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.

Mais conteúdo relacionado

Mais procurados

Instalar programas en linux
Instalar programas en linuxInstalar programas en linux
Instalar programas en linux
Mila Coderque
 
Ambientes de desarrollo y producción. Mejores prácticas con ansible
Ambientes de desarrollo y producción. Mejores prácticas con ansibleAmbientes de desarrollo y producción. Mejores prácticas con ansible
Ambientes de desarrollo y producción. Mejores prácticas con ansible
Joaquin Contreras
 
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
 
Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrollo
Scalia
 

Mais procurados (18)

Instalar programas en linux
Instalar programas en linuxInstalar programas en linux
Instalar programas en linux
 
Ansible DevOps Day Peru 2016
Ansible DevOps Day Peru 2016Ansible DevOps Day Peru 2016
Ansible DevOps Day Peru 2016
 
Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereVagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
 
Docker WordPress
Docker WordPressDocker WordPress
Docker WordPress
 
Instalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntuInstalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntu
 
Cassandra y php para desarrolladores sql
Cassandra y php para desarrolladores sqlCassandra y php para desarrolladores sql
Cassandra y php para desarrolladores sql
 
Sofware utilitario
Sofware utilitarioSofware utilitario
Sofware utilitario
 
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
 
Ambientes de desarrollo y producción. Mejores prácticas con ansible
Ambientes de desarrollo y producción. Mejores prácticas con ansibleAmbientes de desarrollo y producción. Mejores prácticas con ansible
Ambientes de desarrollo y producción. Mejores prácticas con ansible
 
Ansible + tacos at dev hangout
Ansible + tacos at dev hangoutAnsible + tacos at dev hangout
Ansible + tacos at dev hangout
 
Manueal instalar canaima
Manueal instalar canaimaManueal instalar canaima
Manueal instalar canaima
 
Instalar git, github, node js, quasar
Instalar git, github, node js, quasarInstalar git, github, node js, quasar
Instalar git, github, node js, quasar
 
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]
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrollo
 
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
 
Lo que será windows 8
Lo que será windows 8Lo que será windows 8
Lo que será windows 8
 

Semelhante 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
 
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
 
Controladores
ControladoresControladores
Controladores
edware
 
Controladores.
Controladores.Controladores.
Controladores.
lemus
 
Programación web framework djando - noviembre de 2014
Programación web   framework djando - noviembre de 2014Programación web   framework djando - noviembre de 2014
Programación web framework djando - noviembre de 2014
SandraMartinezG
 

Semelhante 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)
 
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.
 
Servidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/LinuxServidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/Linux
 
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
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Controladores.
Controladores.Controladores.
Controladores.
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1Configuracion basica de centos 6.3 linux v1
Configuracion basica de centos 6.3 linux v1
 
Controladores
ControladoresControladores
Controladores
 
Controladores.
Controladores.Controladores.
Controladores.
 
Programación web framework djando - noviembre de 2014
Programación web   framework djando - noviembre de 2014Programación web   framework djando - noviembre de 2014
Programación web framework djando - noviembre de 2014
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

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.