使用包安装依赖项并复制自定义conf文件

使用包安装依赖项并复制自定义conf文件

我曾经dh_make创建一个基本的 Debian 软件包安装。我添加了一个依赖项,这是我想要的实际程序。我想做的就是conf用带有一堆自定义参数的新文件覆盖此软件包安装的文件。

我尝试使用install如下所示的文件:

file.conf /etc/destination/file.conf

但反复出现错误:

dh_install: cp -a debian/tmp/file.conf debian/custom-package//etc/package// returned exit code 1

我不明白为什么它找不到该文件。我知道debian/tmp是由构建器创建的,但我不知道为什么它找不到我的文件,然后它尝试不复制到我想要的目录,但它在前面添加了debian/custom-package/.

我还尝试使用 Makefile,但在构建和运行时,该文件并未复制到目录中。我不确定 Makefile 是否正确,甚至是否被调用(dh_make最初不包含 Makefile,如果没有被调用,我不确定在哪里调用它)。

make 文件只有 install 指令,如下所示:

install:
        cp file.conf /etc/destination/

规则文件是使用 构建的基本文件dh,并且按照 Debian 指南的建议:

%:
        dh $@

答案1

Debian 维基有关创建配置包的详细说明。给出您已经拥有的内容的简短版本是:

  • 删除install文件
  • 在您的 中Makefile,按如下方式指定install目标:
install:
        mkdir -p $(DESTDIR)/etc/destination/
        cp file.conf $(DESTDIR)/etc/destination/
  • 在你的中debian/rules,只需运行dh
%:
        dh $@

答案2

我最终通过使用一个名为 的包解决了这个问题config-package-dev

配置包开发链接

虽然我当时没有意识到,但我之前尝试做的事情有一个很大的缺陷。对包的更新或更改可能会覆盖.conf更新时的自定义文件,并且系统可能会被破坏。

config-package-dev通过对我的自定义文件建立符号链接解决了这个问题.conf,这使配置免受更改(除其他外)。此外,它完成了我想做的所有事情,并使整个过程更加干净。我最终抛弃了旧的解决方案,并使用 debian 包构建工具制作了一个全新的包。

感谢大家。

相关内容