如何为 dpkg-buildpackage 或 debuild 安装的文件添加权限

use*_*975 4 python packaging ppa

我使用 dh_make 和 dpkg-buildpackage 从我自己的源构建一个包。/debian 中的安装文件指定项目文件的目标位置。为了使安装的程序工作,它们需要是可执行的/具有 chmod 的执行权限。特别是它是关于 python 脚本和 .desktop 文件。

如何在设置中设置这些权限?仅将它们复制到目的地是不够的。如果我可以在设置结束时触发命令或类似的命令,对我来说就可以了,但不知道如何包含它。

Cha*_*lie 6

您可以创建一个安装后脚本:

gedit debian/packagename.postinst
Run Code Online (Sandbox Code Playgroud)

这只是一个普通的脚本,因此以下说明即可:

#!/bin/sh
set -e
chmod 755 /path/to/pythonscript.py
exit 0
Run Code Online (Sandbox Code Playgroud)

或者,您可以排除该文件的权限被dh_fixperms. 这可以在以下时间内完成debian/rules

%:
    dh  $@ --with python2

override_dh_fixperms:
    dh_fixperms --exclude path/to/pythonscript.py
Run Code Online (Sandbox Code Playgroud)

第一个选项更可取,因为dh_fixperms它还可以执行其他有用的操作,例如更改文件的所有者,以及排除该文件会阻止dh_fixperms执行任何有用的操作。另请注意,在第一个选项中,前面有一个斜杠/path/to/pythonscript.py,因为它是绝对路径,而第二个选项是相对于 debian 子目录的。

编辑:@AlexisWilke 提到了选项 2 的更好替代方案,即:

%:
    dh  $@ --with python2

override_dh_fixperms:
    dh_fixperms
    chmod 755 path/to/pythonscript.py
Run Code Online (Sandbox Code Playgroud)

这允许dh_fixperms发挥其魔力,然后进行必要的小修复。