遅ればせながら家鯖を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へ更新する。 </code> # 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”. </code>
システムのインストール
# 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更新とは無関係になってきたので、続きは別記事で。