Configuration
インストール手順の最初のステップは、システムに合わせてソースを設定し、付与するオプションを選択することです。configure スクリプトを実行することで行われます。デフォルトのインストールを行う場合は、単に以下を入力して下さい。
./configure
このスクリプトは、各種のシステムに依存した変数の値を推定するために多くの試験を行い、使用中のオペレーティングシステムが持つ奇癖を検出し、最終的に構築用ツリーに結果を記録するためのファイルをいくつか作成します。
デフォルトの設定は、サーバ、ユーティリティの他に、C コンパイラだけを必要とするクライアントアプリケーションやインタフェースを構築します。デフォルトでは、全てのファイルは /usr/local/pgsql 以下にインストールされます。
configure に以下のコマンドラインオプションを 1 つ以上指定することで構築処理やインストール処理を変更することができます。
/usr/local/pgsql ではなく、PREFIX ディレクトリ以下に全てのファイルをインストールします。ファイルは実際には様々な副ディレクトリにインストールされ、PREFIX ディレクトリの直下にインストールされるファイルはありません。
特別な必要性があるのであれば、以下のオプションを使用して個々の副ディレクトリを変更することもできます。
アーキテクチャ依存のファイルを PREFIX の設定とは別の接頭詞 EXEC-PREFIX 以下にインストールすることができます。ホスト間でアーキテクチャ非依存のファイルを共有する場合に便利です。省略した場合、 EXEC-PREFIX は PREFIX と同じに設定され、アーキテクチャに依存するファイルも非依存なファイルも同じツリー以下にインストールされます。ほとんどの場合、これが望まれています。
実行可能プログラム用のディレクトリを指定します。デフォルトでは EXEC-PREFIX/bin であり、通常、 /usr/local/pgsql/bin となります。
インストールされたプログラムで使用される、読みとりのみファイル用のディレクトリを指定します。デフォルトは PREFIX/share です。これはデータベースファイルを格納する場所とは全く関係がないことに注意して下さい。
各種設定ファイル用のディレクトリです。デフォルトでは PREFIX/etc です。
ライブラリや読み込み可能モジュールをインストールする場所です。デフォルトは EXEC-PREFIX/lib です。
C および C++ ヘッダファイルをインストールするディレクトリです。デフォルトは PREFIX/include です。
"man" ページを除く文書ファイルがこのディレクトリにインストールされます。デフォルトは PREFIX/doc です。
PostgreSQL 付属のマニュアルページがこのディレクトリ以下の、対応するmanx 副ディレクトリにインストールされます。デフォルトは PREFIX/man です。
Note: (/usr/local/include といった)共用のインストール場所に、システムの他の名前空間に影響することなく、PostgreSQL をインストールすることができるように注意しています。まず、完全に展開したディレクトリ名に "postgres" か "pgsql" という文字列が含まれていない場合、 "/postgresql" という文字列が自動的に datadir、sysconfdir、 docdir に追加されます。例えば、PREFIX として /usr/local を使用する場合、文書は /usr/local/doc/postgresql にインストールされますが、PREFIX が /opt/postgres の場合は /opt/postgres/doc にインストールされます。次に、C およびC++ ヘッダファイルのインストールレイアウトが 7.2 で変更されました。クライアントインタフェース用の外部向けヘッダファイルは includedir にインストールされ、名前空間はありません。内部向けヘッダファイルやサーバ用ヘッダファイルは、includedir 以下の非公開ディレクトリにインストールされます。各インタフェース用のヘッダファイルを取り出す方法についての情報は プログラマガイド を参照して下さい。最後に、適切であれば、動的ロード可能モジュール用に libdir 以下にも非公開用の副ディレクトリが作成されます。
DIRECTORIES には、コンパイラがヘッダファイルを検索するディレクトリのリストをコロンで区切って指定します。(GNU Readline などの)オプションのパッケージが非標準的な場所にインストールされている場合、このオプションと、おそらく対応する --with-libraries オプションを使用する必要があります。
例: --with-includes=/opt/gnu/include:/usr/sup/include
DIRECTORIES には、ライブラリを検索するディレクトリのリストをコロンで区切って指定します。パッケージが非標準的な場所にインストールされている場合は、おそらくこのオプション(と対応する--with-includes オプション)を使用する必要があります
例: --with-libraries=/opt/gnu/lib:/usr/sup/lib
ロケールのサポートを有効にします。ロケールのサポートを行うと性能は悪化しますが、英語圏以外の環境ではこのオプションが必要になるでしょう。
シングルバイト文字セットレコードのサポートを有効にします。この機能に関しては Section 5.3 を参照して下さい。
(Unicode を含む)マルチバイト文字符号化方式と文字セット符号変換の使用を可能にします。詳細は、 Section 5.2 を参照して下さい。
(TclやJavaなど)インタフェースの中には、全ての文字列は Unicode であることを前提としているものがあります。ですからこのオプションは、こういったインタフェースを正しくサポートするために必要とされます。
各国語サポート(NLS)、つまり、英語以外の言語によるプログラムメッセージの表示機能、を有効にします。 LANGUAGES にはサポート予定言語のコードのリストを空白で区切って指定します。例えば、--enable-nls='de fr' です(指定したリストと実際に用意された翻訳との論理積が自動的に計算されます)。リストに何も指定しなかった場合、利用可能な翻訳全てがインストールされます。
このオプションを使用するためには、gettext API を実装したものが必要です。(例えば、Linux、 NetBSD、Solaris など)オペレーティングシステムの中には、組み込み済みのものがあります。他のシステムでは、追加パッケージを http://www.postgresql.org/~petere/gettext.html からダウンロードすることができます。GNU C ライブラリの gettext の実装を使用する場合、更に、他のユーティリティプログラムのために GNU gettext パッケージが必要となります。他の実装の場合は必要ありません。
サーバとクライアントのデフォルトのポート番号を NUMBER に設定します。デフォルトは 5432 です。このポートは後でいつでも変更することができますが、ここで指定した場合、サーバとクライアントはコンパイル時に同じデフォルト値を持つことができます。これは非常に便利です。通常、デフォルト以外の値を選択すべき唯一の理由は、同じマシンで複数の PostgreSQL を稼働させることです。
C++ 用のインタフェースライブラリを構築します。
Perl インタフェースモジュールを構築します。この Perl インタフェースは通常の Perl モジュール用の場所(典型的には /usr/lib/perl )にインストールされます。ですから、インストールの段階では、root 権限が必要となります(step 4 を参照して下さい)。このオプションを使用するにはPerl 5 がインストールされていなければなりません。
Python インタフェースモジュールを構築します。この Python モジュールをデフォルトの場所 (/usr/lib/pythonx.y) にインストールするには root 権限が必要です。このオプションを使用するためには、Python がインストールされていること、および、システムが共有ライブラリをサポートしていることが必要です。他の方法として、新規に完全なインタプリタのバイナリを構築するのであれば、それは手動で行わなければなりません。
Tcl/Tk を必要とする部分、libpgtcl、 pgtclsh、pgtksh、PgAccess、 PL/Tclを構築します。--without-tk については下記を参照してください。
もし --with-tclとこのオプションを指定した場合、 Tk を必要とするプログラム(つまり pgtksh とpgaccess)は除外されます。
Tcl/Tk は、Tcl と Tk のインタフェースのモジュールを構築するために必要な特定の設定情報を含むファイル tclConfig.sh と tkConfig.sh をインストールします。これらのファイルは通常、自動的に一般的に知られる場所にインストールされますが、もし Tcl か Tk の別のバージョンを使いたい場合は、インストールしたいディレクトリを指定できます。
ODBCドライバを構築します。デフォルトでは、ドライバはドライバマネージャに依存しません。システムにインストール済みのドライバマネージャとより良く動作させるには、このオプションに加えて以下のオプションの中の 1 つを使用して下さい。より詳細については プログラマガイド を参照して下さい。
iODBC を使用する ODBC ドライバを構築します。
unixODBC を使用する ODBC ドライバを構築します。
ODBCドライバが自身の odbcinst.ini 設定ファイルを探すディレクトリを指定します。デフォルトは /usr/local/pgsql/etc、もしくは --sysconfdir オプションで指定した場所です。ドライバマネージャと同じファイルを読み込むようにドライバを設定しなければなりません。
--with-iodbc や --with-unixodbc オプションのどちらかを使用する場合、このオプションは無視されます。そのような場合ドライバマネージャが設定ファイルの場所を管理するからです。
JDBC ドライバと関連する Java パッケージを構築します。このオプションは、Ant がインストールされていること(当然ながらJDK がインストールされていること)を必要とします。より詳細については プログラマガイド 内の JDBC ドライバの文書を参照して下さい。
Kerberos 認証のサポートを構築します。Kerberos のバージョンは 4 か 5 のどちらかを使うことができますが、両方使うことはできません。 DIRECTORY 引数は Kerberos をインストールしたところのトップディレクトリを指定します。/usr/athena がデフォルトとして仮定されます。もし関係するヘッダファイルとライブラリが共通の親ディレクトリの下になければ、 --with-includes と --with-libraries オプションをさらに追加して使わなければいけません。一方、もし必要とされるファイルがデフォルトで検索される場所(たとえば /usr/lib )にある場合、引数はなくても構いません。
configureは、次に進む前に Kerberos が正しくインストールされていることを確認するために、必要とされるヘッダファイルとライブラリをチェックします。
Kerberosのサービスプリンシパルの名前です。デフォルトは "postgres" です。これを変える理由は特にありません。
SSL (暗号化)接続のサポートを有効にして構築します。これには、OpenSSL パッケージがインストールされていなければなりません。DIRECTORY 引数には、OpenSSL をインストールしたトップディレクトリを指定します。デフォルトは /usr/local/ssl です。
configure は、処理を進める前に OpenSSL のインストールを確認するために、必要なヘッダファイルとライブラリをチェックします。
PAM (プラグアブル認証モジュール)のサポートを有効にして構築します。
PostgreSQL サーバの syslog を使用したログ取得を有効にします(このオプションは、syslog を使用してログを取得しなければならないことは意味しません。また、デフォルトでそれが使われるというわけでもありません。単に実行時にオプションを使用して有効にすることができるようにするだけです。)。
全てのプログラムとライブラリをデバッグシンボル付きでコンパイルします。これは、問題を解析するためにデバッガを使用してプログラムを実行できることを意味します。これはインストールする実行形式ファイルのサイズをかなり大きくし、また、GCC 以外のコンパイラでは、通常はコンパイラによる最適化が行われなくなりますので、低速になります。しかし、デバッグシンボルが利用できるということは、発生した問題に対応する時に非常に便利です。現在、GCC を使用している時のみ運用状態のインストレーションにこのオプションを使用することを推奨します。しかし、開発作業時やベータ版を実行する時は、常にこれを有効にすべきです。
サーバにおける、多くの"あり得ない"状態をテストする アサーション チェックを有効にします。これは、プログラムの作成には測り知れない価値がありますが、このテストにより多少低速になります。また、テストを有効にすると、サーバの安定性を向上させるとは限りません! アサーションチェックは、重要度によって分類分けされていませんので、比較的害がないようなバグでも、アサーション失敗をトリガとした、サーバの再起動が行われてしまいます。現在、運用状態でこのオプションを使用することは推奨されません。しかし、開発作業時やベータ版を実行する時は、これを有効にすべきです。
自動依存関係追跡を有効にします。このオプションを使用すると、ヘッダファイルが変更された時に、影響を受けるオブジェクトファイルが再構築されるように、makefile が設定されます。開発作業を行っている場合は有用です。しかし、単に一度コンパイルしインストールするだけであれば、これは無駄なオーバーヘッドです。現在、GCC を使用している時のみこのオプションは動作します。
もし configure が選ぶものと違う C や C++ コンパイラを使いたいという場合、それぞれ CC と CXX 環境変数を使用したいプログラムに設定することができます。同様に、デフォルトコンパイラフラグは CFLAGS と CXXFLAGS 変数で上書きすることもできます。たとえば次のようになります。
env CC=/opt/bin/gcc CFLAGS='-O2 -pipe' ./configure
構築
構築作業を開始するには、以下を入力して下さい。
gmake
(GNU make を使用することを忘れないで下さい)。ハードウェアに依存しますが、構築作業には、5分から30分くらいかかります。最後に以下のような行が表示されるはずです。
All of PostgreSQL is successfully made. Ready to install.
リグレッションテスト
インストールを行う前に構築したサーバをテストしたい場合、この時点でリグレッションテストを実行することができます。リグレッションテストとは、使用するマシンにおける PostgreSQL が開発者が想定しているように動作することを検証するためのテストのまとまりです。
gmake check
(これは root では動作しません。非特権ユーザで実行して下さい)。エラーメッセージの言葉づかいや浮動小数点の結果によって、いくつかのテストが失敗することもあります。 Chapter 14 にはテスト結果の表示に関する詳しい情報があります。同じコマンドを入力することで、後にいつでもテストを繰り返すことができます。
ファイルのインストール
Note: もし既存のシステムのアップグレードをしていて、古いファイルの上から新しいファイルをインストールするという場合は、上記の Section 1.4 で説明したように、データをバックアップして古いサーバをこの段階でシャットダウンしなければなりません。
PostgreSQL をインストールするには、以下を入力して下さい。
gmake install
これは、ファイルを step 1 で指定されたディレクトリにインストールします。その領域に書き込むための権限を持っていることを確認してください。通常はこのステップは root で行う必要があります。代わりに対象とするディレクトリを前もって作成し、適切に権限を調整することも可能です。
root ユーザ以外で上記のコマンドを実行した場合、Perl か Python インタフェースを構築していると、おそらくインストールの一部は失敗します。その場合は、root ユーザになり下記を実行します。
gmake -C src/interfaces/perl5 install gmake -C src/interfaces/python install
スーパユーザ権限を持っていない場合、個人の裁量に任されます。必要なファイルを取り出すこともできますし、Perl や Python が検索できる他のディレクトリにコピーすることもできます。しかしその方法については訓練用にここでは示しません。
標準インストールは、クライアントアプリケーションの開発に必要なヘッダファイルのみをインストールします。サーバサイドの(独自の関数やデータ型を C 言語で作成するといった)プログラム開発を行う予定ならば、PostgreSQL のインクルードファイルのツリー全体を対象とするincludeディレクトリにインストールする方が良いでしょう。以下のようにインストールします。
gmake install-all-headers
これはインストールの作業に1、2Mバイト追加し、すべてのソースツリーを参照用に保持しない場合にのみ役立ちます(もし保持していれば、サーバサイドのソフトウェアを構築するときにソースのインクルードディレクトリを使えばよいのです)。
クライアント側のみのインストール. クライアントアプリケーションとインタフェースライブラリのみをインストールしたい場合、下記のコマンドを使います。
gmake -C src/bin install gmake -C src/include install gmake -C src/interfaces install gmake -C doc install
インストールを解除するときは、コマンドgmake uninstallを使います。しかし、作成したディレクトリは削除しません。
インストールが終わったら、gmake clean コマンドを使ってソースツリーから構築用のファイルを削除し、ディスクの領域を空けることができます。これは configure プログラムが作るファイルを保持するので、後で gmake コマンドですべてを再構築できます。ソースツリーを配布されたときの状態に戻したい場合は、gmake distclean コマンドを使います。もし同じソースツリーから複数のプラットフォームを構築する場合、これを実行し、構築する度に設定し直さなければいけません。
構築作業を行っている時に設定オプションが間違っていることに気づいた場合や、(例えば、GNU Readline をインストールしたなど) configure の調査結果に何か変更したい場合、再設定と再構築の前に gmake distclean を行って下さい。さもないと、設定選択肢の変更は、必要なところ全てに反映されません。