运行debuild -us -uc
构建我正在开发的包时,dh_install
抱怨缺少文件。单独运行它,它会打印相同的错误消息:
$ dh_install
/home/felix/work/my_app/debian/install: 1: /home/felix/work/my_app/debian/install: execute.py: not found
/home/felix/work/my_app/debian/install: 2: /home/felix/work/my_app/debian/install: module1: not found
尽管我位于正确的目录中,并且文件显然在那里:
$ pwd
/home/felix/work/my_app
$ ll
total 56K
[...]
-rwxrwxr-x 1 felix felix 20K Dez 6 10:35 execute.py
[...]
drwxrwxr-x 4 felix felix 4,0K Dez 1 19:10 module1
[...]
这是我的debian/install
:
execute.py usr/lib/my-cool-app
module1 usr/lib/my-cool-app
我究竟做错了什么?这在一天前有效,从那时起我在这个目录中没有更改任何内容:
$ git status
On branch debian_package
nothing to commit, working directory clean
附加信息:
$ dpkg -s debhelper | grep Version
Version: 9.20131227ubuntu1
$ cat debian/compat
9
答案1
答案2
你的debian/install
文件是错误的。你应该使用:
execute.py usr/lib/my-cool-app
module1 usr/lib/my-cool-app
注意:usr/lib
没有开头的斜杠。
此类文件应放入包“root”(AKA DESTDIR)中,以便准备打包,因此您应该使用相对路径(相对于“DESTDIR”)。您的文件会导致构建系统将文件移动到您的系统中/usr
,因此在临时位置中找不到此类文件。
答案3
我在 WSL 中遇到了同样的问题。真正的原因是它对dh_install
我来说太聪明了))
但我找到了一个解决方案,其中提到debian 邮件存档 所以结果可能是:
Debian/安装
#!/bin/bash
echo execute.py usr/lib/my-cool-app
echo module1 usr/lib/my-cool-app