必要に迫られて、手元のMacOS X 10.5環境で開発用にPostgreSQLを動かすことになった。自分一人だけ使えればいいので、使い慣れた MacPorts を利用するのがいいだろうと考えて、試行錯誤しながら動かしてみた。以下、その備忘録である。
まず PostgreSQL をインストールしなければならない。現在の MacPorts では、postgresql?? と postgresql??-server という2つの ports がある。postgresql?? がPostgreSQL本体、postgresql??-server はサーバプロセスを launchd から立ち上げるための設定ファイルなどのための ports である。今回は手元でサーバプロセスを立ち上げる必要があるので、両方の ports をインストールする必要がある。
sudo port install postgresql83 +perlsudo port install postgresql83-server
最新版でないのは、実際にインストールしたのが PostgreSQL 8.4 がリリースされる前であったためである。またPerlを利用するため、variant +perl を指定した。
次にデータベースの初期構築を行わなければならない。postgresql?? のportsのインストールの際に、何をするべきかメッセージが表示されるのだが、一瞬で流れていくため、見落としがちである。というわけで、/opt/local/var/macports/sources/rsync.macports.org/release/ports/ にある Portfile を見て、やるべきことを確認した。
sudo mkdir -p /opt/local/var/db/postgresql83/defaultdbsudo chown postgres:postgres /opt/local/var/db/postgresql83sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb'
ポイントは、PostgreSQLのコマンド群は /opt/local/lib/postgres??/bin にインストールされること、owner postgres で initdb を実行するために sudo から su コマンドを呼び出すこと、あたりだろう。sudo su postgres -c '...' という技は、PostgreSQL をコマンドラインから操作するときに常に使うことになる。
最後にサーバプロセスの起動である。今回は開発時のみプロセスが動いていればいいので、必要に応じて launchd 経由でサーバを立ち上げることにした。
sudo launchctl -F load /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/org.macports.postgresql83-server.plistsudo launchctl start org.macports.postgresql83-server




0 comments:
コメントを投稿