Raspberry Pi 上での FreeBSD バイナリパッチ適用手順です。
FreeBSD 13 から 64-bit ARMv8 (aarch64) が Tier 1 Architecture となりましたため、freebsd-update コマンドでバイナリバッチの適用を行うことが可能となります。
FreeBSD Security Advisories ならびに FreeBSD Errata Notices ページからバイナリパッチのリリース有無を確認します。
バイナリパッチ適用前の OS リリースレベルとバージョンを確認します。
root@generic# uname -r
13.0-RELEASE
root@generic# freebsd-version -k
13.0-RELEASE
root@generic# freebsd-version -u
13.0-RELEASE
本稿では freebsd-update の設定は全てデフォルトを使用することとします。
以下は /etc/freebsd-update.conf の設定内容となります。
KeyPrint 800651ef4b4c71c27e60786d7b487188970f4b4169cc055784e21eb71d410cc5
ServerName update.FreeBSD.org
Components src world kernel
IgnorePaths
IDSIgnorePaths /usr/share/man/cat
IDSIgnorePaths /usr/share/man/whatis
IDSIgnorePaths /var/db/locate.database
IDSIgnorePaths /var/log
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
MergeChanges /etc/ /boot/device.hints
# WorkDir /var/db/freebsd-update
# MailTo root
# AllowAdd yes
# AllowDelete yes
# KeepModifiedMetadata yes
# StrictComponents no
# BackupKernel yes
# BackupKernelDir /boot/kernel.old
# BackupKernelSymbolFiles no
ファイルを取得します。
freebsd-update fetch コマンド実行後に表示されるメッセージは PAGER に渡されるため、末尾の『(END)』の表示には『q』を押下して PAGER を終了します。
root@generic# freebsd-update fetch
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching public key from update1.freebsd.org... done.
Fetching metadata signature for 13.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 13 patches.....10. done.
Applying patches... done.
Fetching 3 files... . done.
The following files will be updated as part of updating to
13.0-RELEASE-p2:
/bin/freebsd-version
/boot/kernel/ipdivert.ko
/boot/kernel/kernel
/boot/kernel/kernel.bin
/boot/kernel/mpt.ko
/boot/kernel/virtio_pci.ko
/usr/bin/bc
/usr/bin/dc
/usr/lib/debug/boot/kernel/ipdivert.ko.debug
/usr/lib/debug/boot/kernel/kernel.debug
/usr/lib/debug/boot/kernel/mpt.ko.debug
/usr/lib/debug/boot/kernel/virtio_pci.ko.debug
/usr/lib/debug/usr/bin/bc.debug
/usr/lib/debug/usr/lib/libradius.so.4.debug
/usr/lib/libradius.a
/usr/lib/libradius.so.4
/usr/lib/libradius_p.a
(END)
取得したファイルをインストールします。
root@generic# freebsd-update install
src component not installed, skipped
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
done.
バイナリパッチの適用に因る再起動の要否を確認します。
OS リリースレベルとカーネルバージョンが異なる場合は再起動が必要となります。
root@generic# uname -r
13.0-RELEASE
root@generic# freebsd-version -k
13.0-RELEASE-p1
FreeBSD を再起動します。
root@generic# shutdown -r now
バイナリパッチ適用後の OS リリースレベルとバージョンを確認します。
※本稿の例ではカーネルが Patch Level 1 に、ユーザランドが Patch Level 2 にバージョンがアップデートされています。
root@generic# uname -r
13.0-RELEASE-p1
root@generic# freebsd-version -k
13.0-RELEASE-p1
root@generic# freebsd-version -u
13.0-RELEASE-p2