[App Sharing] QGIS-LTR在deepin25beta环境的编译版本
Tofloor
poster avatar
MeGusta
deepin
2025-06-06 19:38
Author

org.qgis.qgis.ltr-3.40.6.1-deepin25-all.zip(135MB)

之前已经使用 ll-killer-go,从 QGIS官方仓库的迁移了如意玲珑版本的 QGIS-LTRQGIS-Stable

经过一段时间的使用,遇到了如下几个问题:

1.偶尔闪退:在做一些比较复杂的操作时,偶尔闪退,而且在终端没有看到报错信息。

2.文件浏览控件样式问题:玲珑环境与 distrobox环境中都只能调用默认的 qt文件浏览器样式,而原生安装的可以调用 dde的文件管理器,非常美观。

image.png

3.安装包体积:由于玲珑包需要完整打包,所以制作出来大约在1.2GB左右(与Windows版本的体积相当),在深度商店这种网络条件比较好的环境,下载安装仍然需要5~6分钟时间。而原生编译的deb包,合计也只有400MB左右。不过算上系统中自动安装的依赖,QGIS的deb安装之后总体程序体积也会比较大。

只是相比之下,deb安装包的体积会相对比较小。

所以,由此,就尝试用源码包编译 QGIS-LTR

经过几次的失败,厘清了 deepin25Ubuntu nobleDebian Trixie的包环境的差异之后,选取了相对合适的软件版本组合,就制作成功了。

难点总结:

1.deepin25使用 sip6,弃用了 sip4,这与 Debian Trixe相同,所以应该使用 Trixie版本的QGIS源码包。

2.python3-owslibTrixie中的版本过高,在 deepin25环境中编译,额外需要编译的依赖包比较多。因此,选择 ubuntu noble使用的 python3-owslib_0.29.3-1版本,这样就省事很多。

3.python3-dateutil包,deepin25仓库中的版本是 python3-dateutil 2.8.1QGIS启动时会出现如下弃用警告,需要使用 Trixie仓库的 python3-dateutil_2.9.0-4来编译并升级。

warning:/usr/lib/python3/dist-packages/dateutil/tz/tz.py:37: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated...

4.qtkeychain-qt5-dev:在 deepin25中预装的是 qtkeychain 0.12版本,并没有 qtkeychain-qt5-dev这个包,通过查看包文件,发现实际上 deepin25仓库中的 qt5keychain-dev 0.12似乎也满足编译要求,无非是版本低了一点。通过构造一个依赖 qt5keychain-dev 0.12的虚包 qtkeychain-qt5-dev_dummy_0.12.0-1_all.deb,似乎也能奏效。

5.其他的依赖,使用Trixie的源码包编译即可。

6.在解决所有需要的依赖之后,最后编译 qgis

总的原则是,尽量多地使用deepin25仓库中的现有依赖包,尽量少地编译及引入外部的包;编译的时候,尽量不要改动Trixie源码包的编译参数。

deepin25环境中,需要从源码构建的组件列表如下:

组件名 版本号 发行版仓库
flip 1.20-5 Debian Trixie
grass 8.4.1 Debian Trixie
leaflet 1.7.1 Debian Trixie
lighttpd 1.4.79 Debian Trixie
python3-dateutil 2.9.0 Debian Trixie
python3-owslib 0.29.3 Ubuntu Noble
qtkeychain-qt5-dev 0.12.0 依赖qtkeychain0.12的虚包
Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
Solutions Team Moderator
2025-06-06 20:04
#1

强....

Reply View the author