4.2.软件安装的概述
在 FreeBSD 中,一个Port是一组文件,旨在自动化从源代码编译应用程序的过程。组成 Port 的文件包含自动下载、提取、打补丁、编译和安装应用程序所需的所有信息。
如果软件尚未在 FreeBSD 上进行适应和测试,源代码可能需要编辑,以便正确安装和运行。
然而,已经有36000多个第三方应用程序已经适配了 FreeBSD。在可行的情况下,这些应用程序会作为预编译的软件包提供下载。
软件包可以使用 FreeBSD 软件包管理命令进行操作。
软件包和 Ports 都能理解依赖关系。如果使用软件包或 Ports 安装应用程序,并且尚未安装相关的库,那么将自动首先安装该库。
FreeBSD 软件包包含应用程序的所有命令的预编译副本,以及任何配置文件和文档。可以使用pkg(8)命令(如pkg install
)操作软件包。
虽然这两种技术相似,但软件包和 Ports 各自有其优势。选择符合你对安装特定应用程序要求的技术。
软件包优势
压缩的软件包 tarball 通常比包含应用程序源代码的压缩 tarball 小。
软件包不需要编译时间。对于大型应用程序,如 Firefox、KDE Plasma 或 GNOME,在慢系统上这可能很重要。
软件包不需要理解在 FreeBSD 上编译软件的过程。
Ports 优势
软件包通常使用保守选项进行编译,因为它们必须在最大数量的系统上运行。通过从 Ports 编译,可以更改编译选项。
一些应用程序在编译时具有与安装的功能相关的选项。例如,NGINX® 可以配置为使用各种不同的内置选项。 在某些情况下,对于同一应用程序,可能存在多个软件包以指定某些设置。例如,NGINX® 可以作为
nginx
软件包和nginx-lite
软件包提供,具体取决于是否安装了 Xorg。如果应用程序具有超过一个或两个不同的编译时选项,则很快就无法创建多个软件包。一些软件的许可条件禁止二进制分发。这样的软件必须以源代码的形式分发,最终用户必须编译它。
有些人不信任二进制发行版,或者更喜欢阅读源代码以查找潜在问题。
为了应用自定义补丁,需要源代码。
要跟踪更新的 Port,请订阅FreeBSD ports 邮件列表和FreeBSD ports 错误邮件列表。
警告
在安装应用程序之前,请检查https://vuxml.freebsd.org/以获取相关的安全问题。要针对已知漏洞对已安装的软件包进行审核,请运行
pkg audit -F
。
本章的其余部分将解释如何在 FreeBSD 上使用软件包和 Ports 安装和管理第三方软件。
最后更新于