Links

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 安装和管理第三方软件。
FreeBSD 中文社区