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