このドキュメントはソースからPGroongaをビルドしてインストールする方法を説明します。
ビルド・インストール方法はWindowsとWindows以外のプラットフォームで違います。このドキュメントではそれぞれ別々に説明します。
PostgreSQLをインストールします。
Groongaをインストールします。パッケージを使うことをおすすめします。パッケージを使ってGroongaをインストールする場合は次のパッケージをインストールしてください。
groonga-devel: AlmaLinuxの場合
libgroonga-dev: Debian/GNU LinuxとUbuntuの場合
PGroongaのソースを展開します。
$ wget https://packages.groonga.org/source/pgroonga/pgroonga-4.0.8.tar.gz
$ tar xvf pgroonga-4.0.8.tar.gz
$ cd pgroonga-4.0.8
参考:未リリースの最新版を使いたい場合は次のようにしてください。
$ git clone --recursive https://github.com/pgroonga/pgroonga.git
$ cd pgroonga
MesonとNinjaを使って、PGroongaをビルドしてインストールします。
$ meson setup build
$ meson compile -C build
$ sudo meson install -C build
pg_configコマンドがPATH環境変数に含まれていない場合は、pg_configオプションで明示的に指定してください。
$ meson setup build -Dpg_config=/path/to/pg_config
エラーが発生した場合は次のことを確認してください。
mesonとninjaがインストール済であること。
PATH環境変数内のパスにpg_configコマンドが存在しているか、pg_configで正しいパスを指定していること。
pkg-config --list-allにgroongaが含まれていること。
もし、pg_configコマンドが存在しない場合、PostgreSQLの開発用パッケージをインストールし忘れているかもしれません。
もし、pkg-config --list-allにgroongaが含まれていない場合、Groongaの開発用パッケージをインストールし忘れているかもしれません。あるいは、groonga.pcが標準的なディレクトリーではないディレクトリーにインストールされているのかもしれません。その場合はPKG_CONFIG_PATH環境変数を使ってください。
以下は--prefix=/usr/localオプション付きでGroongaをインストールした場合の例です。
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig meson setup build
もし、SELinuxを使っているなら、ポリシーパッケージ(.pp)を作成し、インストールしなければなりません。PGroongaは、 <data dir>/pgrn* ファイルをメモリー内にマップさせますが、これはデフォルトでは許可されていません。初めに、 policycoreutils と checkpolicy をインストールします。
$ sudo dnf install policycoreutils checkpolicy
PostgreSQLのバイナリーのタイプを postgresql_t 、 PostgreSQlのデータファイルのタイプを postgresql_db_t とします。 postgresql_t が postgresql_db_t のファイルをメモリーにマップすることを許可します。そして、それをコンパイル(.mod)、パッケージ(.pp)したポリシーパッケージをインストールします。
$ cat > my-pgroonga.te << EOF
module my-pgroonga 1.0;
require {
type postgresql_t;
type postgresql_db_t;
class file map;
}
allow postgresql_t postgresql_db_t:file map;
EOF
$ checkmodule -M -m -o my-pgroonga.mod my-pgroonga.te
$ semodule_package -o my-pgroonga.pp -m my-pgroonga.mod
$ sudo semodule -i my-pgroonga.pp
データベースを作成します。
$ psql --command 'CREATE DATABASE pgroonga_test'
(通常はpgroonga_testデータベース用のユーザーを作ってそのユーザーを利用するべきです。詳細はGRANT USAGE ON SCHEMA pgroongaを参照してください。)
作成したデータベースに接続し、CREATE EXTENSION pgroongaを実行します。
$ psql -d pgroonga_test --command 'CREATE EXTENSION pgroonga;'
これで終わりです!
チュートリアルを試してください。PGroongaについてもっと理解できるはずです。
ソースからPGroongaをビルド・インストールするために必要なソフトウェアは次の通りです。これらをインストールしてください。
PostgreSQL(インストーラーバージョンでもzipバージョンでもどちらでも構いません。)
packages.groonga.orgからGroongaとPGroongaのソースアーカイブをダウンロードして展開します。
ビルドで使う変数
%GROONGA_INSTALL_DIR%はGroongaをインストールするフォルダです。
%POSTGRESQL_INSTALL_FOLDER%はPostgreSQLをインストールしたフォルダです。
インストーラーを使ってPostgreSQLをインストールした場合は%POSTGRESQL_INSTALL_FOLDER%はC:\Program Files\PostgreSQL\%POSTGRESQL_VERSION%になります。
zipバージョンのPostgreSQLをインストールした場合は%POSTGRESQL_INSTALL_FOLDER%は%PostgreSQLのzipを展開したフォルダー%\pgsqlになります。
Groongaをビルドしてインストールします。
> cmake -B groonga.build -G Ninja -S groonga-latest -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=%GROONGA_INSTALL_DIR% -DGRN_WITH_MECAB=bundled -DGRN_WITH_MESSAGE_PACK=bundled -DGRN_WITH_MRUBY=yes -DGRN_WITH_RAPIDJSON=bundled -DGRN_WITH_XXHASH=bundled -DGRN_WITH_ZSTD=bundled
> cmake --build groonga.build
> cmake --install groonga.build
PGroongaをビルドします。
> meson setup pgroonga.build -S pgroonga-4.0.8 --buildtype=release --cmake-prefix-path=%GROONGA_INSTALL_DIR% -Dpg_config=%POSTGRESQL_INSTALL_FOLDER%\bin\pg_config.exe
> meson compile -C pgroonga.build
PGroongaをインストールします。管理者権限が必要かもしれません。たとえば、インストーラーを使ってPostgreSQLをインストールした場合は管理者権限が必要でしょう。
> meson install -C pgroonga.build
データベースを作成します。
postgres=# CREATE DATABASE pgroonga_test;
(通常はpgroonga_testデータベース用のユーザーを作ってそのユーザーを利用するべきです。詳細はGRANT USAGE ON SCHEMA pgroongaを参照してください。)
作成したデータベースに接続し、CREATE EXTENSION pgroongaを実行します。
postgres=# \c pgroonga_test
pgroonga_test=# CREATE EXTENSION pgroonga;
これで終わりです!
チュートリアルを試してください。PGroongaについてもっと理解できるはずです。