====== FreeBSD 11-STABLEを11.1-RELEASEに変更する ======
FreeBSD 11.1-RELEASEのリリースも近くなってきたので、[[blog/2016/2016-11-14|VirtualBox絡みで止む無くSTABLEにしていた]]システムをRELEASEブランチに戻す。2017-07-18現在、releng/11.1ブランチは11.1-RELEASEではなく11.1-RC2であるが、STABLE→RELEASEへの変更で''freebsd-update''が再度使えるようになるかの確認もしておきたいので、今のうちに11.1-RELEASEブランチにシステムを戻しておくって魂胆なのだ。
大まかな手順としては、''/usr/src''をRELEASEブランチにスイッチし、いつも通りシステムを再構築するだけ。
===== RELEASEブランチにスイッチする =====
念のため、現在の/usr/srcの状態を確認。
$ cd /usr/src
$ svn info
パス: .
Working Copy Root Path: /usr/src
URL: https://svn.freebsd.org/base/stable/11
Relative URL: ^/stable/11
リポジトリのルート: https://svn.freebsd.org/base
リポジトリ UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
リビジョン: 320258
ノード種別: ディレクトリ
準備中の処理: 特になし
最終変更者: gjb
最終変更リビジョン: 320251
最終変更日時: 2017-06-23 09:00:00 +0900 (2017/06/23 (金))
URLからstable/11ブランチであることが確認できる。
こいつをreleng/11.1ブランチにスイッチする。
# svn switch https://svn.freebsd.org/base/releng/11.1/
U etc/ntp/leap-seconds
U lib/libsysdecode/mktables
(中略)
U share/mk/bsd.own.mk
U share/mk/src.libnames.mk
U .
リビジョン 320579 に更新しました。
===== システムの再構築 =====
ソースのスイッチができたら、後はいつもの手順でシステムを再構築する。
==== 以前のオブジェクトファイルを削除 ====
# chflags -R noschg /usr/obj/*
# rm -rf /usr/obj
==== ユーザーランドのビルド ====
# make buildworld -j 16
==== カーネルのビルド ====
# make buildkernel -j 16
==== ビルドしたカーネルのインストール ====
make installkernel
==== ユーザーランドのインストール&設定のマージ ====
シングルユーザーモードに落ちる。
# shutdown now
ストレージを書き込み可能な状態で再マウント
# zfs set readonly=off zroot
# zfs mount -a
必要なら''kbdmap''する。
必要なら''adjkerntz -i''する。
設定ファイルをマージ
# mergemaster -UPiF
ユーザーランドをインストール
# cd /usr/src
# make installworld
残りの設定ファイルをマージ
# mergemaster -p
不要になった古いファイルを削除
# make delete-old
===== 再起動して環境を確認 =====
再起動する。
# reboot
上手く起動したら、一応システムのバージョンを確認する。
$ freebsd-version -uk
11.1-RC2
11.1-RC2
バージョン表記はRC2になっているが、今回の作業は11.1-RELEASEがリリースされる前に行ったため、これで正常。