Mac OS X 10.6にPostgreSQLをインストールする方法について、参照元URLのページを元に作成しました。
intel Macmini Late2009 Mac OS X 10.6
PostgreSQL 8.4.1
readline-6.0 (Postgreに必要なライブラリ)
手順は以下のようになります。1と2の順番以外は前後してもよい。
readlineをインストールします。ソースファイルは下記URLです。
特別な設定は不要なので、淡々と進めます。
http://ftp.yz.yamagata-u.ac.jp/pub/GNU/readline/
cd /usr/local/src curl -O http://ftp.yz.yamagata-u.ac.jp/pub/GNU/readline/readline-6.0.tar.gz tar -zvxf readline-6.0.tar.gz
次に、readlineをコンパイルし、インストールします。
cd readline-6.0 ./configure make sudo make install
下記URLより、Postgresの最新版をダウンロードします。
http://www.postgresql.jp/PostgreSQL/8_4/8_4_1
cd /usr/local/src curl -O http://www.ring.gr.jp/pub/misc/db/postgresql/source/v8.4.1/postgresql-8.4.1.tar.gz tar -zvxf postgresql-8.4.1.tar.gz
次に、Postgresをコンパイルし、インストールします。こちらも特に設定不要なので淡々と進めます。
cd postgresql-8.4.1 ./configure make sudo make install
ユーザーの生成方法が10.4以前から大きく変わり、dsclというコマンドを使います。
作成するユーザーは名前、グループ名が共に_postgresというユーザーです。(デーモンで動作するユーザーは一文字目がアンダースコアで始まることにしているようです。無くても大丈夫ですが)
まずは、利用可能なGIDとUIDを調べます。
dscl . -list /Groups PrimaryGroupID | awk '{print $2}' | sort -n dscl . -list /Users UniqueID | awk '{print $2}' | sort -n
上記コマンドで出力された数字はすでに使用されているIDです。 使用済みIDは人それぞれですが、空き番号がUID,GIDともに113だったとします。
sudo -i dscl . create /Users/_postgres UniqueID 113 dscl . create /Users/_postgres PrimaryGroupID 113 dscl . create /Users/_postgres NFSHomeDirectory /usr/local/pgsql/ dscl . create /Users/_postgres RealName "PostgreSQL Server" dscl . create /Users/_postgres Password "*" dscl . append /Users/_postgres RecordName postgres
最後のappendコマンドは、_postgresユーザーの存在を忘れないよう、postgresという「あだ名」を登録しています。
続いて、_postgresグループを作ります。
dscl . create /Groups/_postgres dscl . create /Groups/_postgres PrimaryGroupID 113 dscl . append /Groups/_postgres RecordName postgres dscl . create /Groups/_postgres RealName "PostgreSQL Users" logout
この時点でインストールは完成しました。ユーザーも完成しました。次に、データベースを作成する必要があります。
sudo mkdir /usr/local/pgsql/data sudo mkdir /usr/local/pgsql/log sudo chown -R postgres:postgres /usr/local/pgsql sudo chmod -R 700 /usr/local/pgsql/data
postgresを起動するため、_postgresユーザーでログインします。
sudo su _postgres -
データベースを初期化し、デーモンをスタートします。
/usr/local/pgsql/bin/initdb -E UTF8 -D /usr/local/pgsql/data/ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/postgresql.log start
最後に、必要であれば過去のデータをインポートします。
/usr/local/pgsql/bin/createdb testdb /usr/local/pgsql/bin/psql -f /tmp/database-dump.sql testdb
インポートされたか確認します。
/usr/local/pgsql/bin/psql -l