FreeBSD Porter 手册
上一页 | 第3章 　简单的 port | 下一页

# 3.2 创建描述文件

有 2 个描述文件对于任何一个 port 来说是必须的， 不论它是不是打算成为 package。 它们是 `pkg-descr` 和 `pkg-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`)。 如果您使用 `MAN`n`` 变量的话， 请不要在这里列出任何联机手册。 假如 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 只安装很少量的一些文件或目录的话， 这些文件和目录就可以分别列在 `Makefile` 的 `PLIST_FILES`和`PLIST_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` 如何处理 更复杂的任务。

上一页 | 起始页 | 下一页
简单的 port | 上一级 | 创建校验和文件

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