2008-08-25 - 04:36
PostgreSQLのebuild類が少し前から新しくなってる。まだ~maskがかかってるけど十分使える感じ。
複数のバージョンを同時に入れられるようになってるのが一番大きそう(Gentoo的に言うとSLOT化)。遊んだりテストしたりするときには複数入るのはなかなか嬉しい。
元メンテナとしては一安心。やめる前後で、一時期放置気味だったので多少責任を感じていたのだ。自分がやってたころよりもいいものになった。やめてよかた。
stableになるまでに仕様はかわるかもしれないけど、現在のところ、今までのPostgreSQL ebuild (dev-db/postgresqlとdev-db/libpq)とは互換性ないっぽい。
新しいebuildは、
dev-db/postgresql-base
dev-db/postgresql-server
になる。
それぞれバージョンを持っているので、8.2系列と8.3系列を同時に入れたい場合には、
# emerge =dev-db/postgresql-server-8.2* =dev-db/postgresql-server-8.3*
とかでよさそう。(現在の時点では8.2.9と8.3.3が入る)
既存のebuildを使ってる場合にはconflictして入らないようになってるので、古い方はunmergeしておくのがよい。
/etc/init.d/postgresqlと/etc/conf.d/postgresqlは使用されなくなるが、/etc以下は自動でunmergeされないので、手動で削除または移動しておくと混乱がなくてよさそう。
各種ファイルは、
/etc/init.d/postgresql-8.2
/etc/init.d/postgresql-8.3
/etc/conf.d/postgresql-8.2
/etc/conf.d/postgresql-8.3
データベース自体はデフォルトでは、
/var/lib/postgresql/8.2
/var/lib/postgresql/8.3
に入る。
複数バージョンを同時に動かしたい場合には、portを変えればOK。
data/postgresql.confをいじるか、/etc/conf.d/postgresql-8.Xで、
PGOPTS="-i -p 5433"
とか。
psqlとかのclient コマンドは、
# postgresql-config set 8.X
で切り替えられる。
よくできてると思う。
2008-08-23 - 06:25
subversionのレポジトリを別マシンとかに移行して、なんかUUIDが変わってしまった場合、1.4系列のclientだと無視してくれるんだけど、1.5系列だと、
svn: Repository UUID 'XXXXXXXXXXXXXXXXXXXXXX' doesn't match expected UUID 'YYYYYYYYYYYYYYYYYYYYY'
みたいなエラーが出てsvn updateとかさせてくれなくなる。manとか、svnのソースを見てみても回避するようなオプションはないみたいなんで、基本的にはcheck outし直すしかないみたい。
だるかったので(ネットワーク細くてcheck outするの時間かかりすぎる)、
find . -name 'entries' |xargs sed -i 's/^YYYYYYYYYYYYYYYYYYYYY$//'
とかして、古いUUIDを.svn/entriesから消したら、なんか直った。どっか壊れたかもしれないけど!
(次回svn update時に正しいUUIDがセットされてるので多分大丈夫)
なんでUUIDが変わってしまったのかは、自分が移行したわけじゃないからわからない。
今手元で試したところ、1.4でも1.5でもsvnadminのdump/loadでUUID保持されるなあ。おかしい。
やった人に後で聞いてみよう・・
2008-08-23 - 05:53
基本的に、emerge app-emulation/open-vm-tools すればOK。
suspend: /etc/vmware-tools/suspend-vm-default
resume: /etc/vmware-tools/resume-vm-default
が自動的に呼ばれるようになる。
一つ困ったことがあって、初期状態だとsuspend時にnetworkが停止されてしまい、その際に依存するもの(sshとかapacheとか)も全部
停止してしまっていた。resumeでnetworkは再起動されるようになっているのだけど、依存するものは再起動してくれない。
手で上げ直せばいいんだけど、めんどくさいから対応した。
最初、resume時に全部立ち上げ直せばいいのかと思ったけど、簡単にやる方法が思いつかなかったので、suspend時にnetworkだけを落とすように上記 suspend-vm-default の、
"$network" stop
を
"$network" -D stop
に変更した。
-Dつけると依存するものはstopしなくなる。man runscript 参照。