如何在OpenBSD,NetBSD和FreeBSD上应用更新?


25

我使用OpenBSD已经有一段时间了。但是,我要做的就是从一个发行版转到下一个发行版,始终只是在进行更新。我配置了系统,使其可以作为我的路由器和防火墙,并且可以很好地工作。但是我从不更新软件包。我所要做的只是转到下一个版本。

来自Linux世界,我习惯于每周应用几次更新。但是如何在* BSD上执行此操作?-还是这不是* BSD哲学的一部分?



使用pkg_addis 更新OpenBSD pkg_add -uvi,对吗?
polemon 2011年


尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。- 来自评论
Archemar

Answers:


22

OpenBSD以二进制为中心。您可以通过执行pkg_add来更新二进制文件(如果有任何更新/更改):

pkg_add -Uu

OpenBSD团队建议使用软件包而不是从端口构建-OpenBSD软件包和端口系统

FreeBSD可以通过软件包或端口进行更新。


1
pkg_add -u在OpenBSD上足够了。-U如果要更新此软件包(或这些软件包)所依赖的软件包,请在安装单个软件包(或一组软件包)时使用。
库萨兰达

9

通常,使用OpenBSD时,只有在更新系统时才更新软件包。因此,作为最后一步,升级到最新版本后,您应该执行:

 # pkg_add -ui

这将(u)升级您安装的软件包,询问您任何问题(i)在需要时不起作用。

通常,给定发行版的软件包要等到下一个发行版本才会更新(OpenBSD缺少开发人员资源,无法为“当前”版本的软件包提供更新)。如果要更定期地升级软件包,则需要使用端口或升级到新的快照,然后pkg_add -ui再次运行。

要进一步阅读,请检查:http : //www.openbsd.org/faq/faq15.html


3
OpenBSD lacks the developer resources for providing updates to packages on versions other than 'current'这也适用于安全更新吗?因此,如果在我使用的二进制软件包中发现了严重的安全漏洞,我是否必须从稳定端口重新安装它?
imgx64

@ imgx64端口的安全修复程序已在上完成-current。OpenBSD不会为重建软件包-stable
Kusalananda

4

OpenBSD:M:Tier amd64和i386体系结构提供了稳定的软件包。这样,您可以使用-stableports分支中的最新安全修复程序来使系统保持最新。

OpenBSD Journal上一篇文章介绍了详细信息:

实际上,这意味着一旦将安全修复程序/更新提交给OPENBSD_5_3树,便会从CVS树中构建一个包。然后,将对该软件包进行测试并将其推送到Stable.MTier.org上的扇出服务器,以供所有人使用!


3

各种BSD系统非常清楚地分为“基本系统”和“第三方软件(端口/软件包)”。您分别升级两个。

这假定您已经安装了OpenBSD 6.5或更高版本(有关旧答案,请参阅下文):

基本系统升级为sysupgrade(8)

doas sysupgrade

如果您遵循稳定版或发行版分支,它将下载基本系统并将其升级到OpenBSD的下一个“稳定”版本,如果使用快照,则将其升级到最新的“快照”。请注意,sysupgrade如果您有没有所有基本系统集的自定义安装,则不应使用。

升级基本系统后,您可能需要运行syspatch(8)(仅是为了使系统从“发布”升级到“稳定”,快照系统不使用syspatch)。

端口更新为pkg_add(1)

doas pkg_add -u

在快照系统上,您可能需要添加该快照-D snap(请参见手册)。

您还需要在升级之前检查OpenBSD FAQ的相关部分,例如,“ 后续和使用快照之后 ”部分或与升级到最新稳定版本有关的部分。

还有一个名为sysclean(in sysutils/sysclean)的端口/程序包,可以帮助您指出基本系统库和其他文件,它们不再是默认安装的一部分。它还会告诉您哪些端口正在使用过时的库。


旧答案,与6.5 之前的 OpenBSD版本有关:

对于OpenBSD,假设您要从一个稳定发行版移至下一个稳定发行版(除非您进行全新安装,否则不支持跳跃发行版),请先阅读要执行的升级的特定常见问题解答。从5.9升级到6.0时,请阅读“ 升级指南:5.9到6.0 ”。

通常,其要点涉及引导您要升级到的发行版的安装介质,然后从菜单中选择“(U)pgrade”。基本系统升级后,即可启动它,并以root用户身份使用来升级所有已安装的软件包pkg_add -u

属于稳定OpenBSD发行版的软件包经常更新非常罕见。通常,只有在修复了关键错误时才会发生这种情况。因此,pkg_add -u每周运行几次可能不会有很多效果(但是请继续这样做,因为这可能会导致严重的问题)。

如果遵循“当前”,情况将大为不同。然后,您将使用在CVS下通过检出的端口树来构建软件包/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

不鼓励新用户使用。


2

我需要获取更新,因为我安装了bash并不想遭受Shellshock漏洞的困扰,所以我接受了Holu的建议/unix//a/103661/93476并为我打了补丁。




1

抱歉,NetBSD pkgsrc不支持粗心的解决方案。相反,您应该使用包管理器,例如nihpkgin。在这种情况下,pkgsrc您必须强制执行忽略经常链接的文件依赖项的升级。同样,在旧版本上复制新版本pkgsrc可能会使pkgsrc树处于不稳定状态。


0

对我来说,更新NetBSD软件包是/ usr / pkgsrc中的命令:

# cvs update -dP && csup /some-path-to-wip-supfile/netbsd-pkgsrc-wip && pkg_rolling-replace -u
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.