17.7.1. 升级经典 Jail 或使用 OpenZFS 快照的瘦 Jail
Jails 必须从主机操作系统进行更新。FreeBSD 的默认行为是不允许在 jail 中使用 ,这会阻止某些文件的更新,因此从 jail 内部更新将失败。
要将 jail 更新为正在运行的 FreeBSD 版本的最新补丁版本,请在主机上执行以下命令:
# freebsd-update -j classic fetch install
# service jail restart classic
要将 jail 升级到新的主要或次要版本,首先按照 的说明升级主机系统。待主机系统已升级并重新启动,便可以升级 jail。
技巧
在版本之间进行升级时,创建一个新的 jail 比完全升级更容易。
例如,要将版本从 13.1-RELEASE 升级到 13.2-RELEASE,请在主机上执行以下命令:
# freebsd-update -j classic -r 13.2-RELEASE upgrade
# freebsd-update -j classic install
# service jail restart classic
# freebsd-update -j classic install
# service jail restart classic
注意
必须执行两次 install
步骤。第一次升级内核,第二次升级其他组件。
然后,如果是主要版本升级,则需要重新安装所有已安装的软件包并重新启动 jail。这是因为在进行主要版本之间的升级时,ABI 版本会发生变化。
从主机执行以下命令:
# pkg -j jailname upgrade -f
# service jail restart jailname
17.7.2. 使用 NullFS 升级瘦 Jail
由于使用 NullFS 的瘦 Jail 共享大部分系统目录,因此它们非常容易更新。只需要更新模板即可,这样就可以同时更新多个 jail。
要将模板更新为正在运行的 FreeBSD 版本的最新补丁版本,请在主机上执行以下命令:
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ fetch install
# service jail restart
例如,要将版本从 13.1-RELEASE 升级到 13.2-RELEASE,请在主机上执行以下命令:
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ -r 13.2-RELEASE upgrade
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ install
# service jail restart
# freebsd-update -b /usr/local/jails/templates/13.1-RELEASE-base/ install
# service jail restart