portsdb による INDEX の取得と INDEX.db の再構築

 あちこちで皆さん書いているのでご存知の方が多いと思いますが、自分(+ 周囲の人)用にメモ。

        • -

FreeBSDports ツリーから INDEX(5.x の場合は INDEX-5)ファイルが削除されてしまったため、cvsup で ports ツリーを更新した後に

# portsdb -Uu

していたのですが、非力なマシンでこれをやると非常に辛いです... で、sysutils/portupgrade の commit log に従って

# cd /usr/ports
# make fetchindex
# portsdb -u

してました。が、上記 URL にも記載があるように、

# portsdb -Fu

と -F オプションを付けると INDEX(-5) の取得をしてくれるオプションが portsdb に追加されました。よって

  1. cvsup して ports ツリーを更新
  2. INDEX(-5) と INDEX(-5).db を更新

すれば良いわけです*1。あとは portversion -v | grep -v "="

% portversion -vL=

するなどして適切に ports/packages を更新しましょう。

*1:fetch するのに外部サーバへ接続するため、ACL が適切に設定されていないといけません