debian dh-exec install 创建额外目录

Jav*_*ier 3 debian package debhelper

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

控制文件中我声明dh-execBuild-Dependency

Build-Depends: debhelper (>= 9), dh-exec
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我希望这会在具有该名称的位置部署现有default.*文件,但会创建一个包含该文件的父目录:

/etc/resolver/
|-- config.toml
|   `-- default.config.toml
`-- uwsgi.ini
    `-- default.uwsgi.ini
Run Code Online (Sandbox Code Playgroud)

所有声明的文件都会发生同样的情况。

文件中没有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
Run Code Online (Sandbox Code Playgroud)

设置时,助手会执行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/
Run Code Online (Sandbox Code Playgroud)

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

我将不胜感激任何有关此的提示。

版本:

  • dh-执行 0.22
  • debhelper 9.20160115ubuntu
  • Ubuntu 16.04.1 LTS

Jav*_*ier 6

package.install文件必须是可执行的

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

通过检查其他使用dh-exec 的项目,我终于自己弄清楚了这一点。