如何为 Qt 程序创建 .deb 包?

如何为 Qt 程序创建 .deb 包?

过去几天,我一直在尝试为带有 Qt 界面的程序创建 deb 包,但没有成功。到目前为止,我已完成以下步骤:

  1. 创建一个 gpg 密钥并在 Launchpad 上注册;
  2. 将自己与中的DEBEMAIL和变量联系起来;DEBFULLNAME~/.bashrc
  3. 从 GitHub 中取出源代码;
  4. 成功构建程序(它用于qmake生成Makefile),并识别其所有依赖项;
  5. 创建了一个包含的源文件夹Makefile,外加一个.desktop文件和一个.xpm图标。
  6. 从此文件夹创建一个名为软件包名称-版本.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

相关内容