首先, 请确认已经基本上完成了 port 的工作, 仅缺
pkg-plist
。
接下来, 建立一个用于安装您的 port 的临时目录, 并在其中安装它所依赖的所有其他软件包:
#
mkdir /var/tmp/`make -V PORTNAME`
#
mtree -U -f `make -V MTREE_FILE` -d -e -p /var/tmp/`make -V PORTNAME`
#
make depends PREFIX=/var/tmp/`make -V PORTNAME`
将目录结构保存到一新文件中。
#
(cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort > OLD-DIRS
建立一空白 pkg-plist
文件:
#
:>pkg-plist
如果您的 port 遵循 PREFIX
(应该如此)
则接下来应安装该 port 并创建装箱单。
#
make install PREFIX=/var/tmp/`make -V PORTNAME`
#
(cd /var/tmp/`make -V PORTNAME` && find -d * \! -type d) | sort > pkg-plist
此外还应把新建立的目录加入装箱单。
#
(cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist
最后需要手工整理 packing list; 这一过程不是
完全 自动的。 联机手册应列入 port
的 Makefile
中的
MAN
, 而不是装箱单。
用户配置文件应被删除, 或以
n
这样的名字来安装。 filename
.sampleinfo/dir
文件,
也不应列入, 同时应按照 info
文件 的说明来增加一些 install-info
行。
所有由 port 安装的库, 应按照
动态连接库
小节中介绍的方法处理。
另外, 也可以使用
/usr/ports/Tools/scripts/
中的
plist
脚本来自动创建
package list。 plist
脚本是一个 Ruby 脚本,
它能够将前面介绍的手工操作自动化。
开始的步骤和上面的前三行一样, 也就是
mkdir
, mtree
并
make depends
。 然后联编和安装
port:
#
make install PREFIX=/var/tmp/`make -V PORTNAME`
然后让 plist
生成
pkg-plist
文件:
#
/usr/ports/Tools/scripts/plist -Md -m `make -V MTREE_FILE` /var/tmp/`make -V PORTNAME` > pkg-plist
与前面类似, 如此生成的装箱单也需要手工进行一些清理工作。
另一个可以用来创建最初的
pkg-plist
的工具是 ports-mgmt/genplist
。
和其他自动化工具类似, 您应对它生成的 pkg-plist
应手工检查并根据需要进行修改。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.