使用 dh_install 安装不可执行文件

使用 dh_install 安装不可执行文件

我有一些 debian 包,其中包含以下install文件:

src/an_executable_python_script usr/bin
src/web/* usr/share/packagename

文件夹中src/web有一些 html 和 css 文件。看起来,在兼容级别 7 下,一切都运行正常。但在兼容级别 9 下,我收到以下错误消息:

/home/user/package/debian/packagename.install: 2: 
/home/user/package/debian/packagename.install: src/web/index.html: Permission denied

dh_install 的手册页明确说明了这一点:文件必须是可执行的。 不幸的是,旧版 debhelper 可能没有强制执行这一点,所以我看到很多软件包都使用这种做法,即使用 dh_install 安装不可执行文件。编辑:也许我误解了手册页。我认为它的意思是安装文件本身必须是可执行的?但问题是:如果我将其标记为index.html可执行,我会收到此错误消息:

src/web/index.html: 2: src/web/index.html: cannot open !DOCTYPE: No such file
src/web/index.html: 2: src/web/index.html: html: not found
src/web/index.html: 4: src/web/index.html: Syntax error: newline unexpected
dh_install: debian/packagename.install (executable config) returned exit code 2

我无法找到如何安装兼容级别 9 的不可执行文件,有人可以给我提示吗?

经过反复尝试后进行编辑:我从所有安装文件中删除了可执行位,现在可以正常工作了...但这与手册页相反吗?!这是怎么回事?

答案1

它是漏洞在 dh-install 中。删除文件里的可执行位.install

chmod -x debian/*.install

希望这个答案能对某人有所帮助,我花了很多心血才解决。

答案2

看起来好像安装文件中提到的文件被执行了,而不仅仅是作为 dh_install 工具的指令读取。您是否在某处偶然调用了“debian/install”?

首先,我建议将安装文件命名为 yourpackagename.install,而不仅仅是“install”。您也可以随意发布您的 debian/rules 文件。我希望看到 debian 文件夹的“ls -l”。

相关内容