OpenBSD 3.6がリリースされた。 †3.5 ->3.6 移行手順の概要 †詳細を書いているときりがないので、ざっくりと。
OpenBSD 3.7がリリースされた †今回はgccがバージョンアップしてたりして面倒臭いので、バイナリアップグレードした。http://www.openbsd.org/faq/upgrade37.html を参照のこと。
OpenBSD 3.8がリリースされた。 †通常のアップグレード作業と大きく変わっているところはないようだ。 _hostapdのUID/GIDを追加するくらいか。 参考までに、3.7 -> 3.8で削除したファイルの一覧。 OpenBSD 3.9がリリースされた。 †仕事が忙しい+LiveCDの製作にかまけてた所為でまだ完全にアップグレード終ってないんだけど、とりあえず書いてみる。 今回は、自作した OpenBSD 3.9 LiveCD の内容を使ってやってみた。 正規の方法とはちょっと違っていて、まぁかなりの変化球だけど、以下手順; 既存のports/packagesを消す。 # pkg_delete -q /var/db/pkg/* 3.9のリリースパッケージで上書き # cd / # for tgz in /root/dist/!(etc)39.tgz ... 「etc39.tgz以外」を展開する # do # tar xvzpf $tgz # done これにさらにLive CDの中身を上書きする。 # vnconfig svnd0 CD-OpenBSD-3.9.iso # mount /dev/svnd0 /mnt # cd /mnt # pax -rwvpe usr / ... /usr以下をLiveCDの中身で上書き # cd /mnt/var/db # pax -rwvpe pkg /var/db ... /var/db/pkg 以下をLiveCDの中身で上書き これで、LiveCDに収録されている追加アプリも使用可能になった。 あとは、
などがあるが、従来通りなので省略。 Tips †/etc, /dev対策 †Upgrade Mini-FAQとか見ると/etcの変更は「手でやれ」って書いてある。 その対策としては、portsにあるmergemasterというツールを使うのが 定番なようだが、私は以下のような方法でやっている。
古いshlib対策 †Upgrade後に、以前使ってた共有ライブラリが残っていて、
消していいものかどうか悩むことがある。
不要なファイルを検出する。 †アップグレードを重ねると、不要なファイルができてゆく。 前述の共有ライブラリの問題もそうだが、他にも例えばPerlのバージョンが あがってたりすると、*.phが古いのが残ったままになってたり。 そういうのを検出するMakefileファイル; VER = 37 TARBALLS = \ /root/dist/base$(VER).tgz \ /root/dist/comp$(VER).tgz \ /root/dist/game$(VER).tgz \ /root/dist/man$(VER).tgz \ /root/dist/misc$(VER).tgz all: removable_candidates removable_candidates: tarfiles realfiles comm -23 realfiles tarfiles > removable_candidates tarfiles: $(TARBALLS) for tgz in $(TARBALLS) ;\ do \ echo Extracting $$tgz ... >&2 ;\ tar tvzf $$tgz ;\ done \ | awk '/^-/ { fname = $$9; sub(/^\.\//, "/", fname); print fname }' \ | sort > tarfiles realfiles: find / -type f -print | grep -v -f excepts | sort > realfiles clean: rm -f removable_candidates realfiles tarfiles *~ *.bak *.BAK Makefileなので、もちろん行頭の空白はスペースではなくTABなのでコピペして使用の際は注意。 あと、excepts ファイルというのをMakefileと同じディレクトリ上に作っておく。これは検索の対象からはずすディレクトリやファイルを記述する。以下のように; ^/\.cshrc ^/\.profile ^/boot ^/bsd ^/bsd\.rd ^/etc/ ^/home/ ^/kern/ ^/obsd ^/proc/ ^/root/ ^/usr/local/ ^/usr/obj/ ^/usr/ports/ ^/usr/src/ ^/var/backups/ ^/var/cron/ ^/var/db/ ^/var/empty/etc/localtime ^/var/log/ ^/var/mail/ ^/var/named/ ^/var/run/ ^/var/www/conf/ ^/var/www/htdocs/ ^/var/www/logs/ MakefileのTARBALLSで指定した位置に、インストールに使用したインストールパッケージを用意し、make allで実行。結果はremovable_candidates(削除可能な候補)というファイルに出力される。 やってることは単純で、インストールパッケージに含まれていないが実際に存在する通常ファイルで、exceptファイルに記述されたものを除いたものの一覧を表示しているだけ。 なので、もちろん自分で作成したファイルや、独自にインストールしたソフトなどは(exceptファイルで記述していない限り)必要であってもリストアップされるので注意。逆に、不必要であっても、exceptリストに該当するファイルはリストアップされない。消し忘れてるファイルの検出用くらいに考えておいた方がいいかもしれない。 wc -c `cat removable_candidates` とかやって、ファイルサイズの総量が大したことなければ放置しててもいいかも。 FrontPage? |