= インストール =
以下では、CentOSにrpmパッケージをインストールする場合のみを記述している。
== サービス起動方式 ==
特に注意が必要なのは、バージョンあるいはアーキテクチャによって起動方法が異なること。次の二つの方式がある(ようだ)。
* linuxのサービスとしてインストールされる<
>/etc/rc.d/init.d/firebirdというスクリプトが生成されるので、これを直接使うか、あるいは「service firebird start」などとして起動する。
* xinetdのサービスとしてインストールされる<
>/etc/xinetd.d/firebirdという設定ファイルが生成され、起動はxinetdから自動で行われる。
どういう場合に前者をあるいは後者を選択しているのかは不明だが、前者のタイプを使い続けていた場合に後者をインストールすると、なぜサービスが登録されないのかと悩むことになる。
また、[[http://www.firebirdsql.org/manual/qsg25.html|Firebird 2.5 Quick Start Guide]]のような文書にさえ、この件については何も記述されていない。わずかに[[http://www.firebirdsql.org/manual/qsg25-appx-architectures.html|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....
}}}
としてインストールする。
ただし、[[Linux/ipv6-trouble|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のレポジトリを登録する。以下を参考
[[http://www.tooyama.org/yum-addrepo-epel.html]]
インストールする。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
}}}