Firebird 4.0 のまで残件 [Firebird]
これは、 Firebird Advent Calendar 2018 https://qiita.com/advent-calendar/2018/firebird の17日目の記事です。
2.0をリリースしてから3.0 をリリースするまで10年もかかってしまったことの反省から、
「4.0 以降は1~2年毎にリリースしようねー」
という話になっていたと思うのだが、Firebird3.0 がリリースされて2年半以上の時が過ぎている・・・
Firebird 4.0 の Planning Board を確認してみた。
https://www.firebirdsql.org/en/planning-board/
IN PROGRESS になっている残件は以下の通り。
Mandatory features
++++++++++++++++++++
- 論理レプリケーション CORE-2021
- 統計情報の最適化 CORE-1082, CORE-1686
Optional features
++++++++++++++++++++
- Window 関数の拡張 CORE-1688 (ほぼ実装。残件は CORE-5338 )
- Time Zone サポートCORE-694, CORE-909 (マージ済み? )
Firebird に論理レプリケーション求めているひとあんまいなさそうだし、
もう残りは次のリリース(5.0?)に延期して、とっとと Firebird 4.0 リリースしても
いいんじゃないかなぁ・・・と感じている今日この頃。
2.0をリリースしてから3.0 をリリースするまで10年もかかってしまったことの反省から、
「4.0 以降は1~2年毎にリリースしようねー」
という話になっていたと思うのだが、Firebird3.0 がリリースされて2年半以上の時が過ぎている・・・
Firebird 4.0 の Planning Board を確認してみた。
https://www.firebirdsql.org/en/planning-board/
IN PROGRESS になっている残件は以下の通り。
Mandatory features
++++++++++++++++++++
- 論理レプリケーション CORE-2021
- 統計情報の最適化 CORE-1082, CORE-1686
Optional features
++++++++++++++++++++
- Window 関数の拡張 CORE-1688 (ほぼ実装。残件は CORE-5338 )
- Time Zone サポートCORE-694, CORE-909 (マージ済み? )
Firebird に論理レプリケーション求めているひとあんまいなさそうだし、
もう残りは次のリリース(5.0?)に延期して、とっとと Firebird 4.0 リリースしても
いいんじゃないかなぁ・・・と感じている今日この頃。
Firebird 4.0 のTimeZone サポート [Firebird]
これは、 Firebird Advent Calendar 2018 https://qiita.com/advent-calendar/2018/firebird の11日目の記事です。
長いこと放置されているように見えたのですが、
つい二週間ほど前に、タイムゾーンサポートの Pull Request が master にマージされました。
まだ、足りないところもあるのかもしれませんが、もう後には引けないので
Firebird 4.0 ではタイムゾーン付きの time, timestamp が使えるようになります。
ドキュメントはこちら↓
https://github.com/FirebirdSQL/firebird/blob/master/doc/sql.extensions/README.time_zone.md
以下、最新の master をビルドして isql で実行してみた結果です
長いこと放置されているように見えたのですが、
つい二週間ほど前に、タイムゾーンサポートの Pull Request が master にマージされました。
まだ、足りないところもあるのかもしれませんが、もう後には引けないので
Firebird 4.0 ではタイムゾーン付きの time, timestamp が使えるようになります。
ドキュメントはこちら↓
https://github.com/FirebirdSQL/firebird/blob/master/doc/sql.extensions/README.time_zone.md
以下、最新の master をビルドして isql で実行してみた結果です
CREATE TABLE tz_test ( id INTEGER NOT NULL, t TIME WITH TIME ZONE, ts TIMESTAMP WITH TIME ZONE ); INSERT INTO tz_test (id, t, ts) values (1, '12:34:56', '1967-08-11 23:45:01'); select * from tz_test; ID T TS ============ ============================================== ========================================================= 1 12:34:56.0000 Etc/UTC 1967-08-11 23:45:01.0000 Etc/UTC SET TIME ZONE 'Asia/Tokyo'; INSERT INTO tz_test (id, t, ts) values (2, '12:34:56', '1967-08-11 23:45:01'); select * from tz_test; ID T TS ============ ============================================== ========================================================= 1 12:34:56.0000 Etc/UTC 1967-08-11 23:45:01.0000 Etc/UTC 2 12:34:56.0000 Asia/Tokyo 1967-08-11 23:45:01.0000 Asia/Tokyo
Firebird データのバックアップとリストア [Firebird]
これは、 Firebird Advent Calendar 2018 https://qiita.com/advent-calendar/2018/firebird の5日目の記事です。
https://nakagami.blog.so-net.ne.jp/2018-12-02 にインストールについて書いたのですが、
最近、Firebird を使ってみたという日本語の記事を見ないので、
もしかしてバックアップとかリストアとかの手順についても、ロストテクノロジーなの?
・・・ということに気づいて、ごく基本的な Firebird のデーターベースのバックアップとリストアにつても書きます。
【サービスを停止してデーターベースをコピーする】
Firebird は、1ファイル=1データーベースなので、データーベースファイルをコピーすることで、バックアップ
することができます。
コピーでバックアップする場合は、 firebird のサービスは止めておいたほうが良いでしょう。
ファイルをどこかにコピー
【オンラインでバックアップ、リストア】
gbak というコマンドで、バックアップとリストアができます。
gbak を使うと、firebird のサービスを動かしたままバックアップとリストアができます。
バックアップ
リストア
同じファイルにリストア
と出てしまうので
と -rep オプションをつけます
https://nakagami.blog.so-net.ne.jp/2018-12-02 にインストールについて書いたのですが、
最近、Firebird を使ってみたという日本語の記事を見ないので、
もしかしてバックアップとかリストアとかの手順についても、ロストテクノロジーなの?
・・・ということに気づいて、ごく基本的な Firebird のデーターベースのバックアップとリストアにつても書きます。
【サービスを停止してデーターベースをコピーする】
Firebird は、1ファイル=1データーベースなので、データーベースファイルをコピーすることで、バックアップ
することができます。
コピーでバックアップする場合は、 firebird のサービスは止めておいたほうが良いでしょう。
sudo systemctl stop firebird3.0
ファイルをどこかにコピー
sudo systemctl start firebird3.0
【オンラインでバックアップ、リストア】
gbak というコマンドで、バックアップとリストアができます。
gbak を使うと、firebird のサービスを動かしたままバックアップとリストアができます。
バックアップ
sudo gbak -b /var/firebird/myfirst.fdb /tmp/myfirst20181205.fbk
リストア
sudo gbak -r /tmp/myfirst20181205.fbk /var/firebird/myrestore.fdb
同じファイルにリストア
$ sudo gbak -r /tmp/myfirst20181205.fbk /var/firebird/myfirst.fdb gbak: ERROR:database /var/firebird/myfirst.fdb already exists. To replace it, use the -REP switch gbak:Exiting before completion due to errors
と出てしまうので
sudo gbak -r /tmp/myfirst20181205.fbk /var/firebird/myfirst.fdb -rep
と -rep オプションをつけます
Ubuntu に Firebird3.0 をインストール [Firebird]
これは、 Firebird Advent Calendar 2018 https://qiita.com/advent-calendar/2018/firebird の2日目の記事です。
2018年の Firebird 的な大きな出来事と言えば、個人的には Ubuntu 18.04 LTS のパッケージで Firebird 3.0 がインストールできるようになったことです。
Ubuntu 16.04 は、Firebird 2.5 でした。
Ubuntu 17.10 の頃には Firebird 3.0 のパッケージが用意されていたのですが、やはり、LTS で使えることには大きいと思っています。
というわけで、Ubuntu で、Firebird を使うまでの手順を以下に書いておきます。
【Firebird3.0のインストール】
インストールの途中で、SYSDBA ユーザーのパスワードを聞かれます。
$ sudo apt install firebird3.0 -y
Firebird のコマンドツールは isql という名前ですが、 Debian/Firebird では、isql-fb という名前になっています。
【データーベースを置くディレクトリの作成】
Firebird では、1データーベース=1ファイルの構成になっていて、Ubuntu では、そのファイルが firebird ユーザーで読み書きできる権限が必要です。
どこでもよいのですが、今回は /var/firebird ディレクトリを読み書きできるようにして、そこにデーターベースファイルを置くようにしてみます。
$ sudo mkdir /var/firebird
$ sudo chown firebird:firebird /var/firebird
$ ls -l /var |grep firebird
【データーベースの作成】
/var/firebird に myfirst.fdb というデーターベースを作ってみます。下記XXXXは、インストール時に設定したパスワード
$ isql-fb -U sysdba -P XXXXX
【データーベースへの接続】
既存のデーターベースに接続します。
$ isql-fb -U sysdba -P XXXXX localhost:/var/firebird/myfirst.fdb
Database: localhost:/var/firebird/myfirst.fdb, User: SYSDBA
SQL>
【サーバーのコンフィギュレーション】
/etc/firebird/3.0/firebird.conf にサーバーの設定が書かれています。
例えば、 localhost 以外からの接続を許可したい場合は、このファイルの
2018年の Firebird 的な大きな出来事と言えば、個人的には Ubuntu 18.04 LTS のパッケージで Firebird 3.0 がインストールできるようになったことです。
Ubuntu 16.04 は、Firebird 2.5 でした。
Ubuntu 17.10 の頃には Firebird 3.0 のパッケージが用意されていたのですが、やはり、LTS で使えることには大きいと思っています。
というわけで、Ubuntu で、Firebird を使うまでの手順を以下に書いておきます。
【Firebird3.0のインストール】
インストールの途中で、SYSDBA ユーザーのパスワードを聞かれます。
$ sudo apt install firebird3.0 -y
Password for SYSDBA:SYSDBA のパスワードをあとで変更するのは
$ sudo dpkg-reconfigure firebird3.0-serverでできます。
Firebird のコマンドツールは isql という名前ですが、 Debian/Firebird では、isql-fb という名前になっています。
【データーベースを置くディレクトリの作成】
Firebird では、1データーベース=1ファイルの構成になっていて、Ubuntu では、そのファイルが firebird ユーザーで読み書きできる権限が必要です。
どこでもよいのですが、今回は /var/firebird ディレクトリを読み書きできるようにして、そこにデーターベースファイルを置くようにしてみます。
$ sudo mkdir /var/firebird
$ sudo chown firebird:firebird /var/firebird
$ ls -l /var |grep firebird
drwxr-xr-x 2 firebird firebird 4096 Dec 1 07:20 firebird
【データーベースの作成】
/var/firebird に myfirst.fdb というデーターベースを作ってみます。下記XXXXは、インストール時に設定したパスワード
$ isql-fb -U sysdba -P XXXXX
Use CONNECT or CREATE DATABASE to specify a database SQL> create database 'localhost:/var/firebird/myfirst.fdb';(Ctrl+D で isql-fb を終了)
【データーベースへの接続】
既存のデーターベースに接続します。
$ isql-fb -U sysdba -P XXXXX localhost:/var/firebird/myfirst.fdb
Database: localhost:/var/firebird/myfirst.fdb, User: SYSDBA
SQL>
【サーバーのコンフィギュレーション】
/etc/firebird/3.0/firebird.conf にサーバーの設定が書かれています。
例えば、 localhost 以外からの接続を許可したい場合は、このファイルの
RemoteBindAddress = localhostこの部分を書き換えます
LibreOffice 6.1 リリース [Firebird]
8/9 に、LibreOffice 6.1 がリリースされた。
Base で、いったん外れていた Firebird の embedded engine が再び使えるようになった。
・・・らしいので 手元の Windows に LibreOffice 6.1 をインストールしてみた。
そのまま使えるかと思ったら、デフォルトでは HSQLDB しか使えなくて、ここにあるよ「LibreOffice」→「詳細」→「実験的な機能を有効にする」で
https://www.gesource.jp/weblog/?p=6400
Base データベースを新規作成するときに「Firebird(埋め込み)」が選べるようになった。
将来的には、HSQLDB がサポートから外れて Firebird がデフォルトになるらしい。
途中でデーターベースエンジンを変更するとは大胆だが、 LibreOffice がデーターベースエンジンのメンテナンスをするつもりはないようなので、そういう選択もありかなと思った。
また、「既存のデーターベースに接続」で「Firebirdのファイル」を選択できるようになった。
作成された .odb ファイルを unzip するとdatabase/firebird.fbk というファイルが
できて Firebird のバックアップファイルらしい。
そのうちバージョンも確認したいけど、 ここらへんを見ると Firebird3 のようだ
https://www.firebirdnews.org/firebird-3-by-default-in-libreoffice-5-4-base/
Base で、いったん外れていた Firebird の embedded engine が再び使えるようになった。
・・・らしいので 手元の Windows に LibreOffice 6.1 をインストールしてみた。
そのまま使えるかと思ったら、デフォルトでは HSQLDB しか使えなくて、ここにあるよ「LibreOffice」→「詳細」→「実験的な機能を有効にする」で
https://www.gesource.jp/weblog/?p=6400
Base データベースを新規作成するときに「Firebird(埋め込み)」が選べるようになった。
将来的には、HSQLDB がサポートから外れて Firebird がデフォルトになるらしい。
途中でデーターベースエンジンを変更するとは大胆だが、 LibreOffice がデーターベースエンジンのメンテナンスをするつもりはないようなので、そういう選択もありかなと思った。
また、「既存のデーターベースに接続」で「Firebirdのファイル」を選択できるようになった。
作成された .odb ファイルを unzip するとdatabase/firebird.fbk というファイルが
できて Firebird のバックアップファイルらしい。
そのうちバージョンも確認したいけど、 ここらへんを見ると Firebird3 のようだ
https://www.firebirdnews.org/firebird-3-by-default-in-libreoffice-5-4-base/
Firebird4.0 Planning Board 2017 update [Firebird]
この記事はFirebird Advent Calendar 2017 https://qiita.com/advent-calendar/2017/firebird の24日目の記事です。
Firebird Advent Calendar 2016 の http://nakagami.blog.so-net.ne.jp/2016-12-19 の振り返り
↑を書いた時には、Planning Board にある Deadline は遅れに遅れていたのですが、その後日付が見直されて、現在は妥当な進捗になっているようです。
Firebird の Planning Board はここにあります
https://www.firebirdsql.org/en/planning-board/
各機能の status を見ても、(間に合わなさそうな issue の status を POSTPOND にすることも考えると)Beta Release の2018-01-01 も、無理ではない気がします。
Firebird 4.0 の alpha1 はリリース済みです
https://www.firebirdsql.org/en/news/firebird-4-0-alpha-1-release-is-available-for-testing/
まだ、実装予定の機能もあるみたいなんですが、 個人的には alpah1 の機能で 4.0 をリリースしちゃってもらって、未実装の機能は 5.0 以降でいいかな、と思います。
4.0 まで未実装の機能↓
http://tracker.firebirdsql.org/secure/IssueNavigator.jspa?reset=true&mode=hide&sorter/order=DESC&sorter/field=priority&resolution=-1&pid=10000&fixfor=10750
COMPLETE になっていて私が注目している機能は以下のようなところです
- 物理スタンバイ
- 31文字以上の識別子(63文字)
- Windows 関数の追加
- Decimal の精度向上 https://github.com/FirebirdSQL/firebird/pull/108/files
IN PROGRESS で注目している機能は
- ビルトイン論理レプリケーション
です
Firebird Advent Calendar 2016 の http://nakagami.blog.so-net.ne.jp/2016-12-19 の振り返り
↑を書いた時には、Planning Board にある Deadline は遅れに遅れていたのですが、その後日付が見直されて、現在は妥当な進捗になっているようです。
Firebird の Planning Board はここにあります
https://www.firebirdsql.org/en/planning-board/
各機能の status を見ても、(間に合わなさそうな issue の status を POSTPOND にすることも考えると)Beta Release の2018-01-01 も、無理ではない気がします。
Firebird 4.0 の alpha1 はリリース済みです
https://www.firebirdsql.org/en/news/firebird-4-0-alpha-1-release-is-available-for-testing/
まだ、実装予定の機能もあるみたいなんですが、 個人的には alpah1 の機能で 4.0 をリリースしちゃってもらって、未実装の機能は 5.0 以降でいいかな、と思います。
4.0 まで未実装の機能↓
http://tracker.firebirdsql.org/secure/IssueNavigator.jspa?reset=true&mode=hide&sorter/order=DESC&sorter/field=priority&resolution=-1&pid=10000&fixfor=10750
COMPLETE になっていて私が注目している機能は以下のようなところです
- 物理スタンバイ
- 31文字以上の識別子(63文字)
- Windows 関数の追加
- Decimal の精度向上 https://github.com/FirebirdSQL/firebird/pull/108/files
IN PROGRESS で注目している機能は
- ビルトイン論理レプリケーション
です
Firebird Contributors [Firebird]
この記事はFirebird Advent Calendar 2017 https://qiita.com/advent-calendar/2017/firebird の2120日目の記事です。(間違えてた&間に合ってない。21日に書いたけど 20日の記事でした)
いつの頃からかわからないんですが、Firebird の公式サイトの Contributors のページに名前載ってました。
https://www.firebirdsql.org/en/contributors/
Jim Starkey, Ann Harrison ご夫妻と名前を連ねることができて大変光栄です。
まあ、このお二方は、名誉職的なポジションですが、RedSoft Corporation という会社の人たちが、最近の Firebird の重要な機能の寄贈をしてくれていて、その人たちと一緒に Contributers に名前を載せていただいているのは、さらに光栄です。
いつの頃からかわからないんですが、Firebird の公式サイトの Contributors のページに名前載ってました。
https://www.firebirdsql.org/en/contributors/
Jim Starkey, Ann Harrison ご夫妻と名前を連ねることができて大変光栄です。
まあ、このお二方は、名誉職的なポジションですが、RedSoft Corporation という会社の人たちが、最近の Firebird の重要な機能の寄贈をしてくれていて、その人たちと一緒に Contributers に名前を載せていただいているのは、さらに光栄です。
pyfirebirdsql 1.0.1 released [Firebird]
この記事はFirebird Advent Calendar 2017 https://qiita.com/advent-calendar/2017/firebird の17日目の記事です。
python の Firebird データーベースドライバー pyfirebirdsql の 1.0.1 を昨日リリースしました
https://pypi.python.org/pypi/firebirdsql/1.0.1
1.0.0 をリリースしたのが昨年のアドベントカレンダー6日目なので、1年ぶりのリリースです
http://nakagami.blog.so-net.ne.jp/2016-12-06
機能の追加は IPv6 サポートだけです。
もう、あまり機能の追加をする気はないのですが、Firebird 4.0 になると、新しいデータ型が追加されるようなので、その時には対応したバージョンを出すと思います。
python の Firebird データーベースドライバー pyfirebirdsql の 1.0.1 を昨日リリースしました
https://pypi.python.org/pypi/firebirdsql/1.0.1
1.0.0 をリリースしたのが昨年のアドベントカレンダー6日目なので、1年ぶりのリリースです
http://nakagami.blog.so-net.ne.jp/2016-12-06
機能の追加は IPv6 サポートだけです。
もう、あまり機能の追加をする気はないのですが、Firebird 4.0 になると、新しいデータ型が追加されるようなので、その時には対応したバージョンを出すと思います。
Firebird 3.0 の新しい SQL 構文 [Firebird]
この記事はFirebird Advent Calendar 2017 https://qiita.com/advent-calendar/2017/firebird の15日目の記事です。
いままでと重複あるかもしれませんが、ここで Firebird3.0 のリリースノートを見直して、新しい SQL 構文を自分で試してみました。
https://firebirdsql.org/file/documentation/release_notes/Firebird-3.0.0-ReleaseNotes.pdf
(トリガーは自分は使わなさそうなので試してません)
【BOOLEAN Type】
いままでは 0/1 で持っていたのですが、BOOLEAN 型ができました。
MySQL の boolean みたいに 1/0 じゃなくて true/false が返ります。
【自動インクリメント型のカラム定義】
今までも、 generator + trigger を使うとか、sequence を使うとかで、
自動インクリメントで採番するカラムの作成はできたんですが
https://firebirdsql.org/refdocs/langrefupd21-ddl-sequence.html
より、直接的に書ける方法ができました。
採番される値をリセットするには、以下のような SQL文を使います
WITH 100 を付けた場合、次の INSERT 文では 101 が設定されます。
【カラムの NOT NULL 制約を付ける、外す】
カラムの NOT NULL 制約を付けたり外したりするのに、今まではシステムテーブルを update するという荒業が行われていました。
http://www.firebirdfaq.org/faq103/
Firebird 3.0 から、このシステムテーブルの update ができなくなり(エラーになり)代わりに、カラムの nullability を設定する直接的な ALTER 文が書けるようになりました。
table に NOT NULL 制約を付ける
ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
table の NOT NULL 制約を外す
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
【OFFSET/FETCH 句】
結果セットの中の「何行目から何行」という指定をしたいときは、
いままでも、 FIRST ~ SKIP という構文は使えました。
https://scott.yang.id.au/2004/01/limit-in-select-statements-in-firebird.html
SQL:2008 標準で OFFSET ~ FETCH という構文があるそうで、Firebird 3.0 で、それが使えるようになりました
いままでと重複あるかもしれませんが、ここで Firebird3.0 のリリースノートを見直して、新しい SQL 構文を自分で試してみました。
https://firebirdsql.org/file/documentation/release_notes/Firebird-3.0.0-ReleaseNotes.pdf
(トリガーは自分は使わなさそうなので試してません)
【BOOLEAN Type】
いままでは 0/1 で持っていたのですが、BOOLEAN 型ができました。
SQL> CREATE TABLE bool_table (b BOOLEAN); SQL> INSERT INTO bool_table (b) VALUES (TRUE); SQL> INSERT INTO bool_table (b) VALUES (FALSE); SQL> INSERT INTO bool_table (b) VALUES (NULL);
MySQL の boolean みたいに 1/0 じゃなくて true/false が返ります。
【自動インクリメント型のカラム定義】
今までも、 generator + trigger を使うとか、sequence を使うとかで、
自動インクリメントで採番するカラムの作成はできたんですが
https://firebirdsql.org/refdocs/langrefupd21-ddl-sequence.html
より、直接的に書ける方法ができました。
SQL> CREATE TABLE id_table (id INTEGER GENERATED BY DEFAULT AS IDENTITY, name VARCHAR(30)); SQL> INSERT INTO id_table (name) VALUES ('nakagami'); SQL> SELECT * FROM id_table; ID NAME ============ ============================== 1 nakagami
採番される値をリセットするには、以下のような SQL文を使います
SQL> ALTER TABLE id_table ALTER COLUMN id RESTART; SQL> ALTER TABLE id_table ALTER COLUMN id RESTART WITH 100;
WITH 100 を付けた場合、次の INSERT 文では 101 が設定されます。
【カラムの NOT NULL 制約を付ける、外す】
カラムの NOT NULL 制約を付けたり外したりするのに、今まではシステムテーブルを update するという荒業が行われていました。
http://www.firebirdfaq.org/faq103/
Firebird 3.0 から、このシステムテーブルの update ができなくなり(エラーになり)代わりに、カラムの nullability を設定する直接的な ALTER 文が書けるようになりました。
table に NOT NULL 制約を付ける
ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
table の NOT NULL 制約を外す
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
【OFFSET/FETCH 句】
結果セットの中の「何行目から何行」という指定をしたいときは、
いままでも、 FIRST ~ SKIP という構文は使えました。
https://scott.yang.id.au/2004/01/limit-in-select-statements-in-firebird.html
SQL:2008 標準で OFFSET ~ FETCH という構文があるそうで、Firebird 3.0 で、それが使えるようになりました
SQL> select id from id_table order by id; ID ============ 1 2 3 4 SQL> select id from id_table order by id offset 1 rows fetch next 2 rows only; ID ============ 2 3
Firebird をソースからビルドして Ubuntu 17.10 にインストールする [Firebird]
この記事はFirebird Advent Calendar 2017 https://qiita.com/advent-calendar/2017/firebird の10日目の記事です。
過去にソースからインストールした手順・・・
http://nakagami.blog.so-net.ne.jp/2013-10-19
http://nakagami.blog.so-net.ne.jp/2014-12-17
の 2017年版です。
- 必要なパッケージのインストール
sudo apt update
sudo apt install -y libtommath1 libtommath-dev libtomcrypt-dev
sudo apt install -y autoconf cmake libtool g++ btyacc
sudo apt install -y zlib1g-dev libicu-dev libreadline-dev libncurses5-dev
- (試行錯誤の結果、パッケージの firebird3.0 をインストールして削除)
sudo apt install -y firebird3.0
sudo apt remove -y firebird3.0
./autogen.sh --prefix=/opt/firebird
make
sudo make install
途中、うまくビルドできなくて試行錯誤した時に、パッケージの Firebird3.0 をインストール→アンインストールしました。
firebird というユーザーができたからうまくいったと思っているんですが、原因はよくわからず、クリーンな正しい手順はわかりません。
また、インストールした apt パッケージに、本来不要なものも入っているのかもしれません。
ただ、Ubuntu のインストール直後に apt install したので足りないものはないと思います。
Created symlink /etc/systemd/system/multi-user.target.wants/firebird.service → /lib/systemd/system/firebird.service. と出るので、それを削除すれば、復旧はできそう
cmake を使って
過去にソースからインストールした手順・・・
http://nakagami.blog.so-net.ne.jp/2013-10-19
http://nakagami.blog.so-net.ne.jp/2014-12-17
の 2017年版です。
- 必要なパッケージのインストール
sudo apt update
sudo apt install -y libtommath1 libtommath-dev libtomcrypt-dev
sudo apt install -y autoconf cmake libtool g++ btyacc
sudo apt install -y zlib1g-dev libicu-dev libreadline-dev libncurses5-dev
- (試行錯誤の結果、パッケージの firebird3.0 をインストールして削除)
sudo apt install -y firebird3.0
sudo apt remove -y firebird3.0
./autogen.sh --prefix=/opt/firebird
make
sudo make install
途中、うまくビルドできなくて試行錯誤した時に、パッケージの Firebird3.0 をインストール→アンインストールしました。
firebird というユーザーができたからうまくいったと思っているんですが、原因はよくわからず、クリーンな正しい手順はわかりません。
また、インストールした apt パッケージに、本来不要なものも入っているのかもしれません。
ただ、Ubuntu のインストール直後に apt install したので足りないものはないと思います。
Created symlink /etc/systemd/system/multi-user.target.wants/firebird.service → /lib/systemd/system/firebird.service. と出るので、それを削除すれば、復旧はできそう
cmake を使って
cd firebird mkdir build cd build cmake ..でビルドできるはずなんですが、コンパイルエラーが出ていて
firebird/src/include/../common/common.h:558:2: error: #error Define FB_CPU for your platform #error Define FB_CPU for your platformこちらはまだ途上なのかな、と思いました。