Cargando



Crear instaladores con Inno Setup

Inno Setup es un software para crear instaladores que nos permitan distribuir aplicaciones, es libre esta desarrollado para Windows, pero puede utilizarse bajo Linux mediante Wine o con el software PlayonLinux.


may 13 2015 23:11
Profesional
Inno Setup permite configurar el proceso de instalación que deberá seguir el software, mediante el uso de un asistente o wizard y en modo mas avanzado con la programación de un script, que son archivos de texto con un formato secuencial que permitirá determinar que pasos se deben seguir.

innosetup.jpg


Los script de Inno Setup son archivos de texto con extensión .iss. El script controla todos los aspectos de la instalación. Especifica qué archivos se van a instalar y dónde, qué menús y carpetas deben ser creados y que recursos requiere la aplicación que estamos instalando.

Los archivos de script son archivos de texto que pueden crearse y editarse desde Inno Setup o desde cualquier editor de texto. El software nos permitirá compilar el archivo de script iss y por defecto le asignara el nombre Setup.exe una vez compilado, por lo tanto nos quedará un programa completo, listo distribuir y para ejecutar la instalación.

Para comenzar un ejemplo sencillo iniciaremos, en este caso lo haremos desde Linux con Wine y el Asistente.

innosetup2.jpg


A continuación detallamos los datos de la aplicación, nombre de la aplicación, versión, empresa que la desarrollo, sitio web.

innosetup3.jpg


El paso siguiente será configurar en que carpeta se instalará la aplicación, por defecto será Program Folder o Archivos de programa, tanto en Windows como en Linux con Wine se encuentra esta carpeta, sino existiese la carpeta de instalación el software la creará.

innosetup4.jpg


Luego deberemos asignar nuestro archivo ejecutable y sus dependencia o librerías, aquí tomamos como ejemplo un software que habíamos desarrollado con Java y convertido a exe con Launch4j en el tutorial Netbeans y Sqlite en tres Capas – Parte II

innosetup5.jpg


El siguiente paso sera configurar a que menú se integrara la aplicación y que iconos mostrara, luego en la siguiente pantalla nos solicitara añadir los archivos txt o html con información de licencia, ayuda y los texto antes y luego de la instalación.

innosetup6.jpg


Los scripts Inno Setup están dispuestos en secciones. Cada sección controla un aspecto diferente de la instalación. Una sección se inicia especificando el nombre de la sección entre corchetes []. Dentro de cada sección especificaremos las acciones a realizar.

Finalmente añadiremos los iconos y configuraremos la disposición de los menús. Al finalizar nos creara el script y debernos compilarlo desde el menú Build > Compile. Esto nos generara una carpeta Output con el archivo setup.exe que es el instalador.

Aquí podemos observar el instalador ejecutado en Linux sobre Wine, por lo tanto funciona tanto en Windows como en Linux.

innosetup7.jpg


Analicemos el script generado


En define configuramos los datos de la aplicación mediante las directivas #define
#define MyAppName "Tutoriales"

#define MyAppVersion "2.0"
#define MyAppPublisher "Mi emperesa"

#define MyAppURL "http://www.miempresa.com/"
#define MyAppExeName "miempresaa.exe"
La sección [Setup] contiene parámetros globales utilizados por el instalador y el desinstalador. Se pueden personalizar las directivas como enlace de soporte técnico o de actualizaciones del software.
[Setup]

AppId={{3502D097-DF67-49DD-B98B-59F0866126BB}
AppName={#MyAppName}

AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}

AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}

AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}

OutputBaseFilename=setup
Compression=lzma

SolidCompression=yes
En la sección [Languages] definimos los idiomas de instalación, aquí vemos que utilizamos Ingles y Español, tomados directamente de la carpeta Languages del InnoSetup:
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
La sección [Tasks] es opcional. Define todas las tareas de configuración personalizable por el usuario llevará a cabo durante la instalación. Crear menú, iconos, asociar extensiones de archivos a nuestra aplicación.
[Tasks]

Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
El parámetro Flags o Bandera es un conjunto de opciones adicionales separadas por espacios. Las siguientes opciones son compatibles.

checkablealone: indica que si un componente esta destildado todas sus dependencias estarán destildadas.

checkedonce: indica que la instalación de un componente debe ser desmarcada cuando el programa de instalación encuentra una versión anterior de la misma aplicación ya está instalada, para que el usuario decida si reemplazarla o no.

restart: Indica que luego de realizada una tarea se solicite al usuario que reinicie el sistema al finalizar la instalación. Ejemplo si se instala algún servidor o base de datos y requerimos reiniciar para tenerlo disponible.

unchecked: indica que la opción debe estar destilada y deberá ser seleccionada por el usuario.

La sección [Files] define configuración y especificaciones para cada archivo de nuestra aplicación. La bandera isreadme indicara que el archivo es de solo lectura, mientras que onlyifdoesntexist indicará que el archivo se copiará mientras no exista.
[Files]
Source: "Z:\miempresa\dist\miempresa.exe"; DestDir: "{app}"; Flags:

Source: "Z:\miempresa\dist\ayuda.txt"; DestDir: "{app}"; Flags: isreadme
Source: "Z:\miempresa\dist\dbempresa.sqlite"; DestDir: "{app}"; Flags: onlyifdoesntexist
La seccion [Icons] indica los iconos de cada menú, Escritorio o Acceso directo
[Icons]

Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
La sección [Run] es opcional y especifica que programas se deben ejecutar después de que el software ha sido instalado, pero antes de que el programa de instalación finalice. Aqui podemos instalar dependencias si las hubiera, como por ejemplo Net framework o Java SE Runtime Environment
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall
Algunas banderas que soporta esta sección son:

nowait: especifica que el instalador no esperara a que el proceso finalice la ejecución antes de proceder a la siguiente tarea [Run] o para completar la instalación.

postinstall: indica al instalador que cree una casilla de verificación para informar que la instalación de la aplicación o de un determinado componente esta completa. El usuario puede desactivar o comprobar esta casilla de verificación y por lo tanto elegir si esta tarea se debe procesar o no. Esto es po si ya tenemos algún componente instalado y no queremos que lo instale nuevamente.

Otras secciones que podemos configurar desde el código del Script de Inno Setup son:

La sección [Types] esta sección es opcional. Aqui definimos la instalación de determinados componentes según tipos de configuración, entonces se mostrará en la página Seleccionar componentes del asistente. Durante la compilación se crea un conjunto de tipos de configuración por defecto si define los componentes en una sección [Components], entonces a cada componente le asignamos un tipo.

La sección [Types] se escribe debajo de la sección [Setup], Una ventaja es que podemos crear tipos personalizados para opciones de instalación, la mas conocida es la instalación completa o full y personalizada.

innosetup8.jpg


Mediante los tipos creamos un parámetro con su nombre y le asignamos una descripción, luego creamos etiquetas para componentes le asignamos una descripción o nombre y que cual sera el tipo de instalación que corresponda por ejemplo el software se instalara en cualquier tipo de instalación, pero no la ayuda, esto puede servir para instalar diferentes componentes según el tipo de instalación.
[Types]

Name: "pro"; Description: "Instalación Profesional"
Name: "pymes"; Description: "Instalación Pymes"

Name: "win"; Description: "Instalación Windows"
Name: "lin"; Description: "Instalación Linux"

Name: "personal"; Description: "Instalación personalizada"; Flags: iscustom

[Components]
Name: "programa"; Description: "Tutoriales "; Types: pro pymes personal;

Name: "sqlitewin"; Description: "Sqlite db "; Types: pro win
Name: "sqlitelin"; Description: "Sqlite db "; Types: pro lin

Name: "ayuda.htm"; Description: "Ayuda "; Types: pro


[Files]

Source: "Z:\miempresa\dist\miempresaa.exe"; DestDir: "{app}"; Components: programa
Source: "Z:\miempresa\dist\sqlite.dllt; DestDir: "{app}"; Components: sqlitewin

Source: "Z:\miempresa\dist\sqlite.so"; DestDir: "{app}"; Components: sqlitelin

innosetup9.jpg



Así podemos personalizar la instalación de nuestra aplicación, el script se puede programar con más complejidad según lo necesitemos.

¿Te ayudó este Tutorial?


2 Comentarios


Alex Pereiro
may 15 2015 15:45

Está muy interesante, necesitaba uno de estos programas. gracias Sergio.

Lo he puesto en una pregunta, seguro que les ayuda!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X