如何将自定义环境变量引入 Debian 软件包维护者脚本(prerm、postrm、preinst、postinst)

问题描述 投票:0回答:1

我有一个简单的问题,在构建自定义 Debian 软件包时,如何将构建配置(例如 CMake)中定义的自定义环境变量引入 Debian 软件包维护者脚本(

prerm
postrm
preinst
postinst

示例:我有一个来自 CMake 的名为

CUSTOM_INSTALL_PATH = "/my/own/path"
的变量,我想把它放到所有脚本中,这样我就可以像这样使用它

bash_variable=$CUSTOM_INSTALL_PATH

我尝试查找文档,但没有找到任何相关内容。

linux bash debian deb
1个回答
0
投票

一个简单的机制是让

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
等静态文件会更有意义,具体取决于您的具体用例。

© www.soinside.com 2019 - 2024. All rights reserved.