最新版の 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 ユーザにて、データベースクラスタの作成を実行します。作成の実行後にデータベースの起動を確認します。
起動を確認したら、pg_ctl stop で停止しておきます。
$ 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)
起動スクリプトの設置
同梱の起動スクリプトを設置し、起動の設定をしておきます。
これでインストールが完了しました。
# 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
クライアント側のみのインストール
アプリケーションサーバとデータベースサーバを分離した構成にする場合、いままで私はクライアント側は通常インストールを実行していました(データベースクラスタは作成しない)。が、今回の作業でマニュアルに「クライアント側のみのインストール」の方法が記述してあることに気付きましたので、メモしておきます。
http://www.postgresql.jp/document/pg841doc/html/install-procedure.html
gmake -C src/bin install
gmake -C src/include install
gmake -C src/interfaces install
gmake -C doc install
0 件のコメント:
コメントを投稿