一般的に、最近の Unix 互換のプラットフォームでは PostgreSQL を動作させることができるはずです。リリース時に明示的なテストを受けたプラットフォームの一覧を Section 1.7 にて示します。配布物の doc サブディレクトリにはいくつかのプラットフォーム固有の FAQ がありますので、問題が生じたときにはそちらを参照してください。
PostgreSQL の構築 (ビルド) には下記のソフトウェアパッケージが必要になります。
GNU make が必要です。他の make プログラムでは動作 しません。 GNU make は多くの場合、gmake という名前でインストールされています。本書では常にこの名前を使用します。 (GNU make が make という名前のデフォルトツールになっているシステムもあります。)GNU make のテストを行うためには下記のように入力してください。
gmake --version
バージョン 3.76.1 以降を使用することを推奨します。
ISO/ANSI C コンパイラが必要です。GCC の最近のバージョンをお勧めしますが、PostgreSQL は異なるベンダの、さまざまなコンパイラでも構築できることで知られています。
まず配布物を展開するために、gzip が必要です。この文書を読んでいるのであれば、おそらく既にこのハードルを越えていることでしょう。
(快適な行編集とコマンド履歴取得のための) GNU Readline ライブラリは、デフォルトで使用されます。使用したくない場合は、configure に --without-readline オプションを指定する必要があります。(NetBSD では、readline と互換性がある libedit ライブラリが、libreadline を認識できなかった場合に使われます)。
Windows NT または Windows 2000 にて構築する場合、Cygwin と cygipc パッケージが必要です。詳細は doc/FAQ_MSWIN ファイルを参照して下さい。
以下のパッケージはオプションです。これらはデフォルトの設定では必要ありませんが、下記のように特定の構築オプションを有効とする場合に必要となります。
サーバプログラム言語である PL/Perl を構築するには、libperl ライブラリとヘッダファイルを含む完全な Perl のインストレーションが必要です。 PL/Perl は共有ライブラリですので、ほとんどのプラットフォームにおいて libperl ライブラリも共有ライブラリでなければなりません。 これは最近のバージョンの Perl ではデフォルトのようですが、以前のバージョンではデフォルトではあありませんでした。一般的には、Perl をサイトにインストールした人により決定されます。
必要な共有ライブラリが存在しない場合、構築中に表示される次のようなメッセージにより、そのことが指摘されます。
*** Cannot build PL/Perl because libperl is not a shared library. *** You might have to rebuild your Perl installation. Refer to *** the documentation for details.
(画面上の指示に従わない場合は、単に PL/Perl ライブラリオブジェクト plperl.so または類似のものがインストールされないだけです。) このメッセージが表示された場合、PL/Perl を構築できるようにするために、Perl を手動で再構築し、インストールする必要があります。Perl の構築処理で、共有ライブラリとするように指定してください。
Python インタフェースモジュールまたは PL/Python サーバプログラム言語を構築するには、ヘッダファイルを含む Python のインストレーションが必要です。 PL/Python は共有ライブラリですので、ほとんどのプラットフォームにおいて libpython ライブラリも共有ライブラリでなければなりません。デフォルトの Python インストレーションでは、このようにはなっていません。
構築し、インストールした後に、(他の拡張子かもしれませんが) plpython.so という名前のファイルがあれば、全てが成功しています。さもなくば、以下のような警告が表示されたはずです。
*** Cannot build PL/Python because libpython is not a shared library. *** You might have to rebuild your Python installation. Refer to *** the documentation for details.
これは、この共有ライブラリを提供するためには Python インストレーション (の一部) を再構築する必要があることを意味しています。
問題は、Python 配布物または Python を保守している人たちが、これを行う直接的な方法を用意していないという点です。最も関連があると思われるのは、Python FAQ 3.30 の情報です。 実際には共有ライブラリを構築する必要のないオペレーティングシステムもあります。しかし、その場合は PostgreSQL 構築システムにそのことを確認・指定する必要があります。詳しくは src/pl/plpython ディレクトリの Makefile を参照してください。
Tcl または Tk コンポーネント (クライアントおよび PL/Tcl 言語) を構築したい場合は、もちろん Tcl のインストレーションが必要です。
JDBC ドライバを構築するには、Ant 1.5 以上および JDK が必要です。Ant は、Java ベースのパッケージを構築するための特別なツールです。Ant の Web サイトからダウンロードできます。
Java コンパイラが複数インストールされている場合、どれが使用されるかは Ant の構成によります。コンパイル済みの Ant 配布物は通常、現在のユーザのホームディレクトリにある .antrc をその設定のために読み込みます。例えば、デフォルトとは異なる JDK を使用する場合は、以下のようにします。
JAVA_HOME=/usr/local/sun-jdk1.3 JAVACMD=$JAVA_HOME/bin/java
Note: ant や javac を直接呼び出すことでドライバを構築しようとしないでください。これは、うまくいきません。以下で説明するように、普通に gmake を実行してください。
各国語サポート (NLS)、つまり、英語以外の言語によるプログラムメッセージの表示機能、を有効にするには、Gettext API の実装が必要です。オペレーティングシステムの中には (例えば、Linux、NetBSD、Solaris など)、組み込み済みのものがあります。他のシステムでは、追加パッケージを http://www.postgresql.org/~petere/gettext.html からダウンロードすることができます。 GNU C ライブラリの gettext の実装を使用する場合、更に、いくつかのユーティリティプログラムのために GNU Gettext パッケージが必要となります。他の実装の場合には必要ありません。
Kerberos、OpenSSL、または PAM も、これらのサービスを使用した認証をサポートする場合には必要となります。
リリースされたソースパッケージではなく CVS ツリーからのビルドの場合、または開発を行いたい場合には、以下のパッケージも必要となります。
Flex および Bison は、CVS チェックアウトを構築する場合や、実際のスキャナとパーサの定義ファイルを変更した場合に必要となります。それらが必要な場合は、Flex 2.5.4 以降と Bison 1.50 以降を使うようにしてください。他の yacc プログラムを使用することも可能ですが、この場合、追加の作業が必要となりますのでお勧めできません。他の lex プログラムでは間違いなく問題が起こります。
GNU パッケージの入手が必要な場合、近くの GNU ミラーサイトから探して下さい (ミラーサイトの一覧は http://www.gnu.org/order/ftp.htmlにあります)。または、ftp://ftp.gnu.org/gnu/ から探して下さい。
また、十分なディスク領域があることも確認してください。コンパイル中、ソースツリーのために 65M バイト、インストールディレクトリに 15M バイトほどが必要となります。空のデータベースクラスタだけでも約 25 Mバイト必要であり、またデータベースは、同じデータのフラットテキストファイルと比べて 5 倍ほどの領域が必要になります。リグレッションテストを実行する場合は、一時的に最大で 90M バイトの領域が更に必要になります。ディスク領域を確認するためには df コマンドを使います。