pkg_delete -f *2007年02月23日 13時05分39秒

どうも、marcusmerge で更新された物 の中に依存関係が正しく記述されていない物があるようだ。そのせいか、正しい動作をしないものがいくつかある。そこで、現在インストールされている ports を全て削除することにした。

ports 用のパーティションは完全分離しているので、ただ単に全てを消すだけならば newfs で速いし十分なのだが、pkg_delete を使うことにした。何年か ports を更新し続けていると、更新に失敗したりした時の残骸が残る事がある。それを調べたかった。pkg_delete を使うことにより、それらが残るからだ。


$ echo /var/db/pkg/* | xargs pkg_delete -f

で削除。500 個の ports が入っているので、 pkg_delete * だと pkg_delete が一度に扱える個数を越えてしまうようだ。-f を付けないとチェックサムが合わないと消してくれないので、忘れないようにする。

pkg_delete に随分と時間が掛かった。終わった後に見ると、驚く無かれ 2.5 GB もファイルが残っている。

調べると、以前にビルドした後に削除していなかった作業ディレクトリが 1 GB 以上を占めていた。それでも、結構残るので不思議に思ってみると、pkg_create -b で取っておいた ports のバックアップが、これまた 1 GB 以上残っていたのだ。

残った数百 MB の残りを見ると teTeX 関連の残骸と思われる物が、かなり大量に残っていた。以前に teTeX を更新しようとした時に、なぜかビルドが失敗して、portupgrade がインストールと、バックアップのリストアを何回も試みているうちに残ったと思われる。teTex は最新にしておく必要もなかったので、それ以上追求していなかった。

暇があって、気が向いたら、迷子の ports ファイルを探してくれるツールでも書こうと思う。