debian dh exec安装创建额外目录

debian dh exec安装创建额外目录,debian,package,debhelper,Debian,Package,Debhelper,我正在构建一个debian包,该包使用其他名称将多个配置文件安装到不同的位置。为此,我想使用dhexec安装重命名功能 在控制文件中,我将dh exec声明为构建依赖项: 包.install文件如下所示: #! /usr/bin/dh-exec default.pdns.conf => /etc/powerdns/pdns.conf default.uwsgi.ini => /etc/resolver/uwsgi.ini default.config.toml => /etc/

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

在控制文件中,我将
dh exec
声明为构建依赖项:


包.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

软件包。安装文件需要是可执行的

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


我通过检查使用dh exec的其他项目,最终自己解决了这个问题。

在我的例子中,直到我将
debian/compat
升级到
9
级别,它才起作用

   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/