我使用 FreeBSD 已经有一段时间了。现在我想进一步深入了解 OpenBSD。目前我正在尝试找出保留我的系统的“推荐”方法是什么最新。
在 FreeBSD 上,我们使用命令pkg upgrade
将所有已安装的软件包更新到最新版本。我们使用命令freebsd-update
获取/安装“基本”系统(内核)的最新补丁。所以,我认为pkg upgrade && freebsd-update
我非常安全。
现在:OpenBSD 上的等效过程是什么?我觉得pkg_add -u
OpenBSD 上的功能与 FreeBSD 上的功能几乎相同pkg upgrade
,即它将所有已安装的软件包更新到最新版本。但是等价于 呢freebsd-update
?到目前为止我发现sysupgrade
在 OpenBSD 上,但每次都会出现“404 Not Found”错误。我认为这是 OpenBSD 告诉我的方式,此时,有不我可以升级到的较新版本。很公平!
但是如何获取“基础”系统的安全补丁我当前正在运行的 OpenBSD 版本? OpenBSD 是否存在这样的东西,或者我必须等待新版本?
答案1
你是对的sysupgrade(8)
当没有新版本时回复 404 错误。该工具是将系统升级到下一个版本或最新快照版本时使用的正确工具。使用pkg_add -u
也足以更新所有已安装的软件包(可能随后pkg_delete -a
删除不再需要的软件包)。
安全补丁等是使用安装的syspatch(8)
。您可能希望syspatch -c
作为每日 cron 作业运行,以便在新补丁到达时收到通知。快照系统不使用syspatch
。
也可以看看OpenBSD 常见问题解答,特别是关于安全更新, 和OpenBSD 7.1 勘误表页面。
上述混合物中唯一缺少的成分是包装sysclean
。安装后pkg_add
,您可以使用它来查找系统上不再作为基本系统的一部分分发并且也不再被已安装的软件包使用的文件。
研究手册,了解如何sysclean
忽略您自己对系统的本地添加,并确保不要盲目信任该工具(例如,不要编写根据其输出删除内容的自动化作业)。
答案2
只是对 Kusalananda 的答案做了一个小小的补充:安装 OpenBSD 时,您必须选择是要遵循-stable
还是-current
“快照”[1]。您可以通过从项目镜像中选择适当的安装映像来选择其中之一。
如果您正在关注-stable
,sysupgrade
将把您从一个发布到下一个,例如从 7.0 到 7.1。您可以使用以下方法使其保持最新syspatch
您可以通过安装来被认为足够相关以保证进行更改的补丁-stable
。有时,某些-stable
软件包也可能会更新,这可以通过pkg_add -u
.
如果您正在关注-current
,sysupgrade
将会带您从一个快照转到下一个快照,这些快照的发布时间间隔要短得多。在这种情况下,运行 没有意义syspatch
,因为补丁-stable
已经合并到快照中。软件包在 上更新得更频繁current
,因此您可能需要pkg_add -u
在升级后运行。
由于 OpenBSD 发布流程的工作方式,在新版本发布之前的短时间内,-current
快照将开始带有即将发布的版本的标签(例如,从 更改7.0-current
为7.1
),这使得升级工具认为该-current
系统实际上是一个-stable
一。 pkg_add -u
然后将在镜像上新版本的版本目录下查找软件包(例如/pub/OpenBSD/7.1/
),尽管该目录尚不存在。这也可能是更新时出现 404 错误的原因。
[1]:迂腐,-current
按字面意思理解,指 CVS 树的实际状态。 “快照”是在特定时间点制作的整个构建(基本系统和包)。