locally broken ports2006年03月29日 10時18分52秒

前々から、薄々気がついていたが freesbie を使っていて気がついた。一部の ports が壊れていることを。今までは、pkg_delete や ports で make deinstall をすると、md5sum が合わないなどと言われるファイルがあったが、取り合えず何もしないことにしていた。

ports を消すときにしか見なかったので、どうすれば効率よく、または確実に壊れている ports を探す方法が判らなかったのだ。

しかし、今回の freesbie で、pkg_create をするときにも同じエラーが出ることに気がついた。


# pkg_create -v -b /var/db/pkg/boehm-gc-6.6_2 boem-gc-6.6_2.tgz
Creating package boehm-gc-6.6_2.tgz
Creating gzip'd tar ball in '/mnt/tmp/pkg/boehm-gc-6.6_2.tgz'
tar: share/doc/gc/simple_example.html: Cannot stat: No such file or directory
pkg_create: make_dist: tar command failed with code 256

ということなら、話は簡単だ。インストールされている全ての ports に対して、pkg_create -b をやればいい。

#!/bin/sh

for i in /var/db/pkg/*;
do
    file=`basename $i`.tgz;
    if [ ! -f $file ]; then
        pkg_create -v -b $i $file 2>&1
        rm -i $file
        clear
    fi
done

で、全部の ports を処理できる。問題のあった ports は削除し、再インストール後に再試行すればよい。-f $file があるのでもう package 済のものは新しく作らないので。

何も考えずにやっていたら、glib のバージョンが上がってしまい、困った。また、restore の羽目に。次回はゆっくり少しずつ直していこうと思う。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/03/29/308165/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。