4.2.软件安装的概述
在 UNIX® 系统上安装第三方软件的典型步骤包括:
1.找到并下载该软件,它可能以源代码格式或二进制文件的形式分发。
2.将软件从其发行格式中解压。他通常是一个用 compress(1)、gzip(1)、bzip2(1)或 xz(1)等程序压缩的 tarball。
3.找到 INSTALL、README 或 doc/ 子目录中的一些文件,并阅读如何安装该软件。
4.如果软件是以源码格式发布的,则编译它。这可能涉及编辑 Makefile 或运行 configure 脚本。
5.测试并安装该软件。
FreeBSD port 是一组文件的集合,旨在自动完成从源代码编译应用程序的过程。组成 port 的文件包含了自动下载、 解压缩、 打补丁、 编译和安装应用程序的所有必要信息。
如果该软件尚未在 FreeBSD 上进行改编和测试,则可能需要对源代码进行编辑,以使其能够正常安装和运行。
然而,已经有超过 36000 个第三方应用程序被移植到了 FreeBSD。在可行的情况下,这些应用程序会以预编译包的形式提供给大家下载。
软件包可以通过 FreeBSD 的软件包管理命令来操作。
包和 port 都能理解依赖关系。如果一个软件包或port被用来安装一个应用程序,而所依赖的库还没有安装,那么这个库就会自动先被安装。
一个 FreeBSD 软件包包含了一个应用程序的所有命令的预编译副本,以及任何配置文件和文档。一个包可以用 pkg(8) 命令来操作,比如pkg install
。
虽然这两种技术是相似的,但包和 ports 都有自己的长处。选择符合你安装特定应用程序的要求的技术。
二进制包的好处
压缩包的 tarball 通常比包含应用程序的源代码的压缩 tarball 小。
软件包不需要编译时间。对于大型的应用程序,如 Mozilla、KDE 或 GNOME,这在慢速系统中可能很重要。
打包不需要了解在 FreeBSD 上编译软件的过程。
移植的好处
软件包通常是用保守的选项编译的,因为它们必须在最大数量的系统上运行。通过从 port 编译,人们可以改变编译选项。
一些应用程序有与安装哪些功能有关的编译时选项。例如,Apache可以被配置成各种不同的内置选项。
在某些情况下,同一个应用程序会存在多个软件包来指定某些设置。例如,Ghostscript 可以作为一个 ghostscript 包和一个ghostscript-nox11
包,这取决于是否安装了 Xorg。如果一个应用程序有超过一个或两个不同的编译时选项,创建多个软件包很快就变得非常困难。
一些软件的许可条件禁止二进制发布。这样的软件必须以源代码的形式发布,而源代码必须由终端用户编译。
有些人不相信二进制分发,或者喜欢通读源代码,以寻找潜在的问题。
为了应用定制的补丁,需要源代码。
要跟踪更新的 ports,可以订阅 FreeBSD ports 邮件列表 和 FreeBSD ports bugs 邮件列表。
警告:
在安装任何应用程序之前,请检查 https://vuxml.freebsd.org/ 以了解与该应用程序有关的安全问题,或键入
pkg audit -F
来检查所有已安装的应用程序是否存在已知的漏洞。
本章的其余部分将解释如何使用软件包和 port 来安装和管理 FreeBSD 上的第三方软件。