PostgreSQL7.3をソースコードからインストールする手順を紹介します。
インストールの流れ
本家からリンクされているFTPサイト (ここ) 、日本 PostgreSQLユーザー会で紹介されているFTPサイト (ここ) 、弊社のFTPサイト ここ から postgresql-7.3.tar.gz を入手します。入手したソースコードは /tmp 以下に置いておきます。
インストールの準備PostgreSQLはrootでは運用できません。そのため、専用の管理アカウント を設けこのアカウントでインストールから運用までを行います。ここでは例と して postgres というアカウントを利用します。まず、OSに postgres ユーザ のアカウントを登録します。root で実行します。
| # useradd postgres |
続いてソースコードを展開するディレクトリの作成と所有権限の変更を行いま す。
| # mkdir /usr/local/src/postgresql-7.3 # chown postgres /usr/local/src/postgresql-7.3 |
続いて、PostgreSQLのプログラムをインストールするディレクトリの作成と所 有権限の変更を行います。デフォルトでインストールするディレクトリを指定 していますが、必要に応じて変更します。
| # mkdir /usr/local/pgsql # chown postgres /usr/local/pgsql |
root で実行するのはここまでです。
ソースの展開・コンパイルPostgreSQLを運用するユーザ(この場合は postgres) でソースコードの展 開を行います。
| # su - postgres $ cd /usr/local/src $ tar xfz /tmp/postgresql-7.3.tar.gz |
postgresql-7.3 ディレクトリ以下にソースコードが展開されますので、この ディレクトリに移動します。
| $ cd postgresql-7.3 |
つづいて PostgreSQL のインストールオプションを指定します。必要に応じて オプションを指定してください。今回はオプションの指定はなしで行います。
| $ ./configure |
[注意] コンパイルオプションの変更点
7.3では標準で組み込まれるオプション
| マルチバイトキャラクターサポート | 7.2までは --enable-multibyte オプションで指定していました。SQL_ASCII が標準となっています。標準の文字エンコーディングを変えるにはinitdb の --encoding オプションで指定します。 |
| ロケールの利用 | 7.2までは --enable-locale オプションで指定していました。日本語環境 利用者ではソートの並び順などに不具合がある場合があるため、推奨されてい ないオプションです。ロケールを利用しないようにするにはinitdb の --no-locale オプションで指定します。 |
| syslogへのログの取得 | 7.2までは --enable-syslog オプションで指定していました。 PostgreSQL のログを syslog に出力する機能です。 |
7.3で追加されたオプション
| --enable-integer-datetimes | 64ビット整数型の date,time 型をサポートします。 |
| --without-readline | ReadlineライブラリはPostgreSQLでは psql などのコマンドラインの編集、 ヒストリ機能を提供します。 このオプションを指定すると上記の機能が使用できなくなります。 |
| --without-zlib | zlibライブラリは圧縮アルゴリズムのライブラリでPostgreSQLでは バックアップの際の圧縮に使用しています。 このオプションを指定するとバックアップの圧縮機能が利用できません。 |
configure が正常終了したらプログラムのコンパイルを行います。
| $ make all |
インストールの前にコンパイルされたプログラムを確認するテストスイー トを実行します。
| $ make check |
次のように出力されれば、正しくコンパイルされたとみなします。
====================== All 89 tests passed. ====================== |
最後にプログラムをインストールします。
| $ make install |
~postgres/.bashrc ファイルに下記の設定を追加します。
|
PG=/usr/local/pgsql PATH="$PATH":$PG/bin export MANPATH="$MANPATH":$PG/man export PGLIB=$PG/lib export PGDATA=$PG/data |
設定を再読み込みします。
| $ source ~/.bashrc |
PostgreSQL ではデータベースクラスタといわれるディレクトリ以下にデー タベースのすべての情報を格納します。プログラムインストール終了の段階で はこれは作成されておらず initdb というコマンドの実行によって作成されま す。データベースクラスタとして作成されるディレクトリは環境変数の設定で $PGDATA に指定したディレクトリです。 initdb は次のように実行します。
| $ initdb --encoding=EUC_JP --no-locale |
--encoding=EUC_JP データベースのデフォルトの文字エンコーディングを EUC_JP にします。
--no-locale ロケールを利用しません。
最後に PostgreSQL のデーモンプロセスである postmaster を起動します。起動する前に必要に応じて $PGDATA にある postgresql.conf や pg_hba.conf を修正します。 postamster の起動は以下のように行います。
| $ pg_ctl -w start |
postmaster が起動されたらデータベースへ接続できるか確認を行いましょう。
$ psql -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
|