Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Instalando Firebird con InnoSetup (¿Tutorial?) (https://www.clubdelphi.com/foros/showthread.php?t=84959)

MAXIUM 05-01-2014 01:48:14

Instalando Firebird con InnoSetup (¿Tutorial?)
 
Bueno, este topico ya se a tocado, aunque quiero ir un poco más profundo.

Buscando información sobre como incluir el Firebird en un instalador para nuestros aplicativos, hallé la web de MWA Software que nos entrega y enseña a crear en forma gratuita módulos de instalación (.msm) que podemos incluir a herramientas como InstallShield (desde a versión 3 en adelante incluyendo la express que viene con discos antiguos de Delphi), el creador de instaladores de Visual Studio y cualquiera que soporte estos módulos. Firebird Merge Modules

Dentro de las gracias esta que logra generara modulos separados para, Solo clientes, Super Classic, Classic Server y Herramientas de línea de comandos.

Este sitio actualmente entrega los módulos listo para las versiones 2.5.1, 2.1.4, 2.0.5 y 1.5.5 . Pude generar módulos actualizados para Firebird 2.1.5 , el cual no pude subir al sito por las limitaciones de subida.

Ahora, para las herramientas mencionadas, es claro que viene como anillo al dedo, pero para quienes gustan y buscan apoyar software libre, me encontre con que Inno Setup no soporta estos archivos y el único método es convertirlos de .msm a .msi gracias a esta herramienta que curiosamente también ofrece como producto principal un instalador en su versión gratuita y de pago MSM2MSI

y luego se usa en InnoSetup con
Código:

[Files]
Source: "Your-MSI-File.msi"; DestDir: "{tmp}"

[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\Your-MSI-File.msi"""

(/qn para modo silencioso)

La ventaja es que se pueden instalar el modo especifico (cliente, classic o supper) sin intervención del usuario y todo dentro del mismo instalador.

Ahora la pregunta es: ¿Me estaré dando muchas vueltas en el asunto?

Fue lo que alcance a recabar hasta ahora en cuanto a información :rolleyes:

cloayza 06-01-2014 15:07:23

En mi caso yo incluyo el instalador de Firebird dentro del Setup que crea InnoSetup.

Como lo hago...
Primero: Defino 2 variables para identificar la versión de Firebird..32/64
Cita:

#define Firebird32 "Firebird-2.5.2.26540_0_Win32.exe"
#define Firebird64 "Firebird-2.5.2.26540_0_x64.exe"
Segundo: Incluyo los archivos instaladores en el script InnoSetup
Cita:

[Files]
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: "d:\Software\{#Firebird32 }"; DestDir: "{tmp}"; Flags: ignoreversion
Source: "d:\Software\{#Firebird64 }"; DestDir: "{tmp}"; Flags: ignoreversion
Tercero: Indico cual debe ejecutarse dependiendo de la plataforma
Cita:

[Run]
Filename: "{tmp}\{#Firebird32 }"; Parameters: "/VERYSILENT"; Flags: runmaximized 32bit; Check: Not IsWin64
Filename: "{tmp}\{#Firebird64 }"; Parameters: "/VERYSILENT"; Flags: runmaximized 64bit; Check: IsWin64
Eso es todo...

MAXIUM 06-01-2014 18:40:00

¿Y como le haces si solo quieres instalar super classic, classic server o solo client?

cloayza 06-01-2014 20:02:56

Ahí tienes que trabajar con Types y Components...

Aquí un ejemplo...

Cita:

[Types]
Name: "full"; Description: "Completa"
Name: "compact"; Description: "Reducida"
Name: "custom"; Description: "Personalizada"; Flags: iscustom

[Components]
Name: "Programas"; Description: "Programas"; Types: full custom ; Flags: fixed
Name: "Ayuda"; Description: "Documentos y Ayuda"; Types: full
Name: "Firebird"; Description: "Administrador Base de Datos"; Types: full compact
Name: "Firebird\Classic"; Description: "Classic Server"; Flags: exclusive
Name: "Firebird\Superserver"; Description: "Super Server"; Flags: exclusive
Name: "Firebird\Client"; Description: "Cliente"; Flags: exclusive

[Files]
Source: "d:\FirebirdCS.Exe"; DestDir: "{tmp}"; Components:Firebird\Classic; Flags: ignoreversion
Source: "d:\FirebirdSS.Exe"; DestDir: "{tmp}"; Components:Firebird\Superserver; Flags: ignoreversion
Source: "d:\GDS32.DLL"; DestDir: "{tmp}"; Components:Firebird\Client;
InnoSetup tiene un ejemplo que se llama Examples\Components.iss...

Saludos cordiales...


La franja horaria es GMT +2. Ahora son las 23:12:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi