除了经典的 UNIX® 安装软件的方法 (下载源码包,解压,编辑源码,编译)外,FreeBSD 还提供了另外两种方法来安装应用程序:packages 和 ports。 你可以在 这里 到一份完整可用的 ports 和 packages 的软件清单。
Packages 是预编译好的应用程序,在 FreeBSD
中等价于基于 Debian/Ubuntu 的系统中的
.deb
软件包以及基于
Red Hat/Fedora 的系统中的
.rpm
软件包。
Packages使用 pkg_add(1) 来进行安装。
例如,下面的命令将用来安装
Apache 2.2:
#
pkg_add /tmp/apache-2.2.6_2.tbz
使用 -r
操作将告诉 pkg_add(1)
来自动获取并安装一个软件包,以及解决所有的依赖关系:
#
pkg_add -r apache22
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done. [snip] To run apache www server from startup, add apache22_enable="YES" in your /etc/rc.conf. Extra options can be found in startup script.
如果你正运行着 release 版本的 FreeBSD (6.2,6.3,7.0等,
通常从 CD-ROM 被安装的)pkg_add -r
会为其下载专门为这些特定版本构建好的软件包。
这些软件包 可能 不是当前最新的程序。
你可以使用 PACKAGESITE
变量来覆盖默认的动作。
例如,把 PACHAGESITE
设置成
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/
来下载 6.X 系列最新的包。
想了解更多的 packages 信息请查阅 FreeBSD 手册的 4.4 小节:使用 Packages 系统。
FreeBSD 的第二种安装应用程序的方法就是使用 Ports 套件了。
Ports 套件是 FreeBSD 上的一个利用 Makefile
和一些补丁文件来特定从源码定制安装各种软件程序的框架。
当安装一个 port 时系统会获取程序源码,
应用任何所需要的补丁,编译源码,
并安装应用程序(并针对依赖关系以同样的方式安装解决)。
Ports 套件,常被称作 ports 树,可以在
/usr/ports
下找到。
假设Ports套件已经在安装 FreeBSD 时安装过了。
如果 Ports 套件还没有被安装可以通过 sysinstall(8)
来进行安装,或者使用 csup(1) 或 portsnap(8)
来从 FreeBSD 的服务器上面拉下来。在手册的 4.5.1 小节
可以找到安装 Ports 套件的详细介绍。
安装一个 port 就像进入 port 的目录并开始构建过程一样简单(通常情况下), 下面是从 Ports 套件安装 Apache 2.2 的例子:
#
cd /usr/ports/www/apache22
#
make install clean
使用 ports 安装软件的最大好处就是能够自定义安装选项。
例如,从 ports 安装 Apache 2.2
时你可以通过设置 WITH_LDAP
make(1)
变量来启用 mod_ldap:
#
cd /usr/ports/www/apache22
#
make WITH_LDAP="YES" install clean
请查看 FreeBSD 手册的 4.5 小节, 使用 Ports Collection, 以获取更多关于Ports Collection 的信息。
Packages 就是预编译好的 ports, 所以从源码(ports)安装与从二进制 packages 安装这两者间确实有很大关联。每种方法各有自己的优点:
如果你没有一些特别的需求, packages
可能刚好最适合你的情况。如果你需要进一步定制,
ports 是最适合的方法了。(请记得,
如果你需要定制而自己又更倾向于使用 packages,
你可以使用 make
package
从 ports
构建一个定制的 package,然后复制到其他的服务器。)
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.