3.2 创建描述文件

  有 2 个描述文件对于任何一个 port 来说是必须的, 不论它是不是打算成为 package。 它们是 pkg-descrpkg-plist。 这两个文件使用 pkg- 前缀以区别于其它文件。

3.2.1 pkg-descr (关于 port 的冗长描述文件)

  这是 port 里一个较长的描述文件。 使用一段或几段文件文字来简明的描述这个 ports 是用来做什么的。

注意:不是 手册或者对如何 深入使用/编译这个port的说明! 要是您从 README 或者联机手册里面中复制文字的话, 请务必小心; 通常, 它们不是对这个 port 简明扼要的描述, 或者用了难以使用的格式 (比如, 联机手册里有迫使两端对齐的空格)。 如果要移植的软件有官方的WWW网页, 您应该在这里列出来。 使用 WWW: 作为前缀来表示 一个网站, 这样其它的自动工具就能正常工作了。

  下面是一个简单的 pkg-descr 例子:

This is a port of oneko, in which a cat chases a poor mouse all over
the screen.
 :
(etc.)

WWW: http://www.oneko.org/

3.2.2 pkg-plist (port 的装箱单)

  这份文件列出了 port 所要安装的所有文件。 由于 package 也是据此进行打包, 因此它也被称作 “装箱单(packing list)”. 这个文件中, 路径是相对于安装的路径的 (通常是 /usr/local/usr/X11R6)。 如果您使用 MANn 变量的话, 请不要在这里列出任何联机手册。 假如 port 在安装过程中会创建一些目录, 请务必增加对应的 @dirrm 行, 以便在 package 被卸载时予以自动删除。

  下面是一个简单的例子:

bin/oneko
lib/X11/app-defaults/Oneko
lib/X11/oneko/cat1.xpm
lib/X11/oneko/cat2.xpm
lib/X11/oneko/mouse.xpm
@dirrm lib/X11/oneko

  参考 pkg_create(1) 的联机手册以获得更多有关装箱单的细节

注意: 建议您将这个文件里的所有的文件名按字母排序。 这样, 在升级这个port的时候就能够更方便地核实所做的修改。

注意: 手工创建这样一份列表可能是一件非常枯燥的事情。 如果您的 port 需要安装大量的文件, 自动创建装箱单 会帮您省下不少时间。

  只有一种情况可以不用 pkg-plist文件。 如果这个 port 只安装很少量的一些文件或目录的话, 这些文件和目录就可以分别列在 MakefilePLIST_FILESPLIST_DIRS 变量里。 举个例子来说, 我们可以在上面那个 oneko port 里面不用 pkg-plist, 而把下面的这几行加到 Makefile 里面:

PLIST_FILES=    bin/oneko \
                lib/X11/app-defaults/Oneko \
                lib/X11/oneko/cat1.xpm \
                lib/X11/oneko/cat2.xpm \
                lib/X11/oneko/mouse.xpm
PLIST_DIRS=     lib/X11/oneko

  当然, 如果一个 port 不需要给它自己创建目录的话, 就不用设置 PLIST_DIRS 变量了。

  不过, 如果用这种方式来列出 port 要安装的文件和目录的话, 也就无法利用在 pkg_create(1) 里介绍的命令来制作 package 了。 因此, 这种方法只适用于那些简单的 port, 使它们更为简化。 同时, 这种做法也有助于减少 ports collection 中的文件数量。 在采用 pkg-plist 之前, 请考虑一下使用这种方法。

  稍后我们将看到 pkg-plist 以及 PLIST_FILES 如何处理 更复杂的任务

若您有关于 FreeBSD ports 系统的问题, 请发送电子邮件至 <ports@FreeBSD.org>。
关于此文档的任何问题, 请致函 <doc@FreeBSD.org>。