どーも 2ch ではガイシュツらしいがちゃんとまとまった解決方法はガイシュツじゃなかった。
まず
- 原因は ruby-bdb1
てのは間違いないらしい。そこでやることは
- /usr/local/etc/pkgtools.conf に ENV['PORTS_DBDRIVER'] = 'dbm_hash' を追加(これは作者本人のコメントによる)
- pkgdb -fu
- portsdb -uU
これで pkgdb および portsdb が bdb ではなく dbm を利用するようになって、結果うまくいく。
ruby-bdb1 は不要になるので削除することになるが、portupgrade が依存していることになっているので pkg_delete -f など少し強引な作業になる。あれなら削除しなくても実際には使っていないので問題ないかも。
しかしまったく突然こんなことになってしまったのだが、想像するに
- (cvsup とかして)何かの ports の持ってる情報が bdb1 か ruby-bdb1 と相性が悪くなり、
- ruby-bdb1 のバグで ruby が core 吐いて死ぬ
という流れのようだ。うちでは先週の cvsup の段階では大丈夫だったのだが、今週の cvsup で地雷を踏んだ模様。しかしこの症状は少なくとも2ヶ月以上前からガイシュツだったらしい。かなり致命的な症状の割にあんまりあちこちで話題になっているように見えないのは自分が不勉強なだけなのか、ひょっとすると cvsup のタイミングによっては放置しても直ったりするのかもしれない。
まったくえらいめにあった。協力してくれた showchan に感謝。いやほんとにありがとう。こういうのは一人だと煮詰まってダメなのです。