Firebird classic on linux
The Firebird server comes in two forms, Classic, which runs as a service, and SuperServer, which runs as a background daemon. Classic is the more traditional UNIX service, while Superserver uses threads, rather than processes. For the user just starting out with Firebird, either will do, although the Classic server is likely to prove a better platform for initially experimenting with Firebird.
READ THIS FIRST
- You will need to be root user to install Firebird.
- Installation on Linuxen requires a glibc package installed that is equal to or greater than glibc-2.2.5 and a libstdc++.so equal to or greater than libstdc++-5.0.
- For a rough evaluation of compatible Linuxen, refer to the section Linux Compatibilities, but don’t take it as the «last word». Linux binary distros out-of-the-box can vary depending on where and when they were built.
- Ensure that the ‘ed’ and ‘vim’ editor packages are installed on your system. If the required editor is not present, the package will install but the installation scripts will fail.
Note
Installing on Linux
The following instructions describe the Classic installation. For installation of Superserver the «CS» in the package name is repaced by «SS». For example, the package FirebirdCS-1.5.0-nnnn.i686.rpm is replaced by FirebirdSS-1.5.0-nnnn.i686.rpm.
Log in as root, or open a root shell. In the example filenames below, replacy nnnn with the build number of the kit you actually have.
RPM Installer
For the RPM installer, type:
$rpm -ivh FirebirdCS-1.5.0-nnnn.i686.rpm
Installing the Tarball
To install the tarball, place the «.tar.gz» file and type:
$tar -xzf FirebirdCS-1.5.0-nnnn.tar.gz $cd FirebirdCS-1.5.0-nnnn.i686 $./install.sh
What the Linux install scripts will do
The Linux install scripts will
- Attempt to stop any currently running server
- Add the user ‘firebird’ and the group ‘firebird’ if they do not already exist.
- Install the software into the directory /opt/firebird and create links for libraries in /usr/lib and header files in /usr/include
- Automatically add gds_db for port 3050 to /etc/services if the entry does not already exist
- Automatically add localhost.localdomain and HOSTNAME to /etc/hosts.equiv
- SuperServer only installs a /etc/rc.d/init.d/firebird server start script.
- Classic server installs a /etc/xinetd.d/firebird start script or, for older inetd systems, adds an entry to the /etc/inetd file
Testing your Linux installation
Step 1 — Accessing a database
$cd /opt/firebird/bin $./isql -user sysdba -password 1 SQL>connect localhost:employee.fdb /* this is an aliased path */ SQL>select * from sales; SQL>select rdb$relation_name from rdb$relations; SQL>help; SQL>quit;
Note
1 A password has been generated for you on installation. It can be obtained from the /opt/firebird/SYSDBA.password file, located in the Firebird root directory.
Step 2 — Creating a database
From version 1.5 onward, the Firebird server runs by default as the user ‘firebird’. While this has always been the recommended configuration, the previous default was for the server to run as ‘root’ user. When running as root user, the server had quite wide-ranging ability to read, create and delete database files anywhere on the POSIX filesystem.
For security reasons, the service should have a more limited ability to read/delete and create files.
While the new configuration is better from a security perspective, it requires some special considerations to be taken into account for creating new databases:
- the user ‘firebird’ has to have write permission to the directory in which you want to create the database.
- the recommended value of the DatabaseAccess attribute in the /opt/firebird/firebird.conf file should be set to None, to permit access only through entries in the aliases.conf file.
- use entries in aliases.conf to abstract users from the physical locations of databases. More notes on aliases are to be found in the topic Database File Aliasing.
Procedures for creating a new database can vary with different configurations but the following configuration and steps are recommended:
- If a directory that is owned by the user ‘firebird’ does not exist, then change to root user and create the directory:
$su - root $mkdir -p /var/firebird $chown firebird:firebird /var/firebird
$cd /opt/firebird/bin $./createAliasDB.sh test.fdb /var/firebird/test.fdb
$vi /opt/firebird/aliases.conf
test.fdb /var/firebird/test.fdb
$/opt/firebird/bin/isql -u sysdba -p SQL>create database 'localhost:test.fdb'; SQL>quit;
$/opt/firebird/bin/isql -u sysdba -p SQL>create database '/var/firebird/test.fdb'; SQL>quit;
If you use this configuration, the database file can also be directly accessed without an entry in the aliases file:
$/opt/firebird/bin/isql -u sysdba -p SQL>connect '/var/firebird/test.fdb'; SQL>quit;
Utility Scripts
In addition to the standard install files the following scripts are provided in the bin directory of this release.-
Change the Firebird SYSDBA user password. For Superserver, this script will change the init script /etc/rc.d/init.d/firebird to use the new password as well.
This script creates a new physical database and adds an entry in the aliases.conf file.
A script that can be used in makefiles to generate the required include paths and lib include directives for the installed version of Firebird. fb_config -help will give a complete list of options.
Classic only-Change the client library link for libgds.so between the multithreaded libfbclient.so and the single threaded libfbembed.so library that allows an embedded direct open of the db file. For compatibility with previous installs, libgds.so by default points to libfbembed.so.