我有一个简单的问题,在构建自定义 Debian 软件包时,如何将构建配置(例如 CMake)中定义的自定义环境变量引入 Debian 软件包维护者脚本(
prerm
、postrm
、preinst
、postinst
)
示例:我有一个来自 CMake 的名为
CUSTOM_INSTALL_PATH = "/my/own/path"
的变量,我想把它放到所有脚本中,这样我就可以像这样使用它
bash_variable=$CUSTOM_INSTALL_PATH
我尝试查找文档,但没有找到任何相关内容。
一个简单的机制是让
cmake
将值放在某处,并让您的脚本获取该文件。
例如,假设
/etc/yourpackage_path.cfg
是用内容创建的
/my/own/path
然后你可以创建一个
preinst
喜欢
#!/bin/sh
set -eu
read -r bash_variable </etc/yourpackage_path.cfg
: use "$bash_variable" to your heart's content here
对于包中的其他文件也是如此。
(从技术上讲,您也可以从
debian/rules
生成脚本并在构建时内联值;但使它们静态化似乎更健壮和可预测。)
注意
/etc
中的文件应该是用户可编辑的配置文件;也许 /usr/share/lib/yourpackage
等静态文件会更有意义,具体取决于您的具体用例。