|Unofficial Firebird Installation page
Here you will find a script and informations on how to setup an easy end-user solution for distributing your Firebird powered Windows apps. All used tools are freeware and/or open-source, regardless if the app you want to deploy is commercial or non-commercial.
The script you will find here is not as complete as the ones from the InterBase Installation Info website. For example: my script doesn't check for an existing Firebird or InterBase version. If you have suggestions or improvements, please let me know.
Also keep in mind that with the release of Firebird V1 the focus goes to the V2 codebase. At the moment Firebird still refers to InterBase and Borland registry keys, but in the versions after the V1 release, filenames, registry-keys, etc. will change from Borland to Firebird specific ones. So watch out and support the hard working Firebird team.
The script has been created using Inno Setup from Jordan Russell. Inno Setup is a free setup compiler which is nearly as feature rich as every commercial installer. The only thing you can't do is scripting, but there is a free Inno Setup add-on available called My Inno Setup Extensions made by Martijn Laan, which supports scripting via Innerfuse Pascal Script. For more comfortable editing of script files I recommend ISTool which makes the script creation and modification really easy.
If you want to modify and recompile the Firebird Services Program(FbSvc), you have to use Delphi from Borland, which of course isn't free ;-).
Here are the steps you need to perform before you can start scripting:
Now unzip the Firebird installation package ("FbSetup.zip") to a folder of your choice and extract the downloaded Firebird version to this directory in an subdirectory called "build". Please make sure that you are extracting both archives with the included subfolders.
Compiling the script:
Deploying the compiled Firebird installation:
Start ISTool and specify the path to Inno Setup via "File->Preferences->General->Compiler directory". Open the script file "FbSetup.iss", press the "Compile" button in ISTool and in the Inno Setup compiler window, and watch the generation of the output file "FbSetup.exe".
Since Milestone build 0.9.5 Firebird defaults to port 3050 when no different setting is found in the services file. With this feature it becomes extremely easy to deploy even large and complex apps. Here is a brief description(I assume that you access Firebird with IBO, IBX or FIBPlus):
Launcher program by Marco Rodrigues:
- Install Firebird Server
- Install your application("gds32.dll" must be included in the install of the app and is best placed directly in the app folder. Some client scripts also install the file "interbase.msg", but I never had the need to do so.)
- Share the folder where the app is installed
- On the client machines create a shortcut to the application's executable. That's all.
Launcher is a small program that helps you with the deploying of your app to all client machines. Compared to the traditional schema of shared folders, it can save network traffic, because you do not have to maintain an open file on the server. There is another important benefit; you can copy your new version of the application at any time. Instead of waiting for all opened files to be closed, you can override the old version at any time and when the client open launcher again, it copies the new files to the client hard disk. Launcher can copy as many files you want. All necessary directories are created automatically. At the end of the copy process, launcher starts your application, so you can start launcher every time you want to run your software and it guarantee your copy is up to date.
Syntax of "Launcher.ini" file (all in the [Server] section):
Suppose that you have an Firebird or InterBase powered application which consists of the following files:
- Source - Path of your shared folder with files in UNC format.
- Destination - Path of your application on the client machine. You can use $P macro to express "C:\Program Files".
- Run - Application exe file to be executed at the end of the copy process.
- File1 - First file to be copied.
- File2 - Second file to be copied.
- FileXX - XXth file to be copied. You also can use wildcards like *.exe.
All files are will be located at "C:\Program Files\My_Company\My_Application" on the client machine. Now just copy all files to a folder on your server and share the folder as "\\Server\MyFiles" and give at least read access to your users. Now we can set-up "Launcher.ini" to work with these files:
- Copy "Launcher.exe" and "Launcher.ini" to "\\Server\MyFiles".
- Go to client machine and open the Explorer. Point to "\\Server\MyFiles" and run "Launcher.exe". It will install the application.
- Now you can create a shortcut in desktop to "Launcher.exe" and associate the icon with "My_Application.exe".
- You can rename "Launcher.exe" for what you wish, just rename both .exe and .ini file to the same name.
Launcher is open source, and can be improved. To compile Launcher you will need a library called KOL. Get it here. Send comments to Marco Rodrigues.
FbSvc - Firebird Services Program:
Download the script and a ready-to-use Firebird installation:
With Firebird you get a utility called "instsvc.exe" which allows you to easily install the Firebird server as a service application under Windows NT/2000. Note that it doesn't install the guardian, so it has to be done manually according to the InterBase 5.5 Embedded Installation Guide(don't get confused by the 5.5 version number - the guide is still valid for IB 6 and Firebird). "FbSvc.exe" not only works for Windows NT/2000, it also installs the guardian in Windows 9x/ME by putting it in the "Run" section of the registry (the tool "instreg.exe" automatically installs the Firebird server in the "Run" section but similar to "instsvc.exe" not the guardian). Further on "FbSvc.exe" supports a "deinstall on the fly": It allows you to uninstall a running Firebird server by automatically shutting it down before the uninstall process starts. This works for all variants of Windows(NT/2000, 9x/ME).
"FbSvc.exe" is used in the sections "InstallRun" and "UninstallRun" of the script "FbSetup.iss". To find out how FbSvc works please have a look at "FbSvc.dpr"(Delphi console program). If you have comments, question, criticism or when you have found a bug, feel free to contact me.
Frequently Asked Questions:
Additional information and resources:
The first versions of the script was created by Tom White for the Firebird project. I grabbed the script, slightly modified it and was really pleased with the result. But after a litte while I wanted to make it as easy and at the same time as powerful as possible, so the script "FbSetup.iss" including FbSvc was created by me. As the script worked very well with our customers I decided to make it available to the Firebird community. On this page you can see the results of this decision.
Another very good help, mostly for creating FbSvc, was the InterBase 5.5 Embedded Installation Guide from Borland. As an excellent online resource I recommend the InterBase Installation Info website made by David R. Robinson. Here you will find informations, scripts and papers on how-to setup either an InterBase or Firebird installation. This site also offers scripts for commercial installers like Wise or InstallShield.
If you have any suggestions, bug reports or criticism please drop me an E-Mail.