我已经使用 OpenBSD 有一段时间了。然而,我所做的就是从一个版本转到下一个版本,总是只是进行更新。我配置了系统,使其充当我的路由器和防火墙,并且它工作得很好。但我从不更新软件包。我所做的就是继续下一个版本。
来自 Linux 世界,我习惯于每周应用几次更新;但我如何在 *BSD 上做到这一点? - 或者这不是 *BSD 哲学的一部分?
答案1
OpenBSD 以二进制为中心。修补基本系统(例如,由于内核中的安全缺陷)需要从源代码重建系统或运行系统补丁。
您可以通过执行来更新包二进制文件(如果有任何更新/更改可用)包添加:
pkg_add -Uu
OpenBSD 团队建议使用这些软件包而不是从端口构建 -OpenBSD 软件包和端口系统
FreeBSD 可以通过以下方式更新包或端口。
答案2
一般来说,使用 OpenBSD 时,您仅在更新系统时更新软件包。因此,作为最后一步,升级到最新版本后,您应该执行:
# pkg_add -ui
这将(u)升级您已安装的软件包,并在需要时询问您任何问题(i)互动。
一般来说,给定版本的软件包直到下一个版本才会更新(OpenBSD 缺乏为“当前”版本以外的版本提供软件包更新的开发人员资源)。如果您想更定期地升级软件包,您要么需要使用端口,要么升级到新的快照,然后pkg_add -ui
再次运行。
如需进一步阅读,请检查: http://www.openbsd.org/faq/faq15.html
答案3
各种 BSD 系统非常清楚地分为“基础系统”和“第 3 方软件(端口/软件包)”。您分别升级两者。
这假设您安装了 OpenBSD 6.5 或更高版本(请参阅下面的旧答案):
基础系统升级为sysupgrade(8)
:
doas sysupgrade
如果您遵循稳定或发布分支,这会将基本系统下载并升级到 OpenBSD 的下一个“稳定”版本,或者如果您使用快照,则将其升级到最新的“快照”。请注意sysupgrade
,如果您进行自定义安装而没有所有基本系统集,则不应使用。
升级基本系统后,您可能需要运行syspatch(8)
(只是为了让您的系统从“发布”到“稳定”,快照系统不使用syspatch
)。
端口更新为pkg_add(1)
:
doas pkg_add -u
在快照系统上,您可能需要添加-D snap
(请参阅手册)。
您还需要检查相关部分OpenBSD 常见问题解答升级之前,例如“关注当前并使用快照”或与升级到最新稳定版本相关的部分。
还有一个名为sysclean
(in sysutils/sysclean
) 的端口/包,它将帮助您指出不再是默认安装一部分的基本系统库和其他文件。它还会告诉您哪些端口正在使用过时的库。
旧答案,与 OpenBSD 版本相关前6.5:
对于 OpenBSD,假设您想要从一个稳定版本迁移到下一个稳定版本(除非您进行全新安装,否则不支持跳跃版本),您可以首先阅读您正在执行的升级的特定常见问题解答。在从 5.9 升级到 6.0 的情况下,您阅读“升级指南:5.9至6.0”。
一般来说,其要点包括启动您想要升级到的版本的安装介质并从菜单中选择“(U)pgrade”。升级基本系统后,您可以启动它并以 root 身份升级任何已安装的软件包pkg_add -u
。
属于稳定 OpenBSD 版本的软件包经常更新是不寻常的。通常只有当关键错误得到修复时才会发生这种情况。因此,pkg_add -u
每周运行几次可能不会有多大作用(但一定要继续这样做,因为它可能会带来关键的修复)。
如果你遵循“当前”,事情就大不一样了。然后,您可以从使用 CVS 签出的 ports 树构建软件包/usr/ports
,并且您可能还需要手动重建基本系统(请参阅“从源代码构建系统")。已安装的端口可能会更新为dpb
(在/usr/ports/infrastructure/bin
)如果给出了正确的选项和手动安装的软件包列表。
我在用着
#!/bin/sh -x
pkg_info -P -q -m | sort -o "$HOME/packages"
/usr/ports/infrastructure/bin/dpb -scuR -P "$HOME/packages"
其次是
$ doas pkg_add -u -D unsigned
$ doas pkg_delete -a
不鼓励新用户这样做。
答案4
在 NetBSD 上,您通常升级pkgsrc
到最新版本(只不过是tar -xvzf pkgsrc-version.tar.gz
)并单独更新已安装的软件。
有关 NetBSD/pkgsrc 网站的更多信息: