【发布时间】:2018-08-22 20:27:11
【问题描述】:
我在 debian 打包的基础知识方面遇到了麻烦。我正在尝试使用一些特定的配置标志来打包我正在编译的 qt。这样我的同事就可以使用该软件包,而无需自己重新编译它。这个问题与qt无关,只是我正在建设的项目。
我是如何创建包的:
获取包:
运行这些命令。或者,将 tarball 内容解压缩到此文件夹以利用预生成的文件
wget http://download.qt.io/official_releases/qt/5.10/5.10.0/single/qt-everywhere-src-5.10.0.tar.xz
tar -xf qt-everywhere-src-5.10.0.tar.xz
cd qt-everywhere-src-5.10.0
生成debian构建系统指令:
DEBFULLNAME="My name"
dh_make --email email@company.com \
--file=../qt-everywhere-src-5.10.0.tar.xz \
-s \
--packagename=sim-qt \
--copyright=lgpl
配置debian构建系统说明:
编辑 debian/control 的这些字段:
Section: devel
Homepage: http://download.qt.io/official_releases/qt/5.10/5.10.0/single/
Description: My Qt build
编辑 debian/rules 如下所示:
#!/usr/bin/make -f
%:
dh $@ --with autotools-dev --parallel
override_dh_auto_configure:
./configure --prefix=/opt/sim-qt \
--opensource --confirm-license \
--skip=qtcharts \
--skip=qtvirtualkeyboard \
--skip=qtdatavis3d \
--skip=qtwebengine \
--silent \
--nomake=examples \
--nomake=tests
构建包:
sudo dpkg-buildpackage -rfakeroot -nc
我正在使用-nc,因为编译需要一个多小时。如果不需要,我不想重新编译,而且过去几天我一直在使用 dpkg-buildpackage。
问题
包裹是空的!
stew@stewbian:~/src/qt$ dpkg --contents sim-qt_5.10.0-1_amd64.deb
drwxr-xr-x root/root 0 2018-03-14 10:36 ./
drwxr-xr-x root/root 0 2018-03-14 10:36 ./usr/
drwxr-xr-x root/root 0 2018-03-14 10:36 ./usr/share/
drwxr-xr-x root/root 0 2018-03-14 10:36 ./usr/share/doc/
drwxr-xr-x root/root 0 2018-03-14 10:36 ./usr/share/doc/sim-qt/
-rw-r--r-- root/root 188 2018-03-14 10:36 ./usr/share/doc/sim-qt/README.Debian
-rw-r--r-- root/root 188 2018-03-14 10:36 ./usr/share/doc/sim-qt/changelog.Debian.gz
-rw-r--r-- root/root 1440 2018-03-14 10:36 ./usr/share/doc/sim-qt/copyright
另外,应该在包中的内容似乎安装在我的本地机器上。
【问题讨论】:
-
好的,所以问题可能与 Qt 相关。
make install DESTDIR=some/other/path似乎忽略了 DESTDIR 参数。这由 dpkg-buildpackage 使用 -
我在使用 QMake 构建东西时看到了这一点。我会用我的解决方法写一个答案。
-
你知道你可以得到 Debian 的 Qt 包,然后调整它吗?
-
是的,但是哇,qt5-default 是一个非常复杂的多部分包。我只需要一个 deb 文件。我现在正在查看您的答案,试图找出我可以从哪里设置 QMAKE_ARGS
-
是的,它很大。但是您可以只获得
debian目录,然后从那里提取您需要的魔法。我想。