在第一次升级我的 FreeBSD 时(从 10.0 --> 10.1),我对不同的可能性感到困惑。
据我了解,freebsd-update
FreeBSD 的二进制更新也是如此pkg
。初始安装后,我使用 ports 来安装、编译和更新我的系统,我基本上想知道,我是否不能对小升级做同样的事情。我知道,有一个源获取和编译选项,但在我看来,(某些)安全更新取决于保持 SVN 存储库同步。
a) 正常程序升级和次要系统升级有什么区别?
b) 我可以使用源发行版并通过 ports 包管理来保持更新(无需 SVN 签出)吗?
来自#freebsd @ freenode 的更新
RobotsOnDrugs:freebsd-update和base svn repos用于base,而ports tree和pkg用于第三方软件
答案1
和freebsd-update
做pkg upgrade
非常不同的事情。
遗嘱freebsd-update
(二进制)更新您的基础系统。基本系统包含除以下内容之外的所有内容/usr/local
:检查/{,s}bin
基本/usr/{,s}bin
系统附带的程序。基础系统的各个部分不会出现在包数据库中,它是一个独立的基础设施。整个基础系统由FreeBSD开发。
它pkg upgrade
做了不同的事情:它升级了软件包。这些软件包位于 中/usr/local
,它们是“第 3 方应用程序”——由其他人/公司/...开发,而不是 FreeBSD。
a) 系统升级是指对基础系统进行升级(freebsd-upgrade
)。程序更新意味着升级已安装的软件包(在/usr/local
、pkg upgrade
或带有 ports 树中)。
b) 您可以使用您的选项从端口构建软件包(“基于源”),也可以使用存储库中的软件包(“基于二进制”)。它独立于基本系统:您可以使用freebsd-update
(“二进制更新”)更新您的基本系统,并且可以从源代码构建您的基本系统。
如果你想从 ports 构建包,你应该有 ports 树。您可以通过以下方式结账端口快照。
我希望现在一切都清楚了。
更新1如果你想从源代码构建基础系统,你应该重建每个更新 - 请参阅重建世界。当然应该同步源。
我认为如果你想要一个基于源代码的系统,那么使用二进制是一个不错的选择基础系统(它也包含一个编译器(10.x 中的 clang))并从端口构建您想要的应用程序(网络服务器、最喜欢的编辑器,也许是窗口管理器、浏览器、办公套件等)。