FreeBSD 13 で Jail 環境を freebsd-update する
FreeBSD の各Jail環境(Prisoner)を freebsd-update する方法について。
Symptom
- FreeBSD のルート環境(Jailer)側から各Jail環境(Prisoner)に対して freebsd-update コマンドを実行したい
- FreeBSD 13.1 or FreeBSD 12.3 以降を利用している
Resolution
インターネット上を検索すると、よく freebsd-update コマンドに対して UNAME_r
環境変数と -b (basedir)
オプションを利用する方法が見つかる。しかし FreeBSD 13.1 or FreeBSD 12.3 以降の freebsd-update から、 -j (jail)
と --currently-running (release)
というオプションが実装された。これを利用して安全にJail環境をアップグレードすることができる。
# wb という名前のPrisonerを 13.0-RELEASE から 13.1-RELEASE へアップデートする場合 (jailer)% sudo freebsd-update -j wb \ --currently-running 13.0-RELEASE \ -r 13.1-RELEASE upgrade src component not installed, skipped Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching metadata signature for 13.0-RELEASE from update1.freebsd.org... done. Fetching metadata index... done. Inspecting system... done. : (snip) To install the downloaded upgrades, run "/usr/sbin/freebsd-update install". (jailer)% sudo freebsd-update -j wb install src component not installed, skipped Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. # Prisoner は Kernel のアップデートで再起動する必要はない (jailer)% sudo freebsd-update -j wb install src component not installed, skipped (jailer)% sudo service jail restart wb
同様に pkg コマンドにも -j (jail)
オプションがある。
(jailer)% sudo pkg -j wb update Updating FreeBSD repository catalogue... [wb] Fetching meta.conf: 100% 163 B 0.2kB/s 00:01 [wb] Fetching packagesite.pkg: 100% 6 MiB 6.8MB/s 00:01 Processing entries: 100% FreeBSD repository update completed. 32410 packages processed. All repositories are up to date. (jailer)% sudo pkg -j wb upgrade Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. Checking for upgrades (0 candidates): 100% Processing candidates (0 candidates): 100% Checking integrity... done (0 conflicting) Your packages are up to date.