ruby がどうたらで portsdb に“[BUG] Segmentation fault”ってエラーが起きてから、この問題は結構ほったらかしにしていました。で、今日久しぶりに調べたら、
cd /usr/ports/ make fetchindex
とやればいいということを知りました。“make fetchindex”で、どっかのサーバ*1からINDEXファイルを持ってくるんだそうです。
で、さらに調べてみる、/usr/local/etc/pkgtools.conf ファイルに、
ENV['PORTS_DBDRIVER'] = 'bdb1_hash';
と書けば良いんだそうです。/usr/ports/UPDATING にも、『buggy btree』の代わりに『bdb1_hash』か『dbm_hash』を使えと書いてある。シェルの環境変数として
setenv PORTS_DBDRIVER bdb1_hash
とやれば良いんだろうけどね。まぁこんなのは忘れちゃうし、シェルの設定ファイル(.cshrc)に書くようなことでもないかな?。ちなみに、『ruby18-bdb1』がインストールされていると『bdb1_hash』が、されていないと『dbm_hash』になるようですね。
で、これを実行して、portsdb -Uu をやってみたら
Updating the ports index ... Generating INDEX.tmp - please wait..Warning: Duplicate INDEX entry: mod_jk2-apache2-2.0.2 Warning: Duplicate INDEX entry: mod_rpaf-ap2-0.5
ってのが出てきた。処理自体はまともに終わる。調べてみた結果、どうも心配はないらしいんだけど。
*1:おい、こんな説明で良いのか?