更新する必要のある ports を取得2007年07月08日 11時38分58秒

新しい ports 保守プログラムのプロトタイプを少しずつ実験している。あまり時間が取れないのが悩みだが、それなりに順調にきている。一週間に十時間ぐらいだろうか。

更新時間を元にした依存関係の解決はやはり make が優れている。特に GNU make が群を抜いている。これを使わない手は無い。また、ports には INDEX ファイルがある。ports の make のターゲットの中には、このファイルが最新であることを条件にしているものもあるので、これに依存するには許容範囲だろう。全ての Makefile を解析してports の make pretty-print-run-depends-list を利用してもいいが、結局 INDEX から取って来る。自分で直接解析した方が速い。

インストール済のものは /var/db/pkg 以下の +CONTENTS から取って来る。書式には幾つかのバージョンがあったようだが、まずは現在の書式が最初だ。

昨日の時点での出力。


# upgrade gail-1.18.0 to gail-1.8.11_1
# upgrade linux-atk-1.2.0_3 to linux-atk-1.9.1
# upgrade linux-esound-0.2.22_4 to linux-esound-0.2.36
# upgrade linux-libaudiofile-0.1.11_5 to linux-libaudiofile-0.2.6_2
# upgrade libsoup-2.2.100 to libsoup-2.2.96
# upgrade sdl-1.2.11,2 to sdl-1.2.9_2,2
# upgrade libidn-0.6.10 to libidn-0.6.3
# upgrade kqemu-kmod-1.3.0.p11 to kqemu-kmod-1.3.0.p9_1
# upgrade linux_base-rh-7.3 to linux_base-rh-7.3_1
# upgrade linux-jpeg-6b.15_4 to linux-jpeg-6b.34
# upgrade linux-png-1.2.7_6 to linux-png-1.2.8_2
# upgrade linux-tiff-3.6.1_3 to linux-tiff-3.7.1
# upgrade ja-acroread-7.0.1_2 to ja-acroread7-7.0.8,1
# upgrade linux-sun-jdk-1.3.1.16 to linux-sun-jdk-1.3.1.18
# upgrade linux-sun-jdk-1.4.2.09 to linux-sun-jdk-1.4.2.12
# upgrade linux-sun-jdk-1.5.0.05,2 to linux-sun-jdk-1.5.0.07,2
# upgrade ruby-reference-1.0_1 to ruby18-reference-1.0_1

ports のバージョンの比較が厄介だが、取り敢えずはうまくいっている。もしかしたら、後で正しく扱えていない形式も出て来るかも知れない。この一覧を生成するのにかかった時間は Mobile Intel(R) Celeron(R) CPU 2.40GHz で十秒ぐらい。

実は現在入っている ports は全て portupgrade で更新済なのだ。portupgrade で HOLD されているものの一覧が出来た。こちらも同等の機能が必要そうだ。

まだ、実験段階で ports を更新するのに必要な作業を煮詰めている段階なので、まだ公開するには至らない。

前回次回