他のバージョンの文書 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

1.5. インストール手順

  1. Configuration

    インストール手順の最初のステップは、システムに合わせてソースを設定し、付与するオプションを選択することです。configure スクリプトを実行することで行われます。デフォルトのインストールを行う場合は、単に以下を入力して下さい。

    ./configure

    このスクリプトは、各種のシステムに依存した変数の値を推定するために多くの試験を行い、使用中のオペレーティングシステムが持つ奇癖を検出し、最終的に構築用ツリーに結果を記録するためのファイルをいくつか作成します。

    デフォルトの設定は、サーバ、ユーティリティの他に、C コンパイラだけを必要とするクライアントアプリケーションやインタフェースを構築します。デフォルトでは、全てのファイルは /usr/local/pgsql 以下にインストールされます。

    configure に以下のコマンドラインオプションを 1 つ以上指定することで構築処理やインストール処理を変更することができます。

    --prefix=PREFIX

    /usr/local/pgsql ではなく、PREFIX ディレクトリ以下に全てのファイルをインストールします。ファイルは実際には様々な副ディレクトリにインストールされ、PREFIX ディレクトリの直下にインストールされるファイルはありません。

    特別な必要性があるのであれば、以下のオプションを使用して個々の副ディレクトリを変更することもできます。

    --exec-prefix=EXEC-PREFIX

    アーキテクチャ依存のファイルを PREFIX の設定とは別の接頭詞 EXEC-PREFIX 以下にインストールすることができます。ホスト間でアーキテクチャ非依存のファイルを共有する場合に便利です。省略した場合、 EXEC-PREFIXPREFIX と同じに設定され、アーキテクチャに依存するファイルも非依存なファイルも同じツリー以下にインストールされます。ほとんどの場合、これが望まれています。

    --bindir=DIRECTORY

    実行可能プログラム用のディレクトリを指定します。デフォルトでは EXEC-PREFIX/bin であり、通常、 /usr/local/pgsql/bin となります。

    --datadir=DIRECTORY

    インストールされたプログラムで使用される、読みとりのみファイル用のディレクトリを指定します。デフォルトは PREFIX/share です。これはデータベースファイルを格納する場所とは全く関係がないことに注意して下さい。

    --sysconfdir=DIRECTORY

    各種設定ファイル用のディレクトリです。デフォルトでは PREFIX/etc です。

    --libdir=DIRECTORY

    ライブラリや読み込み可能モジュールをインストールする場所です。デフォルトは EXEC-PREFIX/lib です。

    --includedir=DIRECTORY

    C および C++ ヘッダファイルをインストールするディレクトリです。デフォルトは PREFIX/include です。

    --docdir=DIRECTORY

    "man" ページを除く文書ファイルがこのディレクトリにインストールされます。デフォルトは PREFIX/doc です。

    --mandir=DIRECTORY

    PostgreSQL 付属のマニュアルページがこのディレクトリ以下の、対応するmanx 副ディレクトリにインストールされます。デフォルトは PREFIX/man です。

    Note: (/usr/local/include といった)共用のインストール場所に、システムの他の名前空間に影響することなく、PostgreSQL をインストールすることができるように注意しています。まず、完全に展開したディレクトリ名に "postgres""pgsql" という文字列が含まれていない場合、 "/postgresql" という文字列が自動的に datadirsysconfdirdocdir に追加されます。例えば、PREFIX として /usr/local を使用する場合、文書は /usr/local/doc/postgresql にインストールされますが、PREFIX が /opt/postgres の場合は /opt/postgres/doc にインストールされます。次に、C およびC++ ヘッダファイルのインストールレイアウトが 7.2 で変更されました。クライアントインタフェース用の外部向けヘッダファイルは includedir にインストールされ、名前空間はありません。内部向けヘッダファイルやサーバ用ヘッダファイルは、includedir 以下の非公開ディレクトリにインストールされます。各インタフェース用のヘッダファイルを取り出す方法についての情報は プログラマガイド を参照して下さい。最後に、適切であれば、動的ロード可能モジュール用に libdir 以下にも非公開用の副ディレクトリが作成されます。

    --with-includes=DIRECTORIES

    DIRECTORIES には、コンパイラがヘッダファイルを検索するディレクトリのリストをコロンで区切って指定します。(GNU Readline などの)オプションのパッケージが非標準的な場所にインストールされている場合、このオプションと、おそらく対応する --with-libraries オプションを使用する必要があります。

    例: --with-includes=/opt/gnu/include:/usr/sup/include

    --with-libraries=DIRECTORIES

    DIRECTORIES には、ライブラリを検索するディレクトリのリストをコロンで区切って指定します。パッケージが非標準的な場所にインストールされている場合は、おそらくこのオプション(と対応する--with-includes オプション)を使用する必要があります

    例: --with-libraries=/opt/gnu/lib:/usr/sup/lib

    --enable-locale

    ロケールのサポートを有効にします。ロケールのサポートを行うと性能は悪化しますが、英語圏以外の環境ではこのオプションが必要になるでしょう。

    --enable-recode

    シングルバイト文字セットレコードのサポートを有効にします。この機能に関しては Section 5.3 を参照して下さい。

    --enable-multibyte

    (Unicode を含む)マルチバイト文字符号化方式と文字セット符号変換の使用を可能にします。詳細は、 Section 5.2 を参照して下さい。

    (TclやJavaなど)インタフェースの中には、全ての文字列は Unicode であることを前提としているものがあります。ですからこのオプションは、こういったインタフェースを正しくサポートするために必要とされます。

    --enable-nls[=LANGUAGES]

    各国語サポート(NLS)、つまり、英語以外の言語によるプログラムメッセージの表示機能、を有効にします。 LANGUAGES にはサポート予定言語のコードのリストを空白で区切って指定します。例えば、--enable-nls='de fr' です(指定したリストと実際に用意された翻訳との論理積が自動的に計算されます)。リストに何も指定しなかった場合、利用可能な翻訳全てがインストールされます。

    このオプションを使用するためには、gettext API を実装したものが必要です。(例えば、LinuxNetBSDSolaris など)オペレーティングシステムの中には、組み込み済みのものがあります。他のシステムでは、追加パッケージを http://www.postgresql.org/~petere/gettext.html からダウンロードすることができます。GNU C ライブラリの gettext の実装を使用する場合、更に、他のユーティリティプログラムのために GNU gettext パッケージが必要となります。他の実装の場合は必要ありません。

    --with-pgport=NUMBER

    サーバとクライアントのデフォルトのポート番号を NUMBER に設定します。デフォルトは 5432 です。このポートは後でいつでも変更することができますが、ここで指定した場合、サーバとクライアントはコンパイル時に同じデフォルト値を持つことができます。これは非常に便利です。通常、デフォルト以外の値を選択すべき唯一の理由は、同じマシンで複数の PostgreSQL を稼働させることです。

    --with-CXX

    C++ 用のインタフェースライブラリを構築します。

    --with-perl

    Perl インタフェースモジュールを構築します。この Perl インタフェースは通常の Perl モジュール用の場所(典型的には /usr/lib/perl )にインストールされます。ですから、インストールの段階では、root 権限が必要となります(step 4 を参照して下さい)。このオプションを使用するにはPerl 5 がインストールされていなければなりません。

    --with-python

    Python インタフェースモジュールを構築します。この Python モジュールをデフォルトの場所 (/usr/lib/pythonx.y) にインストールするには root 権限が必要です。このオプションを使用するためには、Python がインストールされていること、および、システムが共有ライブラリをサポートしていることが必要です。他の方法として、新規に完全なインタプリタのバイナリを構築するのであれば、それは手動で行わなければなりません。

    --with-tcl

    Tcl/Tk を必要とする部分、libpgtclpgtclshpgtkshPgAccessPL/Tclを構築します。--without-tk については下記を参照してください。

    --without-tk

    もし --with-tclとこのオプションを指定した場合、 Tk を必要とするプログラム(つまり pgtkshpgaccess)は除外されます。

    --with-tclconfig=DIRECTORY
    --with-tkconfig=DIRECTORY

    Tcl/Tk は、Tcl と Tk のインタフェースのモジュールを構築するために必要な特定の設定情報を含むファイル tclConfig.shtkConfig.sh をインストールします。これらのファイルは通常、自動的に一般的に知られる場所にインストールされますが、もし Tcl か Tk の別のバージョンを使いたい場合は、インストールしたいディレクトリを指定できます。

    --enable-odbc

    ODBCドライバを構築します。デフォルトでは、ドライバはドライバマネージャに依存しません。システムにインストール済みのドライバマネージャとより良く動作させるには、このオプションに加えて以下のオプションの中の 1 つを使用して下さい。より詳細については プログラマガイド を参照して下さい。

    --with-iodbc

    iODBC を使用する ODBC ドライバを構築します。

    --with-unixodbc

    unixODBC を使用する ODBC ドライバを構築します。

    --with-odbcinst=DIRECTORY

    ODBCドライバが自身の odbcinst.ini 設定ファイルを探すディレクトリを指定します。デフォルトは /usr/local/pgsql/etc、もしくは --sysconfdir オプションで指定した場所です。ドライバマネージャと同じファイルを読み込むようにドライバを設定しなければなりません。

    --with-iodbc--with-unixodbc オプションのどちらかを使用する場合、このオプションは無視されます。そのような場合ドライバマネージャが設定ファイルの場所を管理するからです。

    --with-java

    JDBC ドライバと関連する Java パッケージを構築します。このオプションは、Ant がインストールされていること(当然ながらJDK がインストールされていること)を必要とします。より詳細については プログラマガイド 内の JDBC ドライバの文書を参照して下さい。

    --with-krb4[=DIRECTORY]
    --with-krb5[=DIRECTORY]

    Kerberos 認証のサポートを構築します。Kerberos のバージョンは 4 か 5 のどちらかを使うことができますが、両方使うことはできません。 DIRECTORY 引数は Kerberos をインストールしたところのトップディレクトリを指定します。/usr/athena がデフォルトとして仮定されます。もし関係するヘッダファイルとライブラリが共通の親ディレクトリの下になければ、 --with-includes--with-libraries オプションをさらに追加して使わなければいけません。一方、もし必要とされるファイルがデフォルトで検索される場所(たとえば /usr/lib )にある場合、引数はなくても構いません。

    configureは、次に進む前に Kerberos が正しくインストールされていることを確認するために、必要とされるヘッダファイルとライブラリをチェックします。

    --with-krb-srvnam=NAME

    Kerberosのサービスプリンシパルの名前です。デフォルトは "postgres" です。これを変える理由は特にありません。

    --with-openssl[=DIRECTORY]

    SSL (暗号化)接続のサポートを有効にして構築します。これには、OpenSSL パッケージがインストールされていなければなりません。DIRECTORY 引数には、OpenSSL をインストールしたトップディレクトリを指定します。デフォルトは /usr/local/ssl です。

    configure は、処理を進める前に OpenSSL のインストールを確認するために、必要なヘッダファイルとライブラリをチェックします。

    --with-pam

    PAM (プラグアブル認証モジュール)のサポートを有効にして構築します。

    --enable-syslog

    PostgreSQL サーバの syslog を使用したログ取得を有効にします(このオプションは、syslog を使用してログを取得しなければならないことは意味しません。また、デフォルトでそれが使われるというわけでもありません。単に実行時にオプションを使用して有効にすることができるようにするだけです。)。

    --enable-debug

    全てのプログラムとライブラリをデバッグシンボル付きでコンパイルします。これは、問題を解析するためにデバッガを使用してプログラムを実行できることを意味します。これはインストールする実行形式ファイルのサイズをかなり大きくし、また、GCC 以外のコンパイラでは、通常はコンパイラによる最適化が行われなくなりますので、低速になります。しかし、デバッグシンボルが利用できるということは、発生した問題に対応する時に非常に便利です。現在、GCC を使用している時のみ運用状態のインストレーションにこのオプションを使用することを推奨します。しかし、開発作業時やベータ版を実行する時は、常にこれを有効にすべきです。

    --enable-cassert

    サーバにおける、多くの"あり得ない"状態をテストする アサーション チェックを有効にします。これは、プログラムの作成には測り知れない価値がありますが、このテストにより多少低速になります。また、テストを有効にすると、サーバの安定性を向上させるとは限りません! アサーションチェックは、重要度によって分類分けされていませんので、比較的害がないようなバグでも、アサーション失敗をトリガとした、サーバの再起動が行われてしまいます。現在、運用状態でこのオプションを使用することは推奨されません。しかし、開発作業時やベータ版を実行する時は、これを有効にすべきです。

    --enable-depend

    自動依存関係追跡を有効にします。このオプションを使用すると、ヘッダファイルが変更された時に、影響を受けるオブジェクトファイルが再構築されるように、makefile が設定されます。開発作業を行っている場合は有用です。しかし、単に一度コンパイルしインストールするだけであれば、これは無駄なオーバーヘッドです。現在、GCC を使用している時のみこのオプションは動作します。

    もし configure が選ぶものと違う C や C++ コンパイラを使いたいという場合、それぞれ CCCXX 環境変数を使用したいプログラムに設定することができます。同様に、デフォルトコンパイラフラグは CFLAGSCXXFLAGS 変数で上書きすることもできます。たとえば次のようになります。

    env CC=/opt/bin/gcc CFLAGS='-O2 -pipe' ./configure

  2. 構築

    構築作業を開始するには、以下を入力して下さい。

    gmake

    (GNU make を使用することを忘れないで下さい)。ハードウェアに依存しますが、構築作業には、5分から30分くらいかかります。最後に以下のような行が表示されるはずです。

    All of PostgreSQL is successfully made. Ready to install.

  3. リグレッションテスト

    インストールを行う前に構築したサーバをテストしたい場合、この時点でリグレッションテストを実行することができます。リグレッションテストとは、使用するマシンにおける PostgreSQL が開発者が想定しているように動作することを検証するためのテストのまとまりです。

    gmake check

    (これは root では動作しません。非特権ユーザで実行して下さい)。エラーメッセージの言葉づかいや浮動小数点の結果によって、いくつかのテストが失敗することもあります。 Chapter 14 にはテスト結果の表示に関する詳しい情報があります。同じコマンドを入力することで、後にいつでもテストを繰り返すことができます。

  4. ファイルのインストール

    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 を行って下さい。さもないと、設定選択肢の変更は、必要なところ全てに反映されません。