インストール手順

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 14章インストール手順 | 早送り | 次のページ

# 14.5. インストール手順

1. 構成 (Configuration)

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

       ./configure

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

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

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

   `--prefix=`PREFIX``

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

     特別な必要性があるのであれば、以下のオプションを使用して個々のサブディレクトリを変更することもできます。 しかし、これらをそのまま使用したとしても、インストレーションは位置再変更可能です。。 つまり、インストールの後にディレクトリを移動することができます。 （`man`と`doc`の場所はこの影響を受けません。）

     インストールの位置再変更のために、`configure`の`--disable-rpath`を使用しようと考えるかもしれません。 その場合は、オペレーティングシステムにその共有ライブラリの場所を通知する必要があるでしょう。

   `--exec-prefix=`EXEC-PREFIX``

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

   `--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` です。

   `--mandir=`DIRECTORY``

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

   `--with-docdir=`DIRECTORY``
   `--without-docdir`

     "man"ページ以外の文書ファイルがこのディレクトリにインストールされます。 デフォルトは``PREFIX`/doc`です。 `--without-docdir`オプションが指定された場合、文書は`make install`によってインストールされません。 これは、文書のインストール用に特別な方法を持つパッケージ作成スクリプトを目的としています。

   > 注意: (`/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`以下にも非公開用のサブディレクトリが作成されます。

   `--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-nls[=`LANGUAGES`]`

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

     このオプションを使用するためには、gettext API の実装が必要です。 上記を参照してください。

   `--with-pgport=`NUMBER``

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

   `--with-perl`

     PL/Perlサーバサイド言語を構築します。

   `--with-python`

     PL/Pythonサーバサイド言語を構築します。

   `--with-tcl`

     PL/Tclサーバサイド言語を構築します。

   `--with-tclconfig=`DIRECTORY``

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

   `--with-krb4`
   `--with-krb5`

     Kerberos認証のサポートを構築します。 Kerberosのバージョンは4か5のどちらかを使うことができますが、両方使うことはできません。 多くのシステムでは、Kerberosシステムはデフォルトの検索場所（例えば`/usr/include`や`/usr/lib`）にインストールされていません。 そのため、`--with-includes`と`--with-libraries`オプションをさらに追加して使わなければいけません。 `configure`は、処理を進める前にKerberosが正しくインストールされていることを確認するために、必要とされるヘッダファイルとライブラリを検査します。

   `--with-krb-srvnam=`NAME``

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

   `--with-openssl`

     SSL(暗号化)接続のサポートを有効にして構築します。 これには、OpenSSLパッケージがインストールされていなければなりません。 `configure`は、処理を進める前にOpenSSLのインストールを確認するために、必要なヘッダファイルとライブラリを検査します。

   `--with-pam`

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

   `--without-readline`

     Readline ライブラリの使用を防止します。 これにより psql でのコマンドライン編集および履歴が無効となるため、推奨されません。

   `--with-rendezvous`

     Rendezvousサポートを有効にして構築します。 これにはオペレーティングシステムがRendezvousをサポートしていることが必要です。 Mac OS Xでは推奨します。

   `--disable-spinlocks`

     PostgreSQLがそのプラットフォーム用のCPUスピンロックをサポートしない場合でも、構築に成功するようにします。 スピンロックのサポートの欠落により、性能は悪化します。 従って、このオプションは、構築が失敗し、その原因が使用するプラットフォームでスピンロックサポートが欠落している場合にのみ使用してください。 使用するプラットフォームにおけるPostgreSQLの構築にこのオプションが必要とされた場合は、PostgreSQL開発者にその問題を報告してください。

   `--enable-thread-safety`

     クライアントライブラリをスレッドセーフで作成します。 これにより、libpq や ECPG プログラム内の同時実行スレッドは、安全にその固有の接続ハンドルを制御することができます。 このオプションは、オペレーティングシステムで適切なスレッド処理がサポートされていることが必要です。

   `--without-zlib`

     Zlibライブラリの使用を抑制します。 これは、pg_dumpとpg_restoreにおける圧縮アーカイブのサポートを無効にします。 このオプションは、このライブラリが利用できないごく少数のシステム向けだけのものです。

   `--enable-debug`

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

   `--enable-cassert`

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

   `--enable-depend`

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

   `configure` が選ぶものと違う C コンパイラを使いたいという場合には、`CC` 環境変数を、その使用したいプログラムに設定することができます。 デフォルトでは、`configure` は利用できるのであれば`gcc`を、利用できなければプラットフォームのデフォルト(通常`cc`)を選択します。 同様に、デフォルトのコンパイラフラグは必要に応じて `CFLAGS` 変数で上書きすることもできます。

   次のようにして、`configure` コマンドラインに環境変数を指定することができます。

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

2. 構築

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

       gmake

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

       All of PostgreSQL is successfully made. Ready to install.

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

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

       gmake check

   (これは root では動作しません。 非特権ユーザとして実行してください)。 第26章にはテスト結果の表示に関する詳しい情報があります。 同じコマンドを入力することで、後にいつでもテストを繰り返すことができます。

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

   > 注意: もし既存のシステムのアップグレードをしていて、古いファイルの上から新しいファイルをインストールするという場合は、上記の 項14.4 で説明したように、確実にデータをバックアップして、処理を進める前に古いサーバをシャットダウンしてください。

   PostgreSQL をインストールするには、以下を入力してください。

       gmake install

   これは、ファイルを ステップ1 で指定されたディレクトリにインストールします。 その領域に書き込むための権限を持っていることを確認してください。 通常はこのステップは root で行う必要があります。 代わりに対象とするディレクトリを前もって作成し、適切に権限を調整することも可能です。

   `gmake install` の代わりに `gmake install-strip` を使用することで、インストール時に実行可能ファイルやライブラリをストリップ (strip) することができます。 これにより、多少の容量を節約できます。 デバッグをサポートするように構築している場合、ストリップすることでデバッグのサポートも除去されます。 したがって、これはデバッグが必要なくなった場合にのみ実行すべきです。 `install-strip` は容量を節約するために適切な作業を行おうとしますが、実行可能ファイルから全ての不必要なバイトを完全にストリップすることはできません。 可能な限りのディスク容量を全て節約したい場合は、手動で作業を行う必要があります。

   この標準的なインストール方法では、クライアントアプリケーションの開発に必要なヘッダファイルと、Cで独自の関数やデータ型を作成するといったサーバ側のプログラムの開発用のヘッダファイルが用意されます。 (PostgreSQL 8.0より前まででは、後で別途`gmake install-all-headers`コマンドが必要でした。しかし、この手順は標準のインストールに含まれるようになりました。)

   クライアント側のみのインストール: クライアントアプリケーションとインタフェースライブラリのみをインストールしたい場合、下記のコマンドを使います。

       gmake -C src/bin install
       gmake -C src/include install
       gmake -C src/interfaces install
       gmake -C doc install

Windowsにおけるeventlogの登録: Windows eventlogライブラリをオペレーティングシステムに登録するには、インストール後に以下のコマンドを実行してください。

    regsvr32 pgsql_library_directory/pgevent.dll

これによりイベントビューアで使用されるレジストリ項目が生成されます。

アンインストール: インストールを取り消すには、`gmake uninstall` コマンドを使います。しかし、作成済みのディレクトリは削除されません。

クリーニング: インストールが終わったら、`gmake clean` コマンドを使ってソースツリーから構築用のファイルを削除し、ディスクの領域を空けることができます。 これは`configure`プログラムが作るファイルを保持するので、後で `gmake` コマンドで全てを再構築できます。 ソースツリーを配布された時の状態に戻したい場合は、`gmake distclean` コマンドを使います。 同じソースツリー内で複数のプラットフォーム向けに構築する場合、構築する度に、これを実行し`configure`をし直さなければいけません。 (または、未変更のソースツリーを維持するために、各プラットフォームで別々の構築用ツリーを使用してください。)

構築作業を行った後で`configure`用オプションが間違っていることに気づいた場合や、`configure`の調査結果に何らかの変更を加えた場合 (例えば、ソフトウェアのアップグレードなど)、再設定と再構築の前に `gmake distclean` を行うことをお勧めします。 さもないと、設定選択肢の変更は、必要なところ全てに反映されない可能性があります。

前のページ | ホーム | 次のページ
アップグレードする場合 | 上に戻る | インストール後の設定作業