过去几天,我一直在尝试为带有 Qt 界面的程序创建 deb 包,但没有成功。到目前为止,我已完成以下步骤:
- 创建一个 gpg 密钥并在 Launchpad 上注册;
- 将自己与中的
DEBEMAIL
和变量联系起来;DEBFULLNAME
~/.bashrc
- 从 GitHub 中取出源代码;
- 成功构建程序(它用于
qmake
生成Makefile
),并识别其所有依赖项; - 创建了一个包含的源文件夹
Makefile
,外加一个.desktop
文件和一个.xpm
图标。 - 从此文件夹创建一个名为软件包名称-版本.tar.gz。
在这项准备工作中,我尝试遵循两种不同的指南:
Ubuntu 官方打包指南- 它成功结束,但最终
.deb
文件仅包含doc
文件夹。xpressrazor 提供的更详细指南- 运行时失败
debuild
,并显示以下神秘消息:make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 debuild: fatal error at line 1364: dpkg-buildpackage -rfakeroot -D -us -uc failed
这些指南和其他指南总是提供简单的例子,其中要打包的程序由单个源文件组成(有时只是一个 bash 脚本)。我怀疑它们对于具有复杂 GUI 的适当程序来说太简单了。在这种情况下,从dh_make
现在开始的具体步骤是什么?
更新一:我在 PasteBin 上发布了一个匿名版本的全力debuild
输出。
更新二: 这解构输出,現在有了DH_VERBOSE=1
。
答案1
当它发生的时候,dh
不可能以大多数指南和教程中介绍的传统方式打包 Qt 程序。更具体地说,rules
必须告知文件必须使用哪些代码片段来包含在最终的Makefile
.
实现此目的的一种方法是使用cdbs
包:
sudo apt-get install cdbs
rules
然后必须编辑该文件以包含该包中的代码片段:
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/qmake.mk
这些应该是文件中唯一的内容rules
,任何直接引用都dh
必须删除或注释掉。
此时debuild
应该可以运行了,可以像这样运行:
debuild -S