ただのメモです。
普通にインストールするだけでめんどくさいってどういうことやねんと思わないでもないですが、現実は現実なのでメモ。
要約
port install
して言う通りにすればだいたい進むけど、port select
とlaunchctl
には気をつけよう
環境
- Mac OS X 10.7.5
- MacPorts 2.2.0
- PostgreSQL 9.3.0
多分少々バージョン前後しても同じような感じじゃないかな。
手順
port install系
とりあえずクライアント入れる
$ sudo port install postgresql93
多分入る。
サーバー入れる
$ sudo port install postgesql93-server ---> Computing dependencies for postgresql93-server ---> Fetching archive for postgresql93-server ---> Attempting to fetch postgresql93-server-9.3.0_0.darwin_11.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/postgresql93-server ---> Attempting to fetch postgresql93-server-9.3.0_0.darwin_11.x86_64.tbz2.rmd160 from http://jog.id.packages.macports.org/macports/packages/postgresql93-server ---> Installing postgresql93-server @9.3.0_0 ---> Activating postgresql93-server @9.3.0_0 To create a database instance, after install do sudo mkdir -p /opt/local/var/db/postgresql93/defaultdb sudo chown postgres:postgres /opt/local/var/db/postgresql93/defaultdb sudo su postgres -c '/opt/local/lib/postgresql93/bin/initdb -D /opt/local/var/db/postgresql93/defaultdb' ---> Cleaning postgresql93-server
とりあえず入る。なんかごちゃごちゃ言われたのは次の節でやります
この時点ではまだpsql
のパスが通っていない。
$ which psql /usr/bin/psql
ここで焦って$PATH
に/opt/local/lib/postgresql93/bin/
を追加するのは良くない。
MacPortsでは、このテのhogeXX
ってバージョン分かれてるportは大概port select hoge hogeXX
して特定のバージョンを選ばないとパスが通らない。
たとえばrubyとかmysqlとかpythonとかもそんな感じ。
なのでport select
する。
$ port select postgresql Available versions for postgresql: none (active) postgresql93 $ sudo port select postgresql postgresql93 Selecting 'postgresql93' for 'postgresql' succeeded. 'postgresql93' is now active. $ port select postgresql Available versions for postgresql: none postgresql93 (active)
これでpsql
のパスが通った。
$ which psql /opt/local/bin/psql
dbのセットアップ
port install postgresql93-server
した時に言われたコマンドを実行することで、デフォルトのdbをセットアップする。
$ sudo mkdir -p /opt/local/var/db/postgresql93/defaultdb $ sudo chown postgres:postgres /opt/local/var/db/postgresql93/defaultdb $ sudo su postgres -c '/opt/local/lib/postgresql93/bin/initdb -D /opt/local/var/db/postgresql93/defaultdb' (中略) WARNING: enabling "trust" authentication for local connections You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. Success. You can now start the database server using: /opt/local/lib/postgresql93/bin/postgres -D /opt/local/var/db/postgresql93/defaultdb or /opt/local/lib/postgresql93/bin/pg_ctl -D /opt/local/var/db/postgresql93/defaultdb -l logfile start
これでセットアップできた。
ローカルからの認証は素通しだから注意してね(要約)みたいな警告がなされている。 対応するドキュメントはこの辺。
http://www.postgresql.jp/document/9.2/html/auth-methods.html#AUTH-TRUST
サーバを立ち上げる
さっきのdbセットアップの時に立ち上げる方法が二つ提示されているけど、Macらしくlaunchctl
を使うこともできるのでそっちを使う。
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql93-server.plist $ sudo launchctl start org.macports.postgresql93-server
launchctl
使いたくなければさっきのpg_ctl
とかpostgres
使った起動をすればいいと思うけど、敢えて避けるほどの事情はないんじゃないかなと思います。あったら誰か教えてください。
一応触れておくと、サーバを止めるときは
$ sudo launchctl stop org.macports.postgresql93-server
確認する
$ psql -U postgres psql (9.3.0) Type "help" for help. postgres=# \q
めでたしめでたし。
あとはcreateuser
とかcreatedb
とかして快適なポスグレライフを送ろう。
雑感
デフォルトdbのセットアップはport install postgresql93-server
の段階でやってくれてもいい気がする。
あと、昔はport install
時にlaunchctl
について説明があったっぽいんだけど(参考)、最近はないっぽい。
詳しく調べてないからわかんないけど、これはMacPortsの側の事情のような気がする。