8.4.动态与静态软件包列表
静态包列表是指在 Ports 中可用的包列表,可以是 pkg-plist(无论是否使用变量替换)或通过 PLIST_FILES
和 PLIST_DIRS
嵌入在 Makefile 中。即使内容是通过工具或 Makefile 中的目标在加入 Ports 集合之前自动生成的(例如,使用 make makeplist
),它仍然被视为静态列表,因为在不下载或编译源文件的情况下,可以检查其内容。
动态包列表是指在编译 Port 时根据安装的文件和目录生成的包列表。在下载和编译源代码或运行 make clean
后,它将无法被检查。
尽管使用动态包列表并不被禁止,但维护者应尽可能使用静态包列表,因为这样可以使用户通过 grep(1) 查询现有 Port,从而发现例如哪些 Port 安装了某个特定的文件。动态包列表主要应当用于复杂的 Port,在这些 Port 中,包列表会根据 Port 的可选特性(因此维护静态包列表不可行)或使用的依赖软件版本发生重大变化。例如,生成 Javadoc 文档的 Port。
最后更新于