我使用 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 是否存在这样的事情,还是我必须等待新版本??
谢谢!
sysupgrade(8)
当没有新版本时,您回复 404 错误是正确的。该工具是在将系统升级到下一个版本或最新的快照版本时使用的正确工具。使用pkg_add -u
也足以更新所有已安装的包(可能随后pkg_delete -a
删除不再需要的包)。安全补丁等使用
syspatch(8)
. 您可能希望syspatch -c
作为每日 cron 作业运行,以便在新补丁到达时得到通知。快照系统不使用syspatch
.另请参阅OpenBSD 常见问题解答,尤其是关于安全更新的部分,以及OpenBSD 7.1 勘误页。
上述组合中唯一缺少的成分是包装
sysclean
。使用安装后pkg_add
,您可以使用它来查找系统上不再作为基本系统的一部分分发且已安装的软件包不再使用的文件。研究手册以了解如何
sysclean
忽略您自己对系统的本地添加,并确保不要盲目相信该工具(例如,不要编写根据其输出删除内容的自动化作业)。只是对 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]:to be pedantic,
-current
是字面意思,指的是CVS树的实际状态。“快照”是在特定时间点制作的整个构建(基础系统和软件包)。