インストール
以下では、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