NetBSDをダウングレードする
開発機のOSをNetBSD-8.99.1からNetBSD-7.1へダウングレードした.
ソースツリーのダウンロードまたは更新
僕のシステムでは,安定版(Stable)のソースツリーと不安定版(Current)のソースツリーを分けて管理している.今回はcurrentからstableへダウングレードするためtarballのダウンロードはしない.
Xを使っている場合はXのソースツリーも同様におこなう.
ソースツリーのビルド
# ./build.sh -U -O ../obj -T ../tools -x -X ../xsrc tools
# ./build.sh -U -O ../obj -T ../tools -x -X ../xsrc distribution
# ./build.sh -U -O ../obj -T ../tools -x -X ../xsrc kernel=GENERIC
アップグレードと同じようにビルドする.
ユーザランドとカーネルのダウングレード
カーネルを入れ替える.
# cp /netbsd /netbsd-8.99.1
# cp /usr/obj/sys/arch/amd64/GENERIC/netbsd /
ユーザランドも入れ替える.
# ./build.sh -U -O ../obj -T ../tools -x -X ../xsrc install=/
再起動する.
# reboot
サードパーティ製ソフトウェアのダウングレード
/usr/pkg 以下のバイナリはほとんどダメになっているので全部削除した.
# ls /var/db/pkg | grep -v pkgdb.byfile.db | grep -v local.sqlite | xargs pkg_delete -f -F -r -R
ダウングレード先のバイナリを使い続けているなら話は別だが,全部リセットしてしまったほうが楽.必要なソフトウェアをすべて入れ直す.
こういうときのために独自のメタパッケージを作っておいたほうがよいのかもしれない.
まとめ
おおよそはアップグレードのときと同じだが,pkgsrcからインストールしたソフトウェアはすべて再インストールする必要がある.クリーンインストールしたほうが早いような気もするが,ホームディレクトリに残ったconfig類を使いまわせるという意味では便利.