2004-11-28 [長年日記]
_ portupgrade でトラブル
どーも 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 に感謝。いやほんとにありがとう。こういうのは一人だと煮詰まってダメなのです。
[TrackBack URL: http://aligach.net/diary/tb.rb/20041128]
いま2chぼけーってみてたら
@ see /usr/ports/CHANGES
っていわれたので「ああ、そうですね、すみません」とおもって見に行ったら
20041113:
portmgr@FreeBSD.org
Since INDEX version in CVS is always too old, portmgr decided to
remove it. You will still be able to build your own INDEX or use
'fetchindex' target in /usr/ports/.
だって。
たぶんわたなべさんが先週cvsupしたときに、portsツリーと同期がとれてINDEXが消えちゃったと。
で、INDEXが見つけられないportupgrade が INDEX.tmp を作りにいったのかと思いまふ。
で、INDEXを作りにいってる途中に、ruby-bdb1 のバグのせいでruby18がこけるというのが問題の流れじゃないかなとおもいます。
その説明だとすべてのマシンで再現しないといけなくねすか。でも実際にはすべてのマシンでトラブルは起きてないですよ。別なタイミングで cvsup 掛けてる方では全然問題起きないもの。
あー、そうか。
んー、じゃあやっぱ2ヶ月も問題出てこなかったのがなぞー