我根据 FreeBSD 手册 ( http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails-application.html ) 在 FreeBSD 8.0 中设置了“服务监狱”。在将主机升级到最新的补丁级别并执行 jail-upgrade 之后,freebsd-fetch 仍然报告在 jail 中有需要更新的文件。这是预期的吗?那我怎么知道监狱是否是最新的?
这是我所做的更详细的:
在监狱的初始设置后freebsd-update fetch
报告主机系统和监狱中都没有可用的更新。这是意料之中的。一段时间后freebsd-update fetch
报告说,以下文件在主机和监狱中都需要更新。
- /usr/lib/libssl.a
- /usr/lib/libssl_p.a
- /usr/lib/libzpool.a
- /usr/lib32/libssl.a
- /usr/lib32/libssl_p.a
- /usr/lib32/libzpool.a
我更新了主机并遵循了监狱的升级指南(http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails-application.html#JAILS-SERVICE-JAILS-UPGRADING)。freebsd-update fetch
现在报告主机中没有可用的更新,但以下是freebsd-update fetch
监狱中的输出:
[root@bb /]# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update5.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
The following files are affected by updates, but no changes have
been downloaded because the files have been modified locally:
/var/db/mergemaster.mtree
The following files will be updated as part of updating to 8.0-RELEASE-p2:
/usr/lib/libssl.a
/usr/lib/libssl_p.a
/usr/lib/libzpool.a
/usr/lib32/libssl.a
/usr/lib32/libssl_p.a
/usr/lib32/libzpool.a
freebsd-update 不应该知道监狱是最新的还是我升级失败了?如果 freebsd-update 无法判断,我应该如何知道监狱是否是最新的?
我确定我make cleandir
之前跑过两次make buildworld
。
TIA
手册的该部分没有提及
freebsd-update
,但我对工作原理的理解freebsd-update
意味着您的步骤并不完全正确。特别是,我认为不会freebsd-update
触及您的源目录,因此您正在构建/安装您拥有的任何内容/usr/src
(如果您没有运行 cvsup,可能是 -RELEASE 源)。您可能想像
freebsd-update
在主机上一样在监狱中运行并让它做它的事情(或 cvsup 到一个固定的源分支,然后根据您引用的手册章节构建/安装)。警告:我实际上并没有使用 freebsd-update。cperciva@(该工具的作者)虽然在 freebsd-questions 列表上收听,但列表中的某个人也应该能够告诉你我上面的逻辑是对还是错:)
不是答案,只是建议:
使用ezjail (
/usr/ports/sysutils/ezjail
) 管理您的监狱