4.2.软件安装的概述

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 bugs 邮件列表

警告

在安装任何应用程序之前,请检查 https://vuxml.freebsd.org/ 以了解有关的安全问题。使用 pkg audit -F 来检查已安装的应用程序是否存在已知的漏洞。

本章的其余章节将解释如何使用软件包和 ports 来安装和管理 FreeBSD 上的第三方软件。