理工系研究者のための Mac OS X, Windows, Linux メモ
 

PostgreSQL8のインストール方法

作成日:2010.10.21
更新日:2011.4.12
  1. はじめに
  2. コンパイルの前に
  3. コンパイル&インストール
  4. データベース領域の初期化
  5. 環境変数
  6. 自動起動設定
  7. 使い方、設定など

はじめに

このページで説明するPostgreSQL8サーバのインストールでは、サーバ一式を

/usr/local/pgsql
以下にインストールします。LinuxやMac OS Xのパッケージマネージャを使えば簡単にPostgreSQLをインストールすることができますが、この場合、パッケージの指定する場所にインストールされるため、設定ファイルの位置などが微妙に異なってしまいます。そのため、ここではパッケージマネージャを使わずにコンパイルからインストールまで行う方法を説明して、OSやLinuxディストリビューションの違いを吸収するようにしたいと思います。

ここでは、現時点でのバージョン8の最新版PostgreSQL 8.4.5のインストールを行います。システムはVine Linux 5.1です。Mac OS Xを含む他のUNIX系のOSにも同じ方法でインストールできると思います。

コンパイルの前に

rootではなくて、一般ユーザーpostgresでPostgreSQLを運用します。このためにあらかじめpostgresというユーザーを作成しておきます。またパスワードも忘れず設定しておきます。

# useradd postgres
# passwd postgres
ソースの取得、コンパイルからインストールまでこのユーザーで行います。

コンパイル&インストール

PostgreSQLのウェブサイトからソースを取得します。現時点ではバージョン9が出ていますが、ここではバージョン8の最新版8.4.5です。ソースの解凍からインストールまでは次の通り。

$ tar zxvf postgresql-8.4.5.tar.gz
$ cd postgresql-8.4.5/
$ ./configure --prefix=/usr/local/pgsql
バージョン7.2までは--enable-multibyteをつける必要がありましたが、現在はつけなくて良いようです。

そしてコンパイルからインストールまでは次のように行います。

$ make
$ make check
$ su
# mkdir /usr/local/pgsql
# chown postgres:postgres
# exit
$ make install
以上です。

データベース領域の初期化

インストール後に、一度だけ初期化する必要があります。ユーザーpostgresで行ます。初期化の時には、データベースを作成するディレクトリを指定します。ここでは/usr/local/pgsql/dataとします。またデータベースの文字コードはEUC_JPとします。ロケールはまだ正しく対応していないようなのでno-localeを指定します。

postgres$ initdb --pgdata=/usr/local/pgsql/data -E EUC_JP --no-locale

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale C.
fixing permissions on existing directory /usr/local/pgsql/data... ok
(中略)
copying template1 to template0... ok
Success. You can now start the database server using:
/usr/local/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

▼参考サイト or 参考文献

環境変数

必要なら次の環境変数を設定しておきます。

export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH=$POSTGRES_HOME/man

自動起動設定

PostgreSQLにはシステムの起動時にサーバを自動起動するためのスクリプトが準備されています。 コンパイルに使ったソースファイルのcontrib/start-scripts/を見てみると、次のようにファイルが準備されています。

$ ls contrib/start-scripts/
freebsd  linux osx/

Linuxの場合には、linuxというファイルをinit.d以下にコピーします。

# contrib/start-scripts/linux /etc/init.d/postgresql
# chmod 755 /etc/init.d/postgresql

起動時に実行するためにサービスに追加します。

# chkconfig --add postgresql
# chkconfig --list postgresql
postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off

使い方、設定など

PostgreSQLの使い方、設定はこちらのページをご覧ください。