某些 port, 特别是 p5- port,
会需要根据配置选项 (或对于 p5- port 而言,
perl 的版本) 来修改它们的 pkg-plist。
为简化这一工作, 在
pkg-plist 中的 %%OSREL%%、
%%PERL_VER%%, 以及
%%PERL_VERSION%% 将自动进行相应的替换。
其中, %%OSREL%% 的值是操作系统以数值表示的版本 (例如
4.9)。 %%PERL_VERSION%% 和
%%PERL_VER%% 是 perl 的完整版本号 (例如
5.8.9)。许多其它与 port 文档文件有关的
%%变量%% 在 相应章节 中进行了介绍。
如果您还需要进行其它的替换, 可以通过将
PLIST_SUB 变量设置为一组
变量=值
对来实现。 其中, %%VAR%%
表示在 pkg-plist 中将被
值 替换的那些文字。
举例来说, 如果 port 需要把很多文件放到和版本有关的目录中,
可以在 Makefile 中按照类似下面的例子:
并在 pkg-plist 中将具体的版本替换为
%%OCTAVE_VERSION%%。 这样, 在升级 port 时,
就不需要再到 pkg-plist 中修改那几十 (或者,
有时甚至是上百) 行的内容了。
如果您的 port 需要根据一定的配置来有条件地安装一些文件,
通常的做法是在 pkg-plist 中列出这些文件时,
在对应行的开头加上 %%TAG%%,
并将 TAG 写到 Makefile
中的 PLIST_SUB 变量中, 根据需要替换掉, 或替换为
@comment, 后者表示让打包工具忽略这行:
与之对应, 在 pkg-plist 中:
这一替换过程 (以及加入 联机手册 的过程),
会在 pre-install 和
do-install 两个 target 之间, 通过读取
PLIST 并写入
TMPPLIST
(默认情况下, 是:
WRKDIR/.PLIST.mktmp) 来完成。
因此, 如果您的 port 动态生成 PLIST,
就需要在 pre-install 之前完成。
另外, 如果您的 port 需要编辑所生成的文件, 则需要在
post-install 中操作名为
TMPPLIST 的那个文件。
另一种可行的修改装箱单的方法,
则是根据 PLIST_FILES 和
PLIST_DIRS 这两个变量的设置来进行。
它们的值会作为目录名连同 PLIST
的内容一起写入 TMPPLIST。
在 PLIST_FILES
和 PLIST_DIRS 中列出的名字, 会经历前面所介绍的
%%变量%%
替换过程。 除此之外, 在 PLIST_FILES
中列出的文件, 会不加任何修改第出现在最终的装箱单中,
而 @dirrm 将作为前缀加到 PLIST_DIRS
所列的名字之前。 为了达到目的, PLIST_FILES 和
PLIST_DIRS 必须在写
TMPPLIST 之前,
也就是在 pre-install 或更早的阶段进行设置。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.