2.12. その他

このセクションではUNIX系の環境でGroongaをソースコードからインストールする方法を説明します。

インストール にある特定環境用のドキュメントに、その環境向けのより詳細な情報があります。特定環境用のドキュメントがある場合は、まずそちらを参照してください。

2.12.1. 依存関係

Groongaは特別なライブラリを必要としませんが、いくつかビルドに必要なツールがあります。

2.12.1.1. ツール

以下が必要なツールです:

  • wgetcurl または Web ブラウザ(ソースアーカイブをダウンロードするため)

  • targzip (ソースアーカイブを展開するため)

  • シェル( dashbashzsh など、どのようなシェルでもたぶん大丈夫)

  • CコンパイラーとC++コンパイラー ( gccg++ がサポート対象だが、他のコンパイラーでもたぶん大丈夫)

  • make (GNU makeがサポート対象だが、BSD makeなど他のmakeでもたぶん大丈夫)

これらを用意してください。

シェルの代わりに CMake を使うこともできますが、このドキュメントではCMakeを使ってビルドする方法については説明しません。

以下はあるとよいツールです:

  • pkg-config (ライブラリを検出するため)

  • sudo (ビルドしたGroongaをインストールするため)

追加のライブラリを使いたい場合はこれらのツールを用意しておかなければいけません。

2.12.1.2. ライブラリ

どのライブラリも必須ではありません。以下はオプションとして使えるライブラリです:

これらのライブラリを使いたい場合は、Groongaをインストールする前にライブラリをインストールしてください。

2.12.2. ソースからビルド

GroongaはGNUビルドシステムを使っています。以下は一番簡単なビルド手順です:

% wget https://packages.groonga.org/source/groonga/groonga-13.0.0.tar.gz
% tar xvzf groonga-13.0.0.tar.gz
% cd groonga-13.0.0
% ./configure
% make
% sudo make install

上記の手順を実行すると /usr/local/bin/groongagroonga 実行ファイル がインストールされます。

デフォルトのビルドでもうまく動くでしょうが、 configure のときにGroongaをカスタマイズすることができます。

以下、それぞれの手順の詳細を説明します。

2.12.2.1. configure

まず configure を実行します。重要な configure のオプションは以下の通りです:

2.12.2.1.1. --prefix=PATH

インストール先となるディレクトリを指定します。Groonga関連のファイルは ${PATH}/ ディレクトリ以下にインストールされます。

デフォルトは /usr/local 。デフォルトの場合は groonga 実行ファイル/usr/local/bin/groonga にインストールされます。

以下はシステム全体にGroongaをインストールするのではなく、ユーザーが個人で使う目的で ~/local にインストールする例です:

% ./configure --prefix=$HOME/local

2.12.2.1.2. --localstatedir=PATH

ログファイル、PIDファイル、データベースなど頻繁に変更されるファイルを置くディレクトリを指定します。たとえば、ログファイルは ${PATH}/log/groonga.log に置かれます。

デフォルトは /usr/local/var です。

以下は頻繁に変更されるファイルをシステム全体で使う領域である /var に置く例です:

% ./configure --localstatedir=/var

2.12.2.1.3. --with-log-path=PATH

ログファイルのデフォルトのパスを指定します。ログファイルのデフォルトのパスは groonga 実行ファイル--log-path コマンドラインオプションで変更できます。そのため、このオプションはそんなに重要なビルドオプションではありません。少し便利にするためのオプションです。

デフォルトは /usr/local/var/log/groonga.log です。 /usr/local/var の部分は --localstatedir オプションで変更できます。

以下はログファイルを共有しているNFSディレクトリ /nfs/log/groonga.log に置く例です:

% ./configure --with-log-path=/nfs/log/groonga.log

2.12.2.1.4. --with-default-encoding=ENCODING

デフォルトのエンコーディングを指定します。有効なエンコーディングは euc_jpsjisutf8latin1koi8rnone です。

デフォルトは utf8 です。

以下はデフォルトのエンコーディングとしてShift_JISを使う例です:

% ./configure --with-default-encoding=sjis

2.12.2.1.5. --with-match-escalation-threshold=NUMBER

マッチ演算でエスカレーションをするかどうかのデフォルトの閾値を指定します。この閾値については match_escalation_threshold を参照してください。-1はマッチ演算でエスカレーションしないという意味です。

デフォルトは0です。

以下はデフォルトではマッチエスカレーションをしないという例です:

% ./configure --with-match-escalation-threshold=-1

2.12.2.1.6. --with-zlib

zlibを使ってカラム値を圧縮する機能を有効にします。

デフォルトでは無効です。

以下はzlibを使ってカラム値を圧縮する機能を有効にする例です:

% ./configure --with-zlib

2.12.2.1.7. --with-lz4

LZ4を使ってカラム値を圧縮する機能を有効にします。

デフォルトでは無効です。

以下はLZ4を使ってカラム値を圧縮する機能を有効にする例です:

% ./configure --with-lz4

2.12.2.1.8. --with-message-pack=MESSAGE_PACK_INSTALL_PREFIX

MessagePackがどこにインストールされているかを指定します。MessagePackを --prefix=/usr という configure オプションでインストールしていない場合は、MessagePackをビルドするときに指定したパスをこのオプションで指定してください。

もし、MessagePackを --prefix=$HOME/local という configure オプションでインストールした場合は、Groongaの configure では --with-message-pack=$HOME/local と指定してください。

デフォルトは /usr です。

以下はMessagePackが --prefix=$HOME/local という configure オプションでインストールされている場合の例です:

% ./configure --with-message-pack=$HOME/local

2.12.2.1.9. --with-munin-plugins

Groonga用のMuninプラグインをインストールします。プラグインは ${PREFIX}/share/groonga/munin/plugins/ 以下にインストールされます。

デフォルトではプラグインはインストールされません。

以下はGroonga用のMuninプラグインをインストールする例です:

% ./configure --with-munin-plugins

2.12.2.1.10. --with-package-platform=PLATFORM

initスクリプトなどプラットフォーム依存のシステム管理ファイルをインストールします。利用可能なプラットフォームは centoscentos5centos6centos7fedora です。 centos から始まるプラットフォームはRed HatおよびCentOSなどのRed Hatクローンのディストリビューション用です。 centos を指定した場合はディストリビューションのバージョンを推測します。 fedora はFedora用です。

デフォルトではシステム管理ファイルはインストールされません。

以下はCentOS用のシステム管理ファイルをインストールする例です:

% ./configure --with-package-platform=centos

2.12.2.1.11. --help

すべての configure オプションを表示します。

2.12.2.1.12. --enable-apache-arrow および --disable-apache-arrow

Apache Arrowのサポートを有効化または無効化します。

Apache Arrowサポートを有効化すると、Apache ArrowのIPC streaming formatが使えるだけでなく、 n_workersquery_parallel_or でマルチスレッドで処理できるようになります。

--enable-apache-arrow--disable-apache-arrow のどちらも指定しない場合、Apache Arrowがシステムにインストールされていれば有効化し、そうでなければ無効化します。このデフォルト動作は --enable-apache-arrow=auto を指定した場合と同じです。

--enable-apache-arrow を明示的に指定する場合, 事前にシステムにApache Arrowをインストールする必要があります。

Apache Arrowは 公式のドキュメントの手順 にしたがってインストールしてください。Debian系のシステムでは libarrow-dev が、Red Hat Enterprise Linux系のシステムでは arrow-devel が必要です。

--disable-apache-arrow を明示的に指定すると、システムにApache Arrowがインストールされていても、Apache Arrowサポートを無効化します。

以下は明示的にApache Arrowサポートを有効にする例です。

% ./configure --enable-apache-arrow

注釈

Apache Arrowを標準でないディレクトリにインストールしている場合、 PKG_CONFIG_PATH=PATHS オプションを指定してください。

2.12.2.1.13. PKG_CONFIG_PATH=PATHS

pkg-configの.pcファイルの検索パスを追加します。

: で区切ることで複数のパスを指定することができます。

Groongaは外部ライブラリの検出に pkg-config を使用しています。

pkg-config.pc ファイルを用意するだけで、ライブラリを利用する際に必要となる各種フラグやパスなどを設定してくれるツールです。

パッケージ管理システムを使用してインストールしたライブラリを使いたい場合は、 pkg-config のデフォルトの検索パスに .pc ファイルが存在するためこのパラメータを指定する必要はありません。

自身でビルドしたライブラリを使用したい場合などに、このパラメータにそのライブラリの .pc ファイルの場所を指定します。

環境変数 PKG_CONFIG_PATH を使用することも出来ますが、以下の理由から configure のパラメータを使用することを推奨します。

GNU Autotools によって configure.ac から configure が生成されます。そして、 make の実行時、 configure.ac が変わっていることを検知すると、自動で configure を再生成し再実行します。 configure のパラメータとして指定すると、この configure の再実行時に PKG_CONFIG_PATH が自動で指定されます。 一方、環境変数を使用した場合は PKG_CONFIG_PATH は自動で指定されません。

以下は /tmp/local/lib/pkgconfig/arrow.pc.pc ファイルを指定する例です。

% ./configure PKG_CONFIG_PATH=/tmp/local/lib/pkgconfig/

2.12.2.2. make

configure が成功したら make でGroongaをビルドします:

% make

マルチコアCPUを使っている場合は -j オプションを使うとより速くmakeを実行できます。もし、4コアのCPUを使っている場合は、 -j4 オプションを使うともっと速くビルドできます:

% make -j4

make で何かエラーが発生した場合は、そのエラーをレポートしてください: バグレポートの送り方

2.12.2.3. make install

これでビルドしたGroongaをインストールできます!:

% sudo make install

${PREFIX} への書き込み権限がある場合は sudo を使う必要はありません。例えば、 --prefix=$HOME/local と指定した場合です。この場合は make install を使ってください:

% make install