我曾经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 包构建工具制作了一个全新的包。
感谢大家。