meson setup build --prefix=/usr/local/pgsql cd build ninja su ninja install adduser postgres mkdir -p /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
この節の残りで詳細を説明します。
設定
インストール手順の最初のステップは、システムに合わせてソースツリーを設定し、使用するオプションを選択することです。
ビルドディレクトリを作成して設定するには、meson setup
コマンドから始めます。
meson setup build
セットアップコマンドはbuilddir
とsrcdir
引数を取ります。
srcdir
が指定されていない場合、Mesonは現在のディレクトリとmeson.build
の場所に基づいてsrcdir
を推測します。
builddir
は必須です。
meson setup
を実行すると、ビルド設定ファイルがロードされ、ビルドディレクトリが設定されます。
さらに、いくつかのビルドオプションをMesonに渡すこともできます。
一般的に使用されるオプションは、以下の節で説明します。
例えば
# configure with a different installation prefix meson setup build --prefix=/home/user/pg-install # configure to generate a debug build meson setup build --buildtype=debug # configure to build with OpenSSL support meson setup build -Dssl=openssl
ビルドディレクトリの設定は、一度だけ行うステップです。
新しいビルドの前に再設定するには、単にmeson configure
コマンドを使用します。
meson configure -Dcassert=true
meson configure
の一般的に使用されるコマンドラインオプションについては17.4.3で説明します。
構築
デフォルトでは、MesonはNinja構築ツールを使用します。
Mesonを使用してPostgreSQLをソースからビルドするには、ビルドディレクトリ内でninja
コマンドを使用するだけです。
ninja
Ninjaは、コンピュータのCPU数を自動的に検出し、それに応じて並列化します。
コマンドライン引数-j
で並列処理の数をオーバーライドすることができます。
最初の設定ステップの後、ninja
はコンパイルに必要な唯一のコマンドです。
ソースツリーをどのように変更しても(完全に新しい場所に移動しない限り)、Mesonは変更を検出し、それに応じて自身を再生成します。
これは、複数のビルドディレクトリがある場合に特に便利です。
多くの場合、それらの1つは開発(「デバッグ」ビルド)に使用され、他のものは時々(「静的分析」ビルドなど)使用されます。
対応するディレクトリに移動してNinjaを実行するだけで、どの構成でもビルドできます。
ninja以外のバックエンドで構築したい場合は、--backend
オプションを指定してconfigureを実行し、使用するバックエンドを選択してからmeson compile
で構築します。
これらのバックエンドやninjaに渡す他の引数について詳しくは、Mesonのドキュメントを参照してください。
リグレッションテスト
インストールを行う前に、新しく構築したサーバをテストしたい場合、この時点でリグレッションテストを実行できます。 リグレッションテストとは、使用するマシンにおいてPostgreSQLが、開発者の想定通りに動作することを検証するためのテストのまとまりです。 次のように入力します。
meson test
(これは root では動作しません。 非特権ユーザとして実行してください。) 第33章にはテスト結果の解釈に関する詳しい情報があります。 同じコマンドを入力することで、後にいつでもテストを繰り返すことができます。
実行中のpostgresインスタンスに対してpg_regressとpg_isolation_regressのテストを実行するには、--setup running
をmeson test
の引数として指定します。
ファイルのインストール
もし既存のシステムのアップグレードをする場合、DBクラスタのアップグレードの解説が記載されている19.6を参照してください。
PostgreSQLがビルドされたら、ninja install
コマンドを実行するだけでインストールできます。
ninja install
これは、ファイルをステップ 1で指定されたディレクトリにインストールします。 その領域に書き込むための権限を持っていることを確認してください。 通常はこのステップをrootで行う必要があります。 代わりに対象とするディレクトリを前もって作成し、適切に権限を調整することも可能です。 この標準的なインストール方法では、クライアントアプリケーションの開発に必要なヘッダファイルと、Cで独自の関数やデータ型を作成するといったサーバ側のプログラムの開発用のヘッダファイルが用意されます。
ninja install
はほとんどの場合に使えるはずですが、余分な出力を抑制する--quiet
などのオプションを使いたい場合は、代わりにmeson install
を使うこともできます。
meson installとそのオプションについてはMesonドキュメントを参照してください。
アンインストール:
インストールを取り消すには、ninja uninstall
コマンドを使用します。
クリーニング:
インストール後、ninja clean
コマンドでソースツリーからビルドされたファイルを削除することで、ディスク容量を解放できます。
meson setup
のオプション #
meson setup
のコマンドラインオプションを以下で説明します。
この一覧は完全なものではありません(完全なものを得るにはmeson configure --help
を使ってください)。
ここで取り上げていないオプションはクロスコンパイルのような高度なユースケースのためのもので、標準のMesonドキュメントを参照してください。
これらの引数はmeson setup
でも使用できます。
このオプションはninja install
(またはmeson install
)がファイルをどこに置くかを制御します。
ほとんどの場合は--prefix
オプション(17.4.1参照)で十分です。
特別な必要があるのであれば、この節に書かれた他のオプションを使用して個々のインストレーションサブディレクトリを変更できます。
しかし、異なるサブディレクトリの相対的な位置を変更した場合、インストレーションは再配置不能になります。つまり、インストールの後にディレクトリを移動できないことに注意してください。
(man
とdoc
の場所はこの制限の影響を受けません。)
再配置可能インストールのために、後述の-Drpath=false
を使用しようと考えるかもしれません。
--prefix=PREFIX
#
/usr/local/pgsql
(Unixベースのシステム)または
(Windows)の代わりにディレクトリcurrent drive letter
:/usr/local/pgsqlPREFIX
ディレクトリ以下に全てのファイルをインストールします。
ファイルは実際には様々なサブディレクトリにインストールされ、PREFIX
ディレクトリの直下にインストールされるファイルはありません。
--bindir=DIRECTORY
#
実行可能プログラム用のディレクトリを指定します。
デフォルトは
です。
PREFIX
/bin
--sysconfdir=DIRECTORY
#
各種設定ファイル用のディレクトリを設定します。
デフォルトでは
です。
PREFIX
/etc
--libdir=DIRECTORY
#
ライブラリや動的ロード可能モジュールをインストールする場所を設定します。
デフォルトは
です。
PREFIX
/lib
--includedir=DIRECTORY
#
CおよびC++のヘッダファイルをインストールするディレクトリを設定します。
デフォルトは
です。
PREFIX
/include
--datadir=DIRECTORY
#
インストールプログラムが使用する読み取り専用のディレクトリを設定します。
デフォルトは
です。
これはインストールするデータベースファイルがどこに設置されるかとは関係ないことを覚えておいてください。
PREFIX
/share
--localedir=DIRECTORY
#
特にメッセージ翻訳カタログファイルのロケールデータをインストールするディレクトリを設定します。
デフォルトは
です。
DATADIR
/locale
--mandir=DIRECTORY
#
PostgreSQL付属のマニュアルページがこのディレクトリ以下の、対応するman
サブディレクトリにインストールされます。
デフォルトはx
です。
DATADIR
/man
(/usr/local/include
といった)共用のインストール場所に、システムの他の名前空間に影響を与えることなくPostgreSQLをインストールできるような配慮がなされています。
まず、完全に展開したディレクトリ名に「postgres
」か「pgsql
」という文字列が含まれていない場合、「/postgresql
」という文字列が自動的にdatadir
、sysconfdir
、docdir
に追加されます。
例えば、接頭辞として/usr/local
を使用する場合、ドキュメントは/usr/local/doc/postgresql
にインストールされますが、接頭辞が/opt/postgres
の場合は/opt/postgres/doc
にインストールされます。
クライアントインタフェース用の外部向けCヘッダファイルはincludedir
にインストールされ、名前空間の問題はありません。
内部向けヘッダファイルやサーバ用ヘッダファイルは、includedir
以下の非公開ディレクトリにインストールされます。
各インタフェース用のヘッダファイルにアクセスする方法についての情報は、そのインタフェースのドキュメントを参照してください。
最後に、適切であれば、動的ロード可能モジュール用にlibdir
以下にも非公開用のサブディレクトリが作成されます。
この節に書かれたオプションは、デフォルトでは構築されないPostgreSQLの様々な機能を構築できるようにするものです。
これらのほとんどは、17.1で説明されている追加ソフトウェアが必要であり、必要なソフトウェアが見つかった場合は自動的に有効になります。
これらの機能が必要な場合はenabled
に、必要でない場合はdisabled
に設定して、この動作を手動で変更できます。
PostgreSQL固有のオプションを指定するには、オプション名の先頭に-D
を付ける必要があります。
-Dnls={ auto | enabled | disabled }
#各国語サポート(NLS)を有効または無効にします。 これは、Gettext APIの実装が英語以外の言語でメッセージを表示する機能です。 デフォルトは自動で、Gettext APIの実装が見つかった場合は自動的に有効になります。
-Dplperl={ auto | enabled | disabled }
#PL/Perlサーバサイド言語を構築します。 デフォルトは自動です。
-Dplpython={ auto | enabled | disabled }
#PL/Pythonサーバサイド言語を構築します。 デフォルトは自動です。
-Dpltcl={ auto | enabled | disabled }
#PL/Tclサーバサイド言語を構築します。 デフォルトは自動です。
-Dtcl_version=TCL_VERSION
#PL/Tclのビルド時に使用するTclバージョンを指定します。
-Dicu={ auto | enabled | disabled }
#ICUライブラリのサポートを有効にして構築します。これによりICU照合機能が使用できるようになります。 (24.2を参照してください。) デフォルトは自動で、ICU4Cパッケージがインストールされている必要があります。 ICU4Cの要求される最小のバージョンは現在4.2です。
-Dllvm={ auto | enabled | disabled }
#LLVMに基づいたJITコンパイル(第32章を参照)のサポートを有効にして構築します。 これには、LLVMライブラリがインストールされている必要があります。 LLVMの要求される最小のバージョンは現在3.9です。 デフォルトでは無効です。
要求されるコンパイルオプションを見つけるためにllvm-config
が使われます。
llvm-config
、それからサポートされるバージョンすべての llvm-config-$version
をPATH
で探します。
それで正しいバイナリが見つからなければ、正しいllvm-config
へのパスを指定するためにLLVM_CONFIG
を使ってください。
例えば、以下のとおりです。
-Dlz4={ auto | enabled | disabled }
#LZ4圧縮サポートを有効にして構築します。 デフォルトは自動です。
-Dzstd={ auto | enabled | disabled }
#Zstandard圧縮サポートを有効にして構築します。 デフォルトは自動です。
-Dssl={ auto | LIBRARY
}
#
SSL(暗号化)接続のサポートを有効にして構築します。
サポートされている唯一のLIBRARY
はopenssl
です。
これには、OpenSSLパッケージがインストールされている必要があります。
これを指定すると、必要なヘッダファイルとライブラリがチェックされ、OpenSSLのインストールが十分であるかどうかが確認されてから処理が続行されます。
このオプションのデフォルトは自動です。
-Dgssapi={ auto | enabled | disabled }
#
GSSAPI認証のサポートを構築します。
GSSAPIを使用するには、MIT Kerberosがインストールされている必要があります。
多くのシステムでは、GSSAPIシステム(通常MIT Kerberosインストレーションの一部)はデフォルトの検索場所(例えば/usr/include
や/usr/lib
)にインストールされていません。
このような場合、PostgreSQLはpkg-config
を照会して、必要なコンパイラとリンカのオプションを検出します。
デフォルトは自動です。
meson configure
は、必要なヘッダファイルとライブラリをチェックして、GSSAPIのインストールが十分であることを確認してから続行します。
-Dldap={ auto | enabled | disabled }
#
認証および接続パラメータ検索用のLDAPサポートを有効にして構築します。
(詳細は34.18および21.10を参照してください。)
Unixでは、OpenLDAPパッケージがインストールされている必要があります。
WindowsではデフォルトのWinLDAPライブラリが使用されます。
デフォルトは自動です。
meson configure
は、必要なヘッダファイルとライブラリをチェックして、OpenLDAPのインストールが十分であることを確認してから続行します。
-Dpam={ auto | enabled | disabled }
#-Dbsd_auth={ auto | enabled | disabled }
#BSD認証のサポートを有効にして構築します。 (BSD認証フレームワークは今のところOpenBSDだけで利用可能です。) デフォルトは自動です。
-Dsystemd={ auto | enabled | disabled }
#systemdサービス通知のサポートを有効にして構築します。 サーババイナリがsystemdの元で開始する場合には、これは統合を改善しますが、それ以外は影響はありません。 詳細は19.3を参照してください。 デフォルトは自動です。 このオプションを使えるようにするには、libsystemdと関連するヘッダファイルがインストールされている必要があります。
-Dbonjour={ auto | enabled | disabled }
#Bonjour自動サービス検出のサポートを有効にして構築します。 デフォルトは自動で、オペレーティングシステムがBonjourをサポートしていることが必要です。 macOSで推奨します。
-Duuid=LIBRARY
#
指定されたUUIDライブラリを使用して(UUIDを生成する関数を提供する)uuid-osspモジュールを構築します。
LIBRARY
は以下のいずれかでなければなりません。
none
はuuidモジュールを構築しないことを意味します。
これがデフォルトです。
bsd
はFreeBSD、その他のBSD派生システムにあるUUID関数を使います。
e2fs
はe2fsprogs
プロジェクトで作られたUUIDライブラリを使います。
このライブラリはたいていのLinuxシステムとmacOSにあり、また、その他のプラットフォームでも入手可能です。
ossp
はOSSP UUIDライブラリを使用します。
-Dlibxml={ auto | enabled | disabled }
#libxml2を使用して構築し、SQL/XMLサポートを有効にします。 デフォルトは自動です。 この機能のためにはLibxml2バージョン2.6.23以降が必要です。
通常以外の場所にインストールしたlibxml2インストレーションを使用するためには、pkg-config
関連の環境変数を設定するか(そのドキュメントを参照してください)。
-Dlibxslt={ auto | enabled | disabled }
#
XMLのXSL変換を行うためにxml2モジュールを有効にしてlibxsltを構築します。
-Dlibxml
も指定しなければなりません。
デフォルトは自動です。
-Dreadline={ auto | enabled | disabled }
#Readlineライブラリ(およびlibedit)の使用を可能にします。 このオプションは自動的に有効になり、psqlでのコマンドライン編集と履歴が可能になります。 強く推奨されます。
-Dlibedit_preferred={ true | false }
#GPLライセンスのReadlineではなくBSDライセンスのlibeditライブラリを優先して使用します。 このオプションは両方のライブラリがインストールされている場合にのみ重要です。その場合デフォルトでReadlineが使用されます。
-Dzlib={ auto | enabled | disabled }
#Zlibライブラリの使用を有効にします。 デフォルトは自動で、pg_dump、pg_restore、pg_basebackupでの圧縮アーカイブのサポートが有効になります。 これを使用することをお勧めします。
-Dspinlocks={ true | false }
#このオプションはデフォルトではtrueに設定されています。 falseに設定すると、プラットフォームに対するPostgreSQLのCPUスピンロックサポートがない場合でもビルドが成功します。 スピンロックのサポートの欠落により、性能は悪化します。 したがって、このオプションは、構築が失敗し、その原因が使用するプラットフォームでスピンロックサポートが欠落している場合にのみ使用してください。 使用するプラットフォームにおけるPostgreSQLの構築にこのオプションが必要とされた場合は、PostgreSQL開発者にその問題を報告してください。
-Datomics={ true | false }
#このオプションはデフォルトではtrueに設定されています。 falseに設定すると、CPU不可分操作の使用を無効にします。 このオプションはそのような操作のないプラットフォームでは何もしません。 そのような操作のあるプラットフォームでは、これにより性能が低下するでしょう。 このオプションはデバッグや性能比較をする場合にのみ有用です。
--auto_features={ auto | enabled | disabled }
#このオプションを設定すると、必要なソフトウェアが見つかった場合に自動的に有効になる「auto」機能の値を上書きできます。 これは手動で設定することなく、すべての「optional」機能を一度に無効または有効にする場合に便利です。 このパラメータのデフォルト値は自動です。
--backend=BACKEND
#
Mesonが使用するデフォルトのバックエンドはninjaで、ほとんどのユースケースに対応できます。
ただし、Visual Studioと完全に統合したい場合は、BACKEND
をvs
に設定します。
-Dc_args=OPTIONS
#このオプションは、Cコンパイラに追加のオプションを渡すために使用できます。
-Dc_link_args=OPTIONS
#このオプションは、Cリンカに追加のオプションを渡すために使用できます。
-Dextra_include_dirs=DIRECTORIES
#
DIRECTORIES
には、コンパイラがヘッダファイルを検索するディレクトリのリストをカンマで区切って指定します。
(GNU Readlineなどの)オプションのパッケージが非標準的な場所にインストールされている場合、このオプションと、おそらく対応する-Dextra_lib_dirs
オプションを使用する必要があります。
例: -Dextra_include_dirs=/opt/gnu/include,/usr/sup/include
。
-Dextra_lib_dirs=DIRECTORIES
#
DIRECTORIES
には、ライブラリを検索するディレクトリのリストをカンマで区切って指定します。
パッケージが非標準的な場所にインストールされている場合は、おそらくこのオプション(と対応する-Dextra_include_dirs
オプション)を使用する必要があります。
例: -Dextra_lib_dirs=/opt/gnu/lib,/usr/sup/lib
。
-Dsystem_tzdata=DIRECTORY
#
PostgreSQLは、日付時刻に関する操作で必要な、独自の時間帯データベースを持ちます。
実際のところ、この時間帯データベースはFreeBSD、Linux、Solarisなどの多くのオペレーティングシステムで提供されるIANA時間帯データベースと互換性があります。
このため、これを再びインストールすることは冗長です。
このオプションが使用されると、DIRECTORY
にあるシステムが提供する時間帯データベースがPostgreSQLソース配布物に含まれるものの代わりに使用されます。
DIRECTORY
は絶対パスで指定しなければなりません。
/usr/share/zoneinfo
がオペレーティングシステムの一部でよく使われます。
インストール処理が時間帯データの不一致、またはエラーがあることを検知しないことに注意してください。
このオプションを使用する場合、指定した時間帯データがPostgreSQLで正しく動作するかどうかを検証するためにリグレッションテストを実行することが推奨されています。
このオプションは、対象オペレーティングシステムを熟知しているパッケージ配布者を主な対象としたもの。 このオプションを使用する大きな利点は、多くの局所的な夏時間規則の変更があってもPostgreSQLパッケージを更新する必要がないことです。 他の利点として、時間帯データベースファイルをインストール時に構築する必要がありませんので、PostgreSQLのクロスコンパイルをより簡単に行うことができます。
-Dextra_version=STRING
#
PostgreSQLバージョン番号にSTRING
を追加します。
これは、例えば、リリースされていないGitスナップショットからビルドしたバイナリや、git describe
識別子やディストリビューションパッケージリリース番号のような追加のバージョン文字列のあるカスタムパッチを含むバイナリに印をつけるために使えます。
-Drpath={ true | false }
#
このオプションは、デフォルトでtrueに設定されています。
falseに設定すると、PostgreSQLの実行ファイルがインストレーションのライブラリディレクトリ(--libdir
を参照してください)にある共有ライブラリを探すよう指示する印を付けません。
ほとんどのプラットフォームでは、この印付けはライブラリディレクトリへの絶対パスを利用しますので、後でインストレーションを再配置したときには役に立たないでしょう。
ですので、実行ファイルが共有ライブラリを見つける他の方法を提供する必要があるでしょう。
通常は、オペレーティングシステムの動的リンカがライブラリディレクトリを探すよう設定することが必要です。詳細は17.5.1を参照してください。
-DBINARY_NAME
=PATH
#
PostgreSQLを構築するのに必要なプログラム(オプションフラグ付きまたはオプションフラグなし)が標準以外のパスに格納されている場合、meson configure
に手動で指定することができます。
これがサポートされているプログラムの完全なリストは、meson configure
を実行することで確認できます。例:
meson configure -DBISON=PATH_TO_BISON
ドキュメントの構築に必要なツールについては、J.2を参照してください。
-Ddocs={ auto | enabled | disabled }
#HTMLおよびman形式でドキュメントを構築できるようにします。 デフォルトは自動です。
-Ddocs_pdf={ auto | enabled | disabled }
#PDF形式でのドキュメント作成を有効にします。 デフォルトは自動です。
-Ddocs_html_style={ simple | website }
#
どのCSSスタイルシートを使用するかを制御します。
デフォルトはsimple
です。
これをwebsite
に設定すると、postgresql.orgのスタイルシートがHTMLドキュメントに参照されます。
-Dpgport=NUMBER
#
サーバとクライアントのデフォルトのポート番号をNUMBER
に設定します。
デフォルトは5432です。
このポートは後でいつでも変更できますが、ここで指定した場合、サーバとクライアントはコンパイル時に同じデフォルト値を持つようになります。
これは非常に便利です。
通常、デフォルト以外の値を選択すべき唯一の理由は、同じマシンで複数のPostgreSQLを稼働させることです。
-Dkrb_srvnam=NAME
#
GSSAPIで使用されるKerberosのサービスプリンシパルのデフォルトの名前です。
デフォルトではpostgres
です。
これを変える理由はWindows環境のために構築しているのでない限り、特にありません。
Windows環境のために構築している場合は大文字のPOSTGRES
に設定する必要があります。
-Dsegsize=SEGSIZE
#セグメントサイズをギガバイト単位で指定します。 大規模なテーブルはこのセグメントサイズと同じサイズの複数のオペレーティングシステムのファイルに分割されます。 これにより多くのプラットフォームで存在するファイルサイズ上限に関する問題を防ぎます。 デフォルトのセグメントサイズは1ギガバイトで、サポートされるすべてのプラットフォームで安全です。 使用するオペレーティングシステムが「ラージファイル」をサポートしていれば(最近はほとんどサポートしています)、より大きなセグメントサイズを使用できます。 非常に大規模なテーブルで作業する時のファイル記述子の消費数を減らすために、これが役に立つでしょう。 しかし、プラットフォーム、または使用予定のファイルシステムでサポートされる値以上に大きな値を指定しないように注意してください。 tarなどの、使用したいその他のツールにも使用できるファイルサイズに制限があることがあります。 絶対に必要ではありませんが、この値を2のべき乗にすることを勧めます。
-Dblocksize=BLOCKSIZE
#ブロックサイズをKB単位で設定します。 これはテーブル内のストレージとI/Oの単位です。 デフォルトの8KBはほとんどの場合に適していますが、特別な場合には他の値が有用な場合もあります。 値は1から32(KB)までの2の累乗でなければなりません。
-Dwal_blocksize=BLOCKSIZE
#WALブロックサイズをKB単位で設定します。 これはWALログ内のストレージとI/Oの単位です。 デフォルトの8KBはほとんどの場合に適していますが、特別な場合には他の値が有用な場合もあります。 値は1から64(KB)までの2の累乗でなければなりません。
この節のオプションのほとんどは、PostgreSQLを開発したりデバッグしたりするために重要なものです。
--enable-debug
を除いて、実運用での構築には勧められません。--enable-debug
はバグに出くわすという不幸な出来事の時に詳細なバグレポートが得られるので有用かもしれません。
DTraceをサポートするプラットフォームでは、-Ddtrace
を実運用で使うことも適当かもしれません。
サーバ内でコードの開発に使われるインストレーションを構築する場合には、少なくともオプション--buildtype=debug
と-Dcassert
optionsを使うことをお勧めします。
--buildtype=BUILDTYPE
#
このオプションは、使用するビルドタイプを指定するために使用できます。
デフォルトはdebugoptimized
です。
このオプションが提供するものよりもデバッグシンボルと最適化レベルを細かく制御したい場合は、--debug
と--optimization
フラグを参照してください。
一般的に使用されるビルドタイプは、plain
、debug
、debugoptimized
、release
です。
これらについての詳細はMesonのドキュメントを参照してください。
--debug
#すべてのプログラムとライブラリをデバッグシンボル付きでコンパイルします。 これは、問題を解析するためにデバッガ内でプログラムを実行できることを意味します。 これはインストールする実行形式ファイルのサイズをかなり大きくし、また、GCC以外のコンパイラでは、通常はコンパイラによる最適化が行われなくなりますので、低速になります。 しかし、デバッグシンボルが利用できるということは、発生した問題に対応する時に非常に便利です。 現在のところ、GCCを使用している場合にのみ、稼働用のインストレーションにこのオプションを使用することを推奨します。 しかし、開発作業時やベータ版を実行する時は、常にこれを有効にすべきです。
--optimization
=LEVEL
#
最適化レベルを指定します。
LEVEL
は{0,g,1,2,3,s}のいずれかに設定できます。
--werror
#このオプションを設定すると、コンパイラは警告をエラーとして扱います。 これはコード開発に役立ちます。
-Dcassert={ true | false }
#サーバにおける、多くの「あり得ない」状態をテストするアサーションチェックを有効にします。 これは、プログラムの開発のためには測り知れない価値がありますが、このテストによりサーバはかなり低速になります。 また、このテストを有効にしても、サーバの安定性が向上するとは限りません! アサーションチェックは、重要度によって分類されていませんので、比較的害がないようなバグでも、アサーション失敗をトリガとした、サーバの再起動が行われてしまいます。 稼働用にこのオプションを使用することは推奨されませんが、開発作業時やベータ版を実行する場合は、これを有効にすべきです。
-Dtap_tests={ auto | enabled | disabled }
#
Perl TAPツールを使ったテストを有効にします。
デフォルトは自動で、これにはPerlのインストールとPerlモジュールIPC::Run
が必要です。
詳細は33.4を参照してください。
-DPG_TEST_EXTRA=TEST_SUITES
#特別なソフトウェアを必要とするテストスイートを実行できるようにします。 このオプションは空白で区切られたリストを引数として受け付けます。 詳細は33.1.3を参照してください。
-Db_coverage={ true | false }
#GCCを使用している場合、すべてのプログラムとライブラリはコードカバレッジテスト機構付きでコンパイルされます。 実行すると、これらは構築用ディレクトリ内にコードカバレッジメトリックを持ったファイルを生成します。 詳細は33.5を参照してください。 このオプションはGCC専用であり、また、開発作業中に使用するためのものです。
-Ddtrace={ auto | enabled | disabled }
#動的追跡ツールDTraceのサポートを有効にしてPostgreSQLをコンパイルします。 より詳細な情報は28.5を参照してください。
dtrace
プログラムを指し示すためにDTRACE
オプションを設定します。
dtrace
は通常、PATH
内に存在しない可能性がある/usr/sbin
以下にインストールされていますので、この設定はよく必要になります。
-Dsegsize_blocks=SEGSIZE_BLOCKS
#
リレーションのセグメントサイズをブロック単位で指定します。
-Dsegsize
とこのオプションの両方が指定されている場合、このオプションが優先されます。
このオプションは、セグメント関連のコードをテストする開発者向けです。