Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Locked History Actions

firebird/Install

インストール

以下では、CentOSにrpmパッケージをインストールする場合のみを記述している。

サービス起動方式

特に注意が必要なのは、バージョンあるいはアーキテクチャによって起動方法が異なること。次の二つの方式がある(ようだ)。

  • linuxのサービスとしてインストールされる
    /etc/rc.d/init.d/firebirdというスクリプトが生成されるので、これを直接使うか、あるいは「service firebird start」などとして起動する。

  • xinetdのサービスとしてインストールされる
    /etc/xinetd.d/firebirdという設定ファイルが生成され、起動はxinetdから自動で行われる。

どういう場合に前者をあるいは後者を選択しているのかは不明だが、前者のタイプを使い続けていた場合に後者をインストールすると、なぜサービスが登録されないのかと悩むことになる。

また、Firebird 2.5 Quick Start Guideのような文書にさえ、この件については何も記述されていない。わずかにAppendix A: Firebird server architecturesにそれを匂わせるような記述があるのみである。

パスワード変更

Windowsの場合はsysdbaのパスワードはデフォルトでmasterkeyになっているが、linuxではインストールごとに変更される。 これはインストールディレクトリトップのSYSDBA.passwordに記述されており、これを変更するにはbin/changeDBAPassword.shを使用する。

CentOS6.2へのインストール

「October 04, 2011 FirebirdSS-2.5.1.26351-0.amd64.rpm」をCentos6.2にインストールしようとすると、

error: Failed dependencies:
        libncurses.so.5 is needed by FirebirdSS-2.5.1.26351-0.amd64
        libstdc++.so.6 is needed by FirebirdSS-2.5.1.26351-0.amd64

となる、ところがlibncurses.so.5とlibstdc++.so.6はインストール済み。 この件については以下(FirebirdCSでも同じ)。

http://tracker.firebirdsql.org/browse/CORE-3803

libncurses.so.5及びlibstdc++.so.6はインストールされているにも関わらず、それが認識されないため、インストール時に--nodepsフラグをつけてインストールする方法が提案されている。

上では、tarボールからインストールするか、あるいはfirebirdsqlから配布されているrpmではなく、epelからの配布rpmを使えとある。

--nodepsフラグでインストールする

単に上で提案されているように

rpm -ivh --nodeps FirebirdSS....

としてインストールする。

ただし、ipv6トラブルを参照のこと。

ipv6及びhostsファイルの設定をきちんとしないと、DBに接続できなくなる。

isqlで接続した場合

/opt/firebird/bin/isql -user sysdba -password masterkey sample.fdb
Statement failed, SQLSTATE = 08001
I/O error during "open" operation for file "sample.fdb"
-Error while trying to open file
-No such file or directory
Use CONNECT or CREATE DATABASE to specify a database
SQL> 

Jaybirdで接続した場合

Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544721. Unable to complete network request to host "localhost".
Reason: Unable to complete network request to host "localhost".
        at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:122)
        at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:131)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)

epelからの配布rpmをインストールする

しかし、後者の方法だと、インストールされるディレクトリが「標準」ではない(標準rpmとは異なるディレクトリにインストールされてしまう)。が、この方法が最も簡単のようだ。

epelのレポジトリを登録する。以下を参考

インストールする。superclassicも用意されているようだが、今回はsuperserverにする。

yum install firebird firebird-superserver

インストールされるものは以下。

rpm -qa | grep -i firebird
firebird-superserver-2.5.1.26351.0-1.el6.x86_64
firebird-libfbembed-2.5.1.26351.0-1.el6.x86_64
firebird-libfbclient-2.5.1.26351.0-1.el6.x86_64
firebird-2.5.1.26351.0-1.el6.x86_64
firebird-filesystem-2.5.1.26351.0-1.el6.x86_64

このうち、firebirdパッケージの中身を見てみる。

# rpm -ql firebird
/etc/firebird
/etc/firebird/aliases.conf
/etc/firebird/fbintl.conf
/etc/firebird/fbtrace.conf
/etc/firebird/firebird.conf
/etc/logrotate.d/firebird
/usr/bin/fb_config
/usr/bin/fbsvcmgr
/usr/bin/fbtracemgr
/usr/bin/gbak
/usr/bin/gdef
/usr/bin/gfix
/usr/bin/gpre
/usr/bin/gsec
/usr/bin/gsplit
/usr/bin/gstat-fb
/usr/bin/isql-fb
/usr/bin/nbackup
/usr/bin/qli
/usr/lib64/firebird
/usr/lib64/firebird/UDF
/usr/lib64/firebird/UDF/fbudf.so
/usr/lib64/firebird/UDF/fbudf.sql
/usr/lib64/firebird/UDF/ib_udf.so
/usr/lib64/firebird/UDF/ib_udf.sql
/usr/lib64/firebird/UDF/ib_udf2.sql
/usr/lib64/firebird/intl
/usr/lib64/firebird/intl/fbintl
/usr/lib64/firebird/intl/fbintl.conf
/usr/lib64/libib_util.so
/usr/sbin/fb_lock_print
/usr/sbin/fbguard
/usr/share/doc/firebird-2.5.1.26351.0
/usr/share/doc/firebird-2.5.1.26351.0/IDPL.txt
/usr/share/doc/firebird-2.5.1.26351.0/README.Fedora
/usr/share/doc/firebird-2.5.1.26351.0/README.license.usage.txt
/var/lib/firebird
/var/lib/firebird/data
/var/lib/firebird/data/employee.fdb
/var/lib/firebird/system/de_DE.msg
/var/lib/firebird/system/firebird.msg
/var/lib/firebird/system/fr_FR.msg
/var/lib/firebird/system/help.fdb
/var/lib/firebird/system/security2.fdb
/var/log/firebird
/var/log/firebird/firebird.log
/var/run/firebird

上のようにコマンドは/usr/binにインストールされ、パスワードデータベース等は/var/lib/firebird以下にある。 /usr/share/doc/firebird-2.5.1.26351.0/README.Fedoraの注意事項を読む。

  • /usr/bin中のgbak,gsec,gfix,nbackupはシンボリックリンクになっている(これらのリンクはfirebirdパッケージに含まれるが、実体はfirebird-superserver中にある)。isql,gstatはisql-fb,gstat-fbという名前に変更してある。
  • superserverの起動はservice firebird startとする。classicサーバはchkconfig firebird onとする。ブート時にsuperserverを起動するには、chkconfig --level 345 firebird onとする。-->これは適用されない。superserverの場合、service firebird-superserver start及びchkconfig firebird-superserver onとなる。

  • その他、非互換性について

※sysdbaのパスワードはランダムに決定されるオリジナルとは異なり、masterkeyとなっている。

CentOS7へのインストール

rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum install firebird-superserver

このほかにfirebird-classic,firebird-superclassicがある。

インストールされるものは以下。

/usr/lib/systemd/system/firebird-superserver.service
/usr/lib64/firebird/bin-superserver
/usr/lib64/firebird/bin-superserver/fb_config
/usr/lib64/firebird/bin-superserver/fbsvcmgr
/usr/lib64/firebird/bin-superserver/fbtracemgr
/usr/lib64/firebird/bin-superserver/gbak
/usr/lib64/firebird/bin-superserver/gdef
/usr/lib64/firebird/bin-superserver/gfix
/usr/lib64/firebird/bin-superserver/gpre
/usr/lib64/firebird/bin-superserver/gsec
/usr/lib64/firebird/bin-superserver/gsplit
/usr/lib64/firebird/bin-superserver/gstat
/usr/lib64/firebird/bin-superserver/isql
/usr/lib64/firebird/bin-superserver/nbackup
/usr/lib64/firebird/bin-superserver/qli
/usr/lib64/firebird/plugins-superserver
/usr/lib64/firebird/plugins-superserver/libfbtrace.so
/usr/sbin/fbserver
/usr/share/doc/firebird-superserver-2.5.4.26856.0
/usr/share/doc/firebird-superserver-2.5.4.26856.0/IDPL.txt
/usr/share/doc/firebird-superserver-2.5.4.26856.0/README.license.usage.txt

ln -s /usr/lib/systemd/system/firebird-superserver.service /etc/systemd/system
firebird-superserver.serviceの中身をいじる必要があるなら、コピーしてから編集
systemctl enable firebird-superserver.service
systemctl start firebird-superserver.service