Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como automatizar instalación de varias versiones de Firebird con Inno Setup (https://www.clubdelphi.com/foros/showthread.php?t=96592)

smacas 08-02-2024 16:28:11

Como automatizar instalación de varias versiones de Firebird con Inno Setup
 
Buenas
Mi problema es el siguiente:
Quisiera tener ejecutándose varios servicios de Firebird a la vez, es decir, tener el Firebird 4.0 y el 5.0 funcionando a la vez, esto tengo que hacerlo con bastantes equipos y tengo entendido que Inno setup me permite hacer un instalador que me podría facilitar y ahorrar tiempo. Según he leído en otros foros si se puede tener varias versiones funcionando a la vez pero haciéndolo de forma manual, es decir:
1.- Necesitas que uno sea un ejecutable y el otro un zip
2.- Instalas una versión con el ejecutable y con el otro creas una carpeta diferente y lo descomprimes ahí el zip, luego modificamos el fichero .conf para indicarle el puerto, por ejemplo el 3051.
3.- Luego ejecutamos el fichero .bat para la instalación.


Cita:

Este es el programa que tengo:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define Firebird4Exe "Firebird-4.0.4.3010-0-x64.exe"
#define Firebird5Zip "Firebird-5.0.0.1306-0-windows-x86.zip"

; Definición de rutas
#define Firebird4Path "C:\Firebird\Firebird_4"
#define Firebird5Path "C:\Firebird\Firebird_5"

[Setup]
AppName=Instalador de Firebird
AppVersion=1.0
DefaultDirName={pf}\Firebird
OutputDir=Output
OutputBaseFilename=InstaladorFirebird
Compression=lzma
SolidCompression=yes

[Languages]
Name: spanish; MessagesFile: compiler:Languages\Spanish.isl

[Files]
Source: "{#Firebird4Exe}"; DestDir: "{tmp}"; Flags: deleteafterinstall
Source: "{#Firebird5Zip}"; DestDir: "{tmp}"; Flags: deleteafterinstall;

[Run]

Filename: "{tmp}\{#Firebird4Exe}"; Parameters: "/S /SP- /SUPPRESSMSGBOXES /COMPONENTS=""ServerComponent"" /PORT=3050 /NOREMOTE=true /SERVERDEFAULT=false /PATH=""{#Firebird4Path}"" /WINPATH=""{#Firebird4Path}"" /MERGETASKS=""RUN_SERVER_TASK,INSTALL_SUPERSERVER_REGISTRY_KEYS,INSTALL_SUPERCLASSIC_REGISTRY_KEYS"" /STARTMENU=false /UNINSTALL=false /NOICONS=false"; Flags: waituntilterminated skipifsilent
//Parar el servicio Firebird 4.0
Filename: "net.exe"; Parameters: "stop ""Firebird Server - DefaultInstance"""; Flags: runhidden waituntilterminated
Filename: "powershell.exe"; Parameters: "-Command Expand-Archive -Path ""{tmp}\{#Firebird5Zip}"" -DestinationPath ""{#Firebird5Path}"""; Flags: waituntilterminated

[Icons]
Name: "{commondesktop}\Firebird 4"; Filename: "{#Firebird4Path}\bin\isql.exe"; WorkingDir: "{#Firebird4Path}\bin"
Name: "{commondesktop}\Firebird 5"; Filename: "{#Firebird5Path}\bin\isql.exe"; WorkingDir: "{#Firebird5Path}\bin"

[code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = wpInstalling then
begin
MsgBox('La instalación de Firebird ha finalizado con éxito.', mbInformation, MB_OK);
end;
end;
Muchas gracias de antemano

Casimiro Notevi 08-02-2024 19:29:42

Bienvenido a clubdelphi, no olvides leer nuestra guía de estilo, gracias.
He movido el hilo a "Varios" porque no tienen nada que ver con "Internet", que es el foro donde lo habías puesto.


Con respecto a tu pregunta, antes de nada me surge otra pregunta, ¿para qué necesitas dos versiones distintas de firebird funcionando al mismo tiempo?
Saludos.

Neftali [Germán.Estévez] 09-02-2024 08:50:55

Cita:

Empezado por smacas (Mensaje 554396)
Quisiera tener ejecutándose varios servicios de Firebird a la vez, es decir, tener el Firebird 4.0 y el 5.0 funcionando a la vez, esto tengo que hacerlo con bastantes equipos y tengo entendido que Inno setup me permite hacer un instalador que me podría facilitar y ahorrar tiempo. Según he leído en otros foros si se puede tener varias versiones funcionando a la vez pero haciéndolo de forma manual, es decir:


No te puedo ayudar mucho en el script, sólo hacer una sugerencia.
No se si has utilizado alguna vez "Inno Script Studio"; Es una interface gráfica para los Scripts de Inno Setup. Te facilita mucho el crear y modificar los scripts. Por lo que recuerdo (hace tiempo que no lo uso) era gratuito.

smacas 09-02-2024 09:16:29

Cita:

Empezado por Casimiro Notevi (Mensaje 554397)
Bienvenido a clubdelphi, no olvides leer nuestra guía de estilo, gracias.
He movido el hilo a "Varios" porque no tienen nada que ver con "Internet", que es el foro donde lo habías puesto.


Con respecto a tu pregunta, antes de nada me surge otra pregunta, ¿para qué necesitas dos versiones distintas de firebird funcionando al mismo tiempo?
Saludos.

Ahh vale, gracias, es que no sabía dónde crear el hilo.
Respecto a tu pregunta, el motivo de tener dos versiones es porque en los clientes dependiendo de la base de datos que tenga y no tener que hacer conversiones a todas las base de datos para que tengan compatibilidad con la versión del firebird sería necesario tener las dos versiones funcionando al mismo, no sé si me expliqué bien, pero más o menos será necesario tener dos versiones de Firebird para la compatibilidad de la aplicación.

Casimiro Notevi 09-02-2024 10:33:17

Sigue el consejo de [Neftali]
Aunque de todas formas, salvo que esas aplicaciones usen algo muy especial, no necesitas tener varias versiones de firebird funcionando.
Los componentes no saben si el servidor firebird es v4 o v5, se limitan a hacer peticiones por el puerto 3050 (predeterminado) y a esperar el resultado.
Puedes traspasar, por ejemplo, la BD v4 a v5 con un backup transportable desde la v4 y luego restaurarla con la v5.
Así tendrías ambas aplicaciones funcionando con BDs firebird v5.
Ya digo, salvo que las aplicaciones estén usando algo especial que las obliguen a funcionar con una versión específica de firebird, que no creo.

smacas 09-02-2024 11:26:01

Cita:

Empezado por Casimiro Notevi (Mensaje 554407)
Sigue el consejo de [Neftali]
Aunque de todas formas, salvo que esas aplicaciones usen algo muy especial, no necesitas tener varias versiones de firebird funcionando.
Los componentes no saben si el servidor firebird es v4 o v5, se limitan a hacer peticiones por el puerto 3050 (predeterminado) y a esperar el resultado.
Puedes traspasar, por ejemplo, la BD v4 a v5 con un backup transportable desde la v5 y luego restaurarla con la v5.
Así tendrías ambas aplicaciones funcionando con BDs firebird v5.
Ya digo, salvo que las aplicaciones estén usando algo especial que las obliguen a funcionar con una versión específica de firebird, que no creo.

El problema es que me han solicitado que el equipo del cliente tenga las dos versiones funcionando en caso de que se requiera el uso de alguna de las dos versiones y he visto que se puede tener las dos versiones de Firebird ejecutándose al mismo, haciendo que la instalación de uno sea con un ejecutable y por defecto use el puerto 3050 y el otro con un zip lo descomprimimos en una carpeta diferente y modificamos el puerto por ejemplo al 3051, después ejecutamos el fichero bat para la instalación.

Casimiro Notevi 09-02-2024 12:01:09

Ya, te entiendo, sólo comentaba que no tiene mucho sentido hacer eso, "sólo" porque lo pida un cliente, ¿y si te pide que instales todas las versiones al mismo tiempo?
Yo le explicaría que no es necesario, que puede funcionar todo con una sola versión, y que funcionalmente no es nada eficiente.

Pero, bueno, eres tú y tu cliente, sólo daba mi opinión :)


La franja horaria es GMT +2. Ahora son las 11:57:19.

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