所以我也想创建一个 .deb 文件。我现在被这个错误阻止了:
dh_installdeb
dpkg-genbuildinfo
dpkg-genbuildinfo: error: binary build with no binary artifacts found; .buildinfo is meaningless
我很难找到相关信息。
当然,我的食谱可能不正确,所以我会很感激任何评论!
我正在从源代码构建一个 .deb。
在debian/
我的文件夹中有:
- 兼容 10
- 版权
- 变更日志
- 控制
- 规则
我的控制文件:
Source: foo
Maintainer: foo developers
Section: Web Software
Priority: extra
Version: 1.3.1
Standards-Version: 1.3.1
Build-Depends: debhelper (>= 8.0.0)
Package: foo
Architecture: any
Priority: extra
Homepage: http://foo.com
Depends: sbcl (>= 1.3),
${shlibs:Depends},
libwebkit2gtk-4.0-dev (>= 2.24),
default-dbus-session-bus | dbus-session-bus,
glib-networking,
sqlite,
gsettings-desktop-schemas,
libfixposix,
gstreamer,
gst-plugins-base-1.0,
xclip,
${misc:Depends}
Description: foo
foo is foo.
我的规则文件:
#!/usr/bin/make -f
DH_VERBOSE = 1
%:
dh $@
NAME=foo
VERSION=1.3.1
DESTDIR=$(CURDIR)/debian/$(NAME)/
build:
dh_testdir
dh_testroot
dh_prep
make all
# I quickly tried this
# override_dh_auto_build:
# dh_auto_build -- all
# with no apparent effect
# (I want to call `make all` of my Makefile).
binary:
dh_testdir
dh_testroot
dh_installchangelogs
dh_prep
echo $(DESTDIR)
make install DESTDIR=$(DESTDIR)
dh_installdeb
# dh_gencontrol
# dh_md5sums
# dh_builddeb # only for binary packages ?
# override_dh_auto_binary:
# make install
clean:
dh_testdir
dh_testroot
# make clean DESTDIR=$(DESTDIR)
# dh_clean
(请注意,我尝试使用override_dh_auto_build
但没有明显成功。我想调用make all
我的 Makefile)。
我运行一切
sudo debuild -us -uc
我可以看到编译步骤,直到出现错误信息。
我在 下看到我的二进制文件debian/foo/usr/local/bin
。
有一个目录debian/foo/DEBIAN/
,但是是空的。
请注意,当我仅使用
sudo fakeroot debian/rules binary
一切顺利:
for i in 16 32 128 256 512; do \
mkdir -p "/home/vince/work/foo/debian/foo//usr/local/share/icons/hicolor/${i}x${i}/apps/" ; \
cp -f assets/foo_${i}x${i}.png "/home/vince/work/foo/debian/foo//usr/local/share/icons/hicolor/${i}x${i}/apps/foo.png" ; \
done
make[1]: Leaving directory '/home/vince/work/foo'
dh_installdeb
# dh_gencontrol
# dh_md5sums
# dh_builddeb # only binary packages ?
# make install
谢谢!
我正在查看的文档:
答案1
我意识到build
用大量“dh_”规则来定义目标并不是可行的方法。
我重写了它
override_dh_auto_build:
$(MAKE) all
我还添加了
override_dh_usrlocal:
echo
以避免
桌面不是目录
我无法理解的错误,但我的 .deb 构建得很好。
我还有一个
dpkg-genbuildinfo:错误:文件列表文件中第 2 行格式错误
但最后还是如此。