如果 port 需要把一些文件放到 PREFIX/etc, 不要 简单地安装它们, 并将其列入 pkg-plist, 因为这样会导致 pkg_delete(1) 删除用户精心编辑的文件, 而新安装时则又会把这些文件覆盖。
因此, 您应把配置文件的例子按其它的后缀来安装 (例如 filename.sample 就是一个不错的选择) 并显示一条 消息 告诉用户如何复制并编辑这个配置文件, 以便让软件能够正确工作。
因此, 应按其它的后缀来安装配置文件的例子 (filename.sample 就是一个不错的选择)。 如果实际的配置文件不存在, 则将其复制为实际文件的名字。 卸载时, 如果发现用户没有修改配置文件, 则将其删除。 您需要在 port 的 Makefile, 以及 pkg-plist (对于从 package 安装的情形) 进行处理。
示例的 Makefile 部分:
post-install: @if [ ! -f ${PREFIX}/etc/orbit.conf ]; then \ ${CP} -p ${PREFIX}/etc/orbit.conf.sample ${PREFIX}/etc/orbit.conf ; \ fi
示例的 pkg-plist 部分:
@unexec if cmp -s %D/etc/orbit.conf.sample %D/etc/orbit.conf; then rm -f %D/etc/orbit.conf; fi etc/orbit.conf.sample @exec if [ ! -f %D/etc/orbit.conf ] ; then cp -p %D/%F %B/orbit.conf; fi
另外, 还应显示一条 消息 指出用户应在何处复制并编辑这个文件, 以便让软件能开始正常工作。