我们正在尝试创建一个 deb 包,以安装并自动启动我们拥有的几个监控脚本。
这是规则文件:
#!/usr/bin/make -f
%:
dh $@ --with=systemd --with=python2
override_dh_installinit:
dh_systemd_enable -pmonitor --name=monitor monitor.service
dh_installinit -pmonitor--no-start --noscripts
dh_systemd_start -pmonitor
构建此包时,我从规则文件中收到以下错误:
dpkg-buildpackage -rfakeroot -us -uc -ui
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: info: source package vm-perf-mon
dpkg-buildpackage: info: source version 2018.07.24.211328
dpkg-buildpackage: info: source distribution RELEASED
dpkg-buildpackage: info: source changed by root <root@034f0c4becfc>
dpkg-source --before-build debbuild
dpkg-buildpackage: info: host architecture amd64
fakeroot debian/rules clean
make:
: No such file or directory
make: *** No rule to make target '
'. Stop.
dpkg-buildpackage: error: fakeroot debian/rules clean subprocess returned exit status 2
debuild: fatal error at line 1152:
dpkg-buildpackage -rfakeroot -us -uc -ui failed
........................................................................... 问题:
- 它声称没有制定目标的规则,但实际目标名称是空白的。
- 规则文件有不目标,除了默认的
%
捕获所有目标和覆盖dh_installinit
目标。据我所知,%
应该捕获所有未定义的目标,并处理它1。
由于 make 目标是空白的,我甚至不知道从哪里开始。我想知道是否有人曾经遇到过这种情况,或者知道这是什么或为什么会发生这种情况。
我确实读过这,但在 OP 的案例中,它指定了一个没有规则的目标。
答案1
查看输出时,我注意到“没有这样的文件或目录”和“没有规则来制作目标”都似乎是一个换行符。我设法通过在第一行末尾添加回车符来复制类似的错误输出。
您应该检查 debian/rules 文件中是否存在任何不寻常的字符。