文書の表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== FreeBSD 11-RELEASEをSTABLEに変更する ====== 手順としては''/usr/src''以下をSTABLEのソースに変更し、通常の方法でworldを再構築するだけ。 ===== 試した環境 ===== * FreeBSD 11.0-RELEASE * Root on ZFSで構築 ===== 手順 ===== 必要なことは全て[[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/makeworld.html|FreeBSDハンドブック]]に書いてあるので、そちらを熟読した上で作業すること。 元からあるRLEASEのソースを退避。 <code bash> # mv /usr/src /usr/src-RELEASE </code> ちなみに、うちの環境では/usr/srcがZFSの1ファイルシステムになっているので、上記方法は使えず。なのでsnapshotを撮って中身を消した。 <code bash> # zfs snapshot zroot/ROOT/usr/src@11-RELEASE_20161111 # rm -rf /usr/src/ </code> STABLEのソースをチェックアウトする。 実際に接続されるリポジトリはDNSでラウンドロビンされるようなので、URLは''svn.freebsed.org''を指定しとけばいい模様。(昔、どこかで「日本からだと米国東海岸に接続されてしまうので明示的に西海岸のサーバを指定する」と読んだ記憶があるような無いような…。) <code bash> # svn co https://svn.freebsd.org/base/stable/11 /usr/src A sys A sys/dev A sys/dev/cpuctl ... リビジョン 308494 をチェックアウトしました。 </code> 以前のオブジェクトファイルを削除。 <code bash> # chflags -R noschg /usr/obj/* # rm -rf /usr/obj </code> ユーザーランドのビルド。 <code bash> # cd /usr/src # sudo make buildworld -j 16 ... -------------------------------------------------------------- >>> World build completed on Fri Nov 11 13:38:23 JST 2016 -------------------------------------------------------------- </code> カーネルのビルド。 <code bash> sudo make buildkernel -j 16 ... -------------------------------------------------------------- >>> Kernel build for GENERIC completed on Fri Nov 11 13:54:34 JST 2016 -------------------------------------------------------------- </code> ビルドしたカーネルのインストール。 <code bash> # make installkernel </code> シングルユーザーモードに移行。 今回知ったんだけど、オプションなしで''shutdown''コマンドを呼ぶとシングルユーザーモードに移行できるのね。 <code bash> # shutdown now </code> こんな感じでつらつらとプロセスが終了し、シングルユーザーモードになる。これは便利だー。 {{ :freebsd:shutdown_to_single_user_mode.png?320 |}} システムが入っているストレージ書き込みできるようにする。''zroot''の部分は適宜読み替えの事。 <code> # zfs set readonly=off zroot # zfs mount -a <code> 必要なら''kbdmap''する。 必要なら''adjkerntz -i''する。 設定ファイルのマージ。 <code> # mergemaster -UPiF </code> ユーザーランドをインストール。 <code> # cd /usr/src # make installworld </code> 残りの設定ファイルをマージ。 <code> # mergemaster -p </code> 不要になった古いファイルを削除 <code> # make delete-old </code> 再起動して晴れてSTABLE環境へ <code> # reboot ... Last login: Mon Nov 14 00:54:22 2016 from :1 FreeBSD 11.0-STABLE (GENERIC) #0 r308494: Fri Nov 11 13:54:01 JST 2016 Welcome to FreeBSD! ... </code> その後、通常のworld構築ではここでportsやpackagesの更新と古いライブラリの削除を行うが、同一リリース内でのブランチ変更なので省略。 ===== 参考サイト ===== * FreeBSD ハンドブック * [[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/current-stable.html|17.4. 開発ブランチを追いかける]] * [[https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/makeworld.html|17.6. world の再構築]] * [[https://raymii.org/s/blog/FreeBSD_10_Converting_from_RELEASE_to_STABLE.html|FreeBSD 10, Converting from RELEASE to STABLE - Raymii.org]] * [[http://murasaki.cocolog-nifty.com/cloud/2009/11/post-d25f.html|シングルユーザモードの忘備録: むらさきのくも]] freebsd/freebsd_11_converting_from_release_to_stable.txt 最終更新: 2016-11-17 21:27by Decomo