====== 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がリリースされる前に行ったため、これで正常。