从 debian 包规则运行命令?

从 debian 包规则运行命令?

我正在尝试做与此中描述的类似的事情问答,除了我正在使用setfacl.

我有以下内容debian/rules

...
override_dh_fixperms:
    dh_fixperms
    setfacl -m u:applicationX:rw /etc/NetworkManager/

该包构建在 Jenkins 服务器上。它返回错误:

make[2]: setfacl: Command not found

我预计这些命令将在安装过程中运行,我知道安装该软件包的设备将具有setfacl.相反,该命令似乎在构建过程中在 Jenkins 服务器上运行。

我是否误解了如何执行上述操作?是否有我可以在目标计算机上运行的规则?

另请注意,正在修改的文件不是我的包本身的一部分。

答案1

您无法在包构建期间存储 ACL,您需要在安装包后在包的postinst.为此,请postinst在您的debian目录中创建一个名为的文件,并setfacl在其中添加命令。您还需要在文件acl中添加对的依赖项control

不属于您的软件包的事实/etc/NetworkManager确实增加了额外的麻烦,但我想您的软件包注定不会被上传到 Debian 档案...您通常还必须跳过一些麻烦来处理这种可能性在没有 ACL 的情况下删除并重新创建该/etc/NetworkManager文件,但这在实践中似乎不太可能。

相关内容