package 是一个一个的 tgz 档 , 你可以在
ftp://freebsd.csIE.nctu.edu.tw/pub/packages-* 目录下面找到所有
的 package , 如果你用的是 FreeBSD 2.2* , 就找 packages-2.2 , 若是
3.0* , 则是 packages-3.0 。packages-* 目录下面还把各种 packages
依照功能等特性分类 , 让你可以更方便的找到你所要的东东 。在这里就
拿 audio/amp-0.7.6.tgz 来说 , 用 tar -tvzf amp-0.7.6.tgz 可以看
到它的内容如下:
-rw-r--r-- root/bin 181 Nov 6 17:54 1997CONTENTS
-rw-r--r-- root/bin 19 Nov 6 17:54 1997COMMENT
-rw-r--r-- root/bin 514 Nov 6 17:54 1997DESC
-rw-r--r-- root/wheel 4358 Nov 6 09:14 1997MTREE_DIRS
-r-xr-xr-x bin/bin 94208 Nov 6 17:53 1997 bin/amp
-r--r--r-- bin/bin 853 Nov 6 17:53 1997 man/man1/amp.1.gz
其中COMMENT 这个档案简单介绍一下这个 package , 而DESC 里面则
是较详细的介绍或是一些注意事项等 。CONTENTS 里面则是列出了这个
package 里面有哪些档案 , 它们会被安装到哪里去 。你用 pkg_add 来安
装或是用 pkg_delete 来反安装 package 时会参考到这些资料 。
MTREE_DIRS 里面放的是要丢给 mtree 的资料 , 用来设定档案目录的权
限等等的 。接下来有几个目录、档案 。这些目录都是相对於 /usr/local
的 , 也就是说这里面的 bin/amp 到时候会安装到 /usr/local/bin/amp
之下 。和 package 相关的几个指令详述如下:
pkg_info:用来查看这个 package 是什麽 。它会把 package 里面的
COMMENT 和DESC 抓出来 , 解说一下这个 package 的功能等资料 。
pkg_add:用来安装 package 。它会按照 package 里面的设定 , 把各个
档案拷到正确的位置 , 然後在 /var/db/pkg 下面造出该 package 的目
录 , 把CONTENTSCOMMENTDESC 等档案拷过去 。以前面的 amp 来说
, 使用 pkg_add amp-0.7.6.tgz 会建立并把这三个档案拷到
/var/db/pkg/amp-0.7.6 目录下去 。
pkg_delete:用来反安装 package 。它会到 /var/db/pkg/[package] 目
录下面找出这个 package 安装了哪些东东 , 把它们通通移除 , 最後会把
/var/db/pkg/[package] 目录也移除 。比如说要反安装前面安装过的
amp , 直接执行 pkg_delete amp-0.7.6 即可 。
如果你凡事都喜欢自己来事必亲躬 , 那麽你可以自己从 ports 里面做
compile , 如果你看得懂 source , 还可以自己改改 code , 做做 tuning
, 量身订做弄出一个最适合自己的专用程式来 。这种一手掌控的快感 ,
是你用 Windows 系统时所无法享受到的 。ports 主要分为两部份 , 一部
份就是原始的 source code , 这些 source 大部份都放在
ftp://freebsd.csie.nctu.edu.tw/pub/distfiles 里面 。另一部份则是
这个 ports 如果要在 FreeBSD 下面编译、执行的话所需要的修改及摆
放的位置等设定 , 这一部份主要是放在
ftp://freebsd.csie.nctu.edu.tw/pub/ports-* 目录下面 。这个目录和
package 一样 , 也是依照不同的应用特性来做分类 。还是拿 amp 来说 ,
在 audio/amp 目录下面 , 你可以看到:
drwxr-xr-x 2 UPLOAD UPLOAD 512 Oct 9 00:24 CVS
-rw-r--r-- 1 UPLOAD UPLOAD 528 Sep 3 08:35 Makefile
drwxr-xr-x 3 UPLOAD UPLOAD 512 Oct 9 00:24 files
drwxr-xr-x 3 UPLOAD UPLOAD 512 Oct 9 00:24 patches
drwxr-xr-x 3 UPLOAD UPLOAD 512 Oct 9 00:24 pkg
Makefile 指定了这个 ports 该如何编译、source code 要去哪里抓、
需要先安装哪些其它相关的 ports、如何 instal.... 等等的讯息 。
files 目录下一般是放 source code 的 md5 checksum , 以免抓到错误
的 source code 包裹 。patches 里面放的是这个 ports 如果要改用到
FreeBSD 下面所需要做的修改 。pkg 目录下面是这个 ports 的相关资料
, 和 package 里面那些CONTENTSCOMMENTDESC 有相同的功效 。如
推荐阅读
- FreeBSD handbook中文版 4 安装应用程序:Packages 和Ports
- FreeBSD 管道及&&的功用
- FreeBSD Port Tree 介绍
- FreeBSD Packages和Ports使用技巧
- 用ports安装如何指定服务器
- FreeBSD 的部分Package简介
- Monitoring Interface for Apache 1.3 & MRTG
- 利用 portupgrade快速更新通过ports安装的软件
- 把Linux的密码->FreeBSD database
- Ports & Package