stepupgrade2007年02月05日 09時40分19秒

最近、7.0-CURRENT を本格的に使いだした。最初は、pthread に問題があったので、幾つか普段使うものだけを作り直していた。しかし、ふと、いつもと違うプログラムを起動すると、悲惨な事になる。そこで、ついでなので ports を全体的に更新することにした。

Gnome2 の更新もあるので、大型な更新となる。以前も、 分割更新をしたがこれを手で続けると、不便だ。一度、二度なら我慢できても、三度目は無理だ。仏の顔も三度までとは、よく言ったものだ。

そこで、自動化した。step by step で upgrade をする補助をする stepupgrade-20070204.bz2。portupgrade は一度始めると止められない。間違って止まってしまったら、開始時に更新する予定だった ports のリストを再度作り直せるとは限らない。そこで、更新予定の ports を管理するプログラムを作った。

普段、コンピュータを点けっぱなしにしているわけでもない。そこで、ビルドが終わらずに電源を落としても、次に開始する時に途中から始められるようになっている。現在のところ portupgrade を使うように書かれている。

使い方は、-b でデータディレクトリを指定。/var/db/stepupgrade が初期値になっている。これは、特に変える必要もない。-d で名前をつけて、アップグレードを始める。初期値は CCYYMMDD になっている。-c を使うと、前回にやったところから続きを始められる。-c を与えないと、まず最初に作り直す ports の検査から始める。-- の後に、このために使われるコマンドを渡す。例えば、 -a で全てのインストールされている ports を指定したり、-R seamonkey で seamonkey が依存していて、更新されている ports を全部作り直したりできる。-- の後は、portupgrade に渡されるので、詳しくは man portupgrade をして欲しい。

各 ports の更新は対話的になっている。更新するかどうかを、Yes か No で答えればいい。Ctrl-C で止められる。ただ、portupgrade を変な時に止めると、正常な終了の仕方をしていないのに、0 が返ってくることがあるみたいだ。portupgrade の返り値を見て、成功したかどうかの判定をしているので、少々困る。

現在、stepupgrade -d gnome2 -- -rf pkg-config\* にて、ports の更新中だ。