====== 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更新とは無関係になってきたので、続きは別記事で。