2009年10月18日日曜日

PostgreSQL8.4.1のインストール

最新版の PostgreSQL (8.4.1) をソースコードからインストールする機会がありましたので、手順を記録しておきます。基本的に、ドキュメント「第15章ソースコードからインストール」の手順にしたがって進めています。

必要なライブラリのインストール

今回は CentOS 5.3 を使用しました。configure 時に下記のライブラリを要求されますので、事前にインストールしておきます。

  • readline-devel
  • zlib-devel

postgresユーザとインストール先ディレクトリの作成

管理者アカウントであるpostgresユーザと、インストール先ディレクトリを作成します。ここでは gid, uid の指定はしませんでしたが、既存環境と合わせる必要がある場合は、-g, -u オプションで明示的に指定します。また、インストール先は /usr/local/pgsql とします。

# useradd postgres
# mkdir /usr/local/pgsql
# chown postgres. /usr/local/pgsql

インストールの実行

ここでは、ソースをビルドする作業ディレクトリを /usr/local/src/postgresql/ として作業します。confugure オプションは特に指定せず、デフォルトでインストールしました。

# mkdir /usr/local/src/postgresql/
# chown postgres. /usr/local/src/postgresql/
# su - postgres

$ cd /usr/local/src/postgresql/
$ wget http://www.ring.gr.jp/pub/misc/db/postgresql/source/v8.4.1/postgresql-8.4.1.tar.gz
$ tar zxvf postgresql-8.4.1.tar.gz
$ cd postgresql-8.4.1
$ ./configure
$ make
$ make install

環境変数の設定

postgres ユーザの .bashrc に、環境変数を設定します。

$ vi ~/.bashrc

 以下を記述:
 export PATH=$PATH:/usr/local/pgsql/bin:/usr/local/pgsql/lib
 export POSTGRES_HOME=/usr/local/pgsql
 export PGLIB=$POSTGRES_HOME/lib
 export PGDATA=$POSTGRES_HOME/data
 export MANPATH=$MANPATH:$POSTGRES_HOME/man
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGLIB

$ source ~/.bashrc

また、 ldconfig コマンドで実行時リンクの結合関係を設定しておくことで、パフォーマンスの改善が期待できます。CentOS5の場合、root 権限で以下を実行します。

# /sbin/ldconfig /usr/local/pgsql/lib

データベースクラスタの作成

postgres ユーザにて、データベースクラスタの作成を実行します。作成の実行後にデータベースの起動を確認します。

$ initdb
$ pg_ctl start
$ psql -l
        List of databases
     Name    |  Owner   | Encoding |  Collation  |    Ctype    |   Access privileges
  -----------+----------+----------+-------------+-------------+-----------------------
   postgres  | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |
   template0 | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres
              : postgres=CTc/postgres
   template1 | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres
              : postgres=CTc/postgres
  (3 rows)
起動を確認したら、pg_ctl stop で停止しておきます。

起動スクリプトの設置

同梱の起動スクリプトを設置し、起動の設定をしておきます。

# cp /usr/local/src/postgresql/postgresql-8.4.1/contrib/start-scripts/linux /etc/init.d/postgresql
# chmod +x /etc/init.d/postgresql
# chkconfig --add postgresql
# chkconfig postgresql on
# chkconfig --list | grep postgresql

 postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off
これでインストールが完了しました。

クライアント側のみのインストール

アプリケーションサーバとデータベースサーバを分離した構成にする場合、いままで私はクライアント側は通常インストールを実行していました(データベースクラスタは作成しない)。が、今回の作業でマニュアルに「クライアント側のみのインストール」の方法が記述してあることに気付きましたので、メモしておきます。

gmake -C src/bin install
gmake -C src/include install
gmake -C src/interfaces install
gmake -C doc install
http://www.postgresql.jp/document/pg841doc/html/install-procedure.html

0 件のコメント:

コメントを投稿