某些 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>.