debian dh-exec install创建了额外的目录

时间:2017-06-12 10:34:43

标签: debian package debhelper

我正在构建一个debian软件包,它将多个配置文件安装到其他名称的不同位置。为此我想使用dh-exec安装重命名功能。

control 文件中,我将dh-exec声明为 Build-Dependency

Build-Depends: debhelper (>= 9), dh-exec

package.install文件如下所示:

#! /usr/bin/dh-exec
default.pdns.conf => /etc/powerdns/pdns.conf
default.uwsgi.ini => /etc/resolver/uwsgi.ini
default.config.toml => /etc/resolver/config.toml
default.nginx.conf => /etc/nginx/sites-available/resolver.conf

我希望这可以在那些具有该名称的地方部署现有的default.*文件,而是创建一个包含该文件的父目录:

/etc/resolver/
|-- config.toml
|   `-- default.config.toml
`-- uwsgi.ini
    `-- default.uwsgi.ini

所有声明的文件也是如此。

debian/rules文件中没有可能会干扰此问题的覆盖:

#!/usr/bin/make -f

export DH_VERBOSE=1

%:
    dh $@ --with systemd,python-virtualenv


 override_dh_virtualenv:
    dh_virtualenv --package resolver --python /usr/bin/python3

设置DH_VERBOSE=1时,这是dh_install帮助程序的作用:

   dh_install
        install -d debian/resolver//etc/powerdns/pdns.conf
        cp --reflink=auto -a ./default.pdns.conf debian/resolver//etc/powerdns/pdns.conf/
        install -d debian/resolver//etc/resolver/uwsgi.ini
        cp --reflink=auto -a ./default.uwsgi.ini debian/resolver//etc/resolver/uwsgi.ini/
        install -d debian/resolver//etc/resolver/config.toml
        cp --reflink=auto -a ./default.config.toml debian/resolver//etc/resolver/config.toml/
        install -d debian/resolver//etc/nginx/sites-available/resolver.conf
        cp --reflink=auto -a ./default.nginx.conf debian/resolver//etc/nginx/sites-available/resolver.conf/

我觉得我在这里错过了一些非常愚蠢的东西。 检查dh-exec文档和代码后,我认为dh-exec输出和dh-install运行之间必定存在一些奇怪的内容。

我很感激任何提示。

版本:

  • dh-exec 0.22
  • debhelper 9.20160115ubuntu
  • Ubuntu 16.04.1 LTS

2 个答案:

答案 0 :(得分:3)

package.install文件必须可执行

否则 dh-exec 将无法运行,它将用作常规 .install 文件。 对于常规 .install 文件,=>找不到文件,因此被忽略,正确的成员是要创建的目录,而不是目标文件。

我最终通过检查使用 dh-exec 的其他项目来解决这个问题。

答案 1 :(得分:0)

就我而言,在我将debian/compat更新为等级9之前,它无效。