====== FreeBSD 11.2-RELEASEをFreeBSD 12.0-RELEASEに更新 ====== 遅ればせながら家鯖をFreeBSD 11.2-RELEASEから12.0-RELEASEへと更新した。 まずは現在の環境を最新にしておく(あまりに古いとメジャーバージョンアップに失敗することがあるため) $ freebsd-version -ku 11.2-RELEASE-p7 11.2-RELEASE-p7 # freebsd-update fetch # freebsd-update install # reboot ここで、ブートローダまでは起動するがカーネル読み込みでブラックスクリーンになる謎現象に2日ほど悩まされた。結局BIOS設定をデフォルト状態に戻したら直ったが、原因は恐らくデュアルCPUからシングルCPUに変えた事と思われる。うちの鯖は無駄にデュアルCPUだったので(ドヤァ 最新になったか確認。 $ freebsd-version -uk 11.2-RELEASE-p10 11.2-RELEASE-p10 12.0-RELEASEへ更新する。 # freebsd-update -r 12.0-RELEASE upgrade Looking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching metadata signature for 11.2-RELEASE from update2.freebsd.org... done. (略) To install the downloaded upgrades, run "/usr/sbin/freebsd-update install". システムのインストール # freebsd-update install Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. 「再起動して再度''freebsd-update install''せよ」とのことだが、ここで必ずサードパーティのkext(vboxdrvとか)を一旦無効化する。さもないと、再起動後のカーネル読み込みでクラッシュする場合がある。 # emacs /boot/loader.conf hogehoge_load="YES"の行をコメントアウトするで~ 再起動 # reboot システムのバージョンを確認してみる。システムは更新され、ユーザーランドは古いままという事が分かる。 $ freebsd-version -ku 12.0-RELEASE-p4 11.2-RELEASE-p10 ユーザーランドを更新。procの所有権を変えようとしてエラーが出てるけど、まぁ気にしない。 # freebsd-update install Installing updates...install: chown 0:0 ///proc: Operation not supported install: chmod 555 ///proc: Operation not supported Completing this upgrade requires removing old shared object files. Please rebuild all installed 3rd party software (e.g., programs installed from the ports tree) and then run "/usr/sbin/freebsd-update install" again to finish installing updates. 再度システムのバージョンを確認。ユーザーランドが更新されていることが分かる。 $ freebsd-version -uk 12.0-RELEASE-p4 12.0-RELEASE-p5 ここまで来たら、''pkg-static upgrade -f''でインストール済みpackagesをすべて更新するのが正しいお作法。 なんだけれども、自分はportsでビルドしていく派なのでpkgだけ更新して、残りはちまちまportmasterする。 # pkg-static install -f pkg pkg-static: Warning: Major OS version upgrade detected. Running "pkg-static install -f pkg" recommended Updating FreeBSD repository catalogue... pkg-static: Repository FreeBSD has a wrong packagesite, need to re-create database Fetching meta.txz: 100% 944 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 1.7MB/s 00:04 Processing entries: 100% FreeBSD repository update completed. 31778 packages processed. All repositories are up to date. The following 1 package(s) will be affected (of 0 checked): Installed packages to be REINSTALLED: pkg-1.10.5_5 (ABI changed: 'freebsd:11:x86:64' -> 'freebsd:12:x86:64') Number of packages to be reinstalled: 1 3 MiB to be downloaded. Proceed with this action? [y/N]: y [1/1] Fetching pkg-1.10.5_5.txz: 100% 3 MiB 1.7MB/s 00:02 Checking integrity... done (0 conflicting) [1/1] Reinstalling pkg-1.10.5_5... [1/1] Extracting pkg-1.10.5_5: 100% ldconfig: /usr/lib: ignoring directory not owned by root んん~?''/usr/lib''のオーナーがrootじゃないだとー? $ ls -al /usr total 177 drwxr-xr-x 18 6151 wheel 17 11月 23 2018 . drwxr-xr-x 25 root wheel 34 5月 29 01:20 .. dr-xr-xr-x+ 3 root wheel 3 10月 19 2011 .zfs drwxr-xr-x 2 6151 wheel 515 5月 29 00:39 bin drwxr-xr-x 2 root wheel 5 1月 29 2017 freebsd-dist drwxr-xr-x 16 root wheel 15 10月 22 2018 home drwxr-xr-x 58 6151 wheel 344 5月 29 00:33 include drwxr-xr-x 12 6151 wheel 710 5月 29 00:49 lib drwxr-xr-x 5 root wheel 720 5月 29 00:39 lib32 drwxr-xr-x 5 root wheel 5 5月 29 00:49 libdata drwxr-xr-x 9 root wheel 68 5月 29 00:39 libexec drwxr-xr-x 19 root wheel 19 11月 15 2018 local drwxr-xr-x 3 root wheel 3 7月 13 2017 obj drwxr-xr-x 72 root wheel 92 5月 29 07:49 ports drwxr-xr-x 2 root wheel 305 5月 29 00:39 sbin drwxr-xr-x 30 6151 wheel 30 5月 29 00:49 share drwxr-xr-x 26 root wheel 40 5月 29 00:34 src drwxr-xr-x 15 root wheel 18 7月 13 2017 tests 6151って誰だよ…。最早FreeBSD更新とは無関係になってきたので、続きは別記事で。