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類を使いまわせるという意味では便利.