Subject Multiple versions/server installs follow on from 'Installation Mutli-instance of Firebird 1.5 et 2.0 on Mac OS X'
Author Carrell Alex
Hi,

Regarding, multiple firebird installs using xinetd.


I posted last week with a simple solution, and then thought, it is a dirty solution. So I actually read as many notes on xinetd as I could.
No doubt someone has a good way of running multiple versions of firebird and probably this is not the palce to post a solution;

How I believe multiple [version] installs should be is thus:

simplest method:
-manually install all versions.
-edit /etc/services and add extra/edit service ports for firebird, the default entry is 'gds_db = 3050'. You need one entry and port per server version installed.
-create xinetd configuration file for each version of firebird, in /etc/xinetd.d/
example for default installation
>>
cat /etc/xinetd.d/firebird
service gds_db
{
flags = REUSE
socket_type = stream
wait = no
user = firebird
log_on_success += USERID
log_on_failure += USERID
server = /opt/firebird/bin/fb_inet_server
disable = no
env = FIREBIRD=/opt/firebird
env += LD_LIBRARY_PATH=/opt/firebird/lib:LD_LIBRARY_PATH
}

<<
Now, all I have done here is ask xinetd to export some extra environment variables when a request is made on port 3050.
The lines :
env = FIREBIRD=/opt/firebird
env += LD_LIBRARY_PATH=/opt/firebird/lib:LD_LIBRARY_PATH
--do this.

This is it really. nothing else. very simple. To be honest, I suspect this is how firebird ought to install itself automatically.

At the moment I have this running on a test system, and aim to use it live next weekend.


Other notes:

-I go to greater lengths to organise how firebird. I place the firebird versions in directories named /opt/firebird_{version}_{build} and soft link to a master directory for each version.
This means I must alter the above default /etc/xinetd.d/firebird configuration file to match where I have placed my firebird 'fb_inet_server' binary(for running fb classic)

- workarounds on a system with a prior rpm/package or script installed version.
you need to remove the firebird libraries
ls /opt/firebird and then remove those listed from /usr/lib.
repeat with /opt/firebird/include/ /usr/include/
nb. this means if you do compile against libraries linking to firebird you need to add the /opt/firebird/include to the compilers includes. also it does mean avoiding compiling against the wrong version.

alex

This message and any attachments (the message) are intended solely for the addressees and are
confidential. If you receive this message in error, please delete it and immediately notify
the sender. Any use not in accordance with its purpose, any dissemination, copying or disclosure,
either whole or partial is prohibited without prior formal approval. The internet cannot
guarantee the integrity of the message. The companies of Bobst Group do not accept any liability
for data corruption, delay, interception or any modification in relation with this message.