4.2. 软件安装预览

如果您以前使用过 UNIX® 系统,那典型的第三方软件安装的步骤是像下面描述的:

  1. 下载这个软件,软件的发行版可能是源代码格式,或是一个二进制包。

  2. 解开软件(其中代表性的是用 compress(1), gzip(1), 或 bzip2(1) 压缩过的tar包)。

  3. 阅读相关文档,了解如何安装。 (多半一个文件名是INSTALLREADME, 或在doc/ 目录下的一些文档)

  4. 如果软件是以源代码形式发布的,那就需要编译它。可能需要编辑一个 Makefile文件, 或运行 configure脚本,和其他的一些工作。

  5. 测试和安装软件。

如果一切顺利的话,就这么简单。如果您在安装一个软件包时发生一些错误, 您可能需要编辑一下它的代码,以使它能正常工作。

您可以继续使用 “传统的”方式安装软件。 然而, FreeBSD 提供了两种技术: packages 和 ports。 就在写这篇文章的时候, 已经有超过 11,800 个第三方的应用程序可以使用了。

对于任意一个应用程序包,是一个可以下载的FreeBSD package文件。这个 FreeBSD package包含了编译好的的副本, 还有一些配置文件或文档。 一个下载的包文件可以用 FreeBSD 的包管理命令来操作, 例如 pkg_add(1)pkg_delete(1), pkg_info(1) 等等。 可以使用一个简单的命令安装一个新的应用程序。

一个FreeBSD的port是一个可以自动从源代码编译成应用程序的文件集合。

记住,如果您自己来编译的话,需要执行很多步的操作 (解压, 补丁, 编译, 安装)。 这些整理 port 的文件集合包含了系统需要完成这个工作的必需信息。 您可以运行一些简单的命令, 那些源代码就可以自动地下载, 解开, 打补丁, 编译, 直至安装完成。

实际上,ports 系统也能做出被 pkg_add 的程序包和不久就要讲到的其他包管理命令来安装的软件包。

Packages 和 ports 是互相 依赖 的。 假设您想安装一个依赖于已经安装的特定库的应用程序。 应用程序和那个库都已经应用于 FreeBSD ports 和 packages。 如果您使用 命令或 ports 系统来添加应用程序, 两个都必须注意库是否被安装, 如果没有, 它会自动先安装库。

这里给出的两种技术是很相似的,您可能会奇怪为什么 FreeBSD 会弄出这两种技术。 其实, packages 和 ports 都有它们自己的长处, 使用哪一种完全取决于您自己的喜好。

Package的优点

Ports 的优点

保持更新 ports, 订阅邮件列表 FreeBSD ports 邮件列表 和递交错误报告 FreeBSD ports bugs 邮件列表

Warning在安装任何应用程序之前,应该首先检查 http://vuxml.freebsd.org/ 上是否有与所安装的应用程序有关的安全问题报告。

另外,也可以安装 security/portaudit。 除了可以自动地检测所有已经安装的软件中是否有已知的安全漏洞之外, 在开始编译新的 port 之前它也会检查是否存在已知的问题。 另外,在安装了一些软件包之后,也可以使用 portaudit -F -a 来强制系统作一下检查。

这章的其余部分将介绍如何使用packages和ports来安装和管理第三方软件。