[PR]

[PR]


はじめに

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の順番以外は前後してもよい。

  1. readlineのインストール
  2. Postgreのインストール
  3. postgresユーザーの生成
  4. スタートアップの登録

readlineのインストール

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

Postgreのインストール

下記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

configureで64bitの設定をしていませんが、私の環境では64bitで動作しています。

postgresユーザーの生成

ユーザーの生成方法が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

スタートアップの登録

mac起動時に自動的にデーモンをスタートさせる設定ファイルpostgres.plistを作ります。
作成済みファイルをこのページに添付しています。必要に応じてお使いください。

<?xml version="1.0" encoding="UTF-8"?> 
<plist version="1.0"> 
<dict> 
        <key>Label</key> 
        <string>postgres</string> 
        <key>UserName</key> 
        <string>_postgres</string> 
        <key>GroupName</key> 
        <string>_postgres</string> 
        <key>WorkingDirectory</key> 
        <string>/usr/local/pgsql</string> 
        <key>ProgramArguments</key> 
        <array> 
                 <string>/usr/local/pgsql/bin/pg_ctl</string> 
                 <string>-D</string> 
                 <string>/usr/local/pgsql/data</string> 
                 <string>-l</string> 
                 <string>/usr/local/pgsql/postgres.log</string> 
                 <string>start</string> 
        </array> 
        <key>OnDemand</key> 
        <false/> 
        <key>RunAtLoad</key> 
        <true/> 
</dict> 
</plist>

postgres.plistを所定のフォルダに移動させます。

sudo mv ~/Desktop/postgres.plist /System/Library/LaunchDaemons/
sudo chmod 644 /System/Library/LaunchDaemons/postgres.plist

参照元URL

Upgrading postgres on Snow Leopard (Mac OS X 10.6)flow


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS