Firebird 2.0 rc2 from source howto (ubuntu dapper drake)

This was tested on the Ubuntu Dapper Drake (that will be released this summer)
I assume you have installed the g++ compiler (with apt-get or synaptic)

download the Firebird 2.0 RC 2 kit from the nearest mirror

wget http://ovh.dl.sourceforge.net/sourceforge/firebird/Firebird-2.0.0.12654-ReleaseCandidate2.tar.bz2

tar -jxvf Firebird-2.0.0.12654-ReleaseCandidate2.tar.bz2
cd firebird-2.0.0.12654-ReleaseCandidate2/
sudo apt-get install libreadline5-dev bison
sh autogen.sh –prefix=/opt/firebird2 –enable-superserver
make
sudo make install
ps -awwwx | grep firebird (see if is working)

/opt/firebird2/bin/isql -u SYSDBA -p masterkey /opt/firebird2/examples/empbuild/employee.fdb

Database: /opt/firebird2/examples/empbuild/employee.fdb, User: SYSDBA
SQL> show tables ;
COUNTRY CUSTOMER
DEPARTMENT EMPLOYEE
EMPLOYEE_PROJECT JOB
PROJECT PROJ_DEPT_BUDGET
SALARY_HISTORY SALES

SQL>select * from sales;

Here is one screenshot

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

7 comments

  • This doesn’t seem to work on AMD64. I’m using Kubuntu (Dapper). After performing a make, editing some source lines for precision problems, and make’ing successfully, I still get errors. Here’s my output for sudo make install:
    > sudo make install
    Password:
    make -C gen install
    make[1]: Entering directory `/d/installed_proggies/firebird-2.0.0.12654-ReleaseCandidate2/gen’
    make -f ../gen/Makefile.install install
    make[2]: Entering directory `/d/installed_proggies/firebird-2.0.0.12654-ReleaseCandidate2/gen’
    (cd ../gen; ./install/makeInstallImage.sh)
    cp: cannot stat `../doc/*.pdf’: No such file or directory
    mkdir -p ../gen/FirebirdSS-debuginfo-2.0.0.12654-ReleaseCandidate2.amd64
    for x in `(cd ../gen/buildroot; find)`; do
    FIL=../gen/buildroot/$x;
    D_FIL=../gen/FirebirdSS-debuginfo-2.0.0.12654-ReleaseCandidate2.amd64/`dirname ${x}`/.debug/`basename ${x}`.debug;
    if [ ! -h $FIL ] && readelf -h $FIL > /dev/null 2> /dev/null; then
    mkdir -p ../gen/FirebirdSS-debuginfo-2.0.0.12654-ReleaseCandidate2.amd64/`dirname $x`/.debug;
    echo Generating external debug info for $x;
    cp ${FIL} ${D_FIL};
    if objcopy –add-gnu-debuglink ${D_FIL} ${FIL}; > /dev/null 2> /dev/null; then
    echo Succeeded using objcopy from binutils;
    else
    echo Failed to set debug link for ${x};
    fi;
    echo Stripping unneeded symbols from ${x};
    objcopy –strip-debug –strip-unneeded ${FIL};
    fi;
    done
    Generating external debug info for ./opt/firebird/UDF/fbudf.so
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/UDF/fbudf.so
    Generating external debug info for ./opt/firebird/UDF/ib_udf.so
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/UDF/ib_udf.so
    Generating external debug info for ./opt/firebird/bin/qli
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/qli
    Generating external debug info for ./opt/firebird/bin/gbak
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gbak
    Generating external debug info for ./opt/firebird/bin/gdef
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gdef
    Generating external debug info for ./opt/firebird/bin/gfix
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gfix
    Generating external debug info for ./opt/firebird/bin/gpre
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gpre
    Generating external debug info for ./opt/firebird/bin/gsec
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gsec
    Generating external debug info for ./opt/firebird/bin/isql
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/isql
    Generating external debug info for ./opt/firebird/bin/fbmgr.bin
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/fbmgr.bin
    Generating external debug info for ./opt/firebird/bin/gstat
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gstat
    Generating external debug info for ./opt/firebird/bin/fbguard
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/fbguard
    Generating external debug info for ./opt/firebird/bin/fbserver
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/fbserver
    Generating external debug info for ./opt/firebird/bin/gsplit
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/gsplit
    Generating external debug info for ./opt/firebird/bin/fb_lock_print
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/bin/fb_lock_print
    Generating external debug info for ./opt/firebird/lib/libib_util.so
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/lib/libib_util.so
    Generating external debug info for ./opt/firebird/lib/libicudata.so.30.0
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/lib/libicudata.so.30.0
    Generating external debug info for ./opt/firebird/lib/libfbclient.so.2.0.0
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/lib/libfbclient.so.2.0.0
    Generating external debug info for ./opt/firebird/lib/libicuuc.so.30.0
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/lib/libicuuc.so.30.0
    Generating external debug info for ./opt/firebird/lib/libicui18n.so.30.0
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/lib/libicui18n.so.30.0
    Generating external debug info for ./opt/firebird/intl/fbintl
    Succeeded using objcopy from binutils
    Stripping unneeded symbols from ./opt/firebird/intl/fbintl
    mkdir -p ../gen/FirebirdSS-debuginfo-2.0.0.12654-ReleaseCandidate2.amd64/usr/lib64/.debug
    for x in `ls ../gen/FirebirdSS-debuginfo-2.0.0.12654-ReleaseCandidate2.amd64/opt/firebird/lib/.debug`; do
    ln -f -s /opt/firebird/lib/.debug/`basename $x` ../gen/FirebirdSS-debuginfo-2.0.0.12654-ReleaseCandidate2.amd64/usr/lib64/.debug;
    done
    mkdir -p ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64
    cp -r ../gen/install/scripts ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64
    cp -r ../gen/install/scripts/tarMainInstall.sh ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64/install.sh
    chmod a+x ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64/install.sh ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64/scripts/*sh
    (cd ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64; tar -C ../buildroot -czf buildroot.tar.gz . )
    (cd ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64; tar -tzf buildroot.tar.gz > manifest.txt )
    (cd ../gen/FirebirdSS-2.0.0.12654-ReleaseCandidate2.amd64; ./install.sh)

    Firebird super 2.0.0.12654-ReleaseCandidate2.amd64 Installation

    Press Enter to start installation or ^C to abort
    Extracting install data
    Updated /etc/services
    Usage: useradd [options] LOGIN

    Options:
    -b, –base-dir BASE_DIR base directory for the new user account
    home directory
    -c, –comment COMMENT set the GECOS field for the new user account
    -d, –home-dir HOME_DIR home directory for the new user account
    -D, –defaults print or save modified default useradd
    configuration
    -e, –expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
    -f, –inactive INACTIVE set password inactive after expiration
    to INACTIVE
    -g, –gid GROUP force use GROUP for the new user account
    -G, –groups GROUPS list of supplementary groups for the new
    user account
    -h, –help display this help message and exit
    -k, –skel SKEL_DIR specify an alternative skel directory
    -K, –key KEY=VALUE overrides /etc/login.defs defaults
    -m, –create-home create home directory for the new user
    account
    -o, –non-unique allow create user with duplicate
    (non-unique) UID
    -p, –password PASSWORD use encrypted password for the new user
    account
    -s, –shell SHELL the login shell for the new user account
    -u, –uid UID force use the UID for the new user account
    chown: `firebird:firebird’: invalid user
    chown: `firebird:firebird’: invalid user
    chown: `firebird:firebird’: invalid user
    chown: `firebird:firebird’: invalid user
    chown: `firebird:firebird’: invalid user
    chown: `firebird:firebird’: invalid user
    chown: `firebird:firebird’: invalid user
    Adding system startup for /etc/init.d/firebird …
    /etc/rc0.d/K20firebird -> ../init.d/firebird
    /etc/rc1.d/K20firebird -> ../init.d/firebird
    /etc/rc6.d/K20firebird -> ../init.d/firebird
    /etc/rc2.d/S14firebird -> ../init.d/firebird
    /etc/rc3.d/S14firebird -> ../init.d/firebird
    /etc/rc5.d/S14firebird -> ../init.d/firebird
    chown: `firebird:firebird’: invalid user
    Starting Firebird server: start-stop-daemon: user `firebird’ not found
    (Success)

    Fixing firebird’s shell to /bin/sh

    usermod: user firebird does not exist
    Starting Firebird server: start-stop-daemon: user `firebird’ not found
    (Success)
    Please enter new password for SYSDBA user: firebird
    Unable to complete network request to host “localhost”.
    Failed to establish a connection.
    Connection refused
    unable to open database

    Please enter new password for SYSDBA user: firebird

    This then becomes an infinite loop 🙁 Any help would be greatly appreciated.

  • try to add firebird user
    and run the sudo make install again

  • That did it. Thanks!

  • sorry for the newbie post – but, after installing on Ubuntu 6.0 I can connect to server locally – and using Flamerobin, I can connect to server from windows client – and retrieve server version – but, I cannot connect to database or create database. TIA.

  • you need to create an directory lets say /opt/firebird2/databases where firebird user
    can read write
    You can test creating an empty database in /tmp for testing first

  • Thank you very much. I have fb SS version 2 running now on Ubuntu 6.0. I can connect using isql locally. Using a remote client (laptop with a 802.11g wireless – good connection), I can connect to the server but it is VERY slow(using isql and an application with .NET provider). Queries and results from stored procedures take several minutes – whereas the same applications on a Win XP server are instantaneous. The database on linux was created using a transportable backup from the Win XP server. TIA!

  • Replying to self. I found that the error was for file permission on the database file
    using
    $chmod o+rw
    fixed the issue. Thanks!

Leave a Reply