Ports & Package( 二 )


的;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/bin181;Nov;;6;17:54;1997; CONTENTS
-rw-r--r--;root/bin;19;Nov;;6;17:54;1997; COMMENT
-rw-r--r--;root/bin514;Nov;;6;17:54;1997; DESC
-rw-r--r--;root/wheel;;;;;4358;Nov;;6;09:14;1997; MTREE_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;的目
录,把; CONTENTS; COMMENT; DESC;等档案拷过去 。以前面的;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;里面那些; CONTENTS; COMMENT; DESC;有相同的功效 。如
果你要使用;ports,必需把该目录下的所有东东(嗯,其实;CVS;都没用
到)照原来的目录结构整个抓下来,如果你是用;ncftp,就用;get;-R

推荐阅读