1. 为什么UOS/Deepin用户需要离线安装QGIS?
对于使用UOS或Deepin操作系统的用户来说,QGIS是一个非常重要的地理信息系统工具。但现实情况是,很多政企单位、科研机构的电脑往往处于内网环境,无法直接联网安装软件。更麻烦的是,这些设备很多采用的是ARM架构的安可机,官方源里的QGIS版本要么太旧,要么根本不兼容。
我遇到过不少用户反馈,按照网上教程折腾半天,结果卡在依赖问题或者编译错误上。特别是Deepin 20.2之后系统默认的Qt版本升级到5.15,而官方QGIS包还停留在Qt13的环境,直接安装肯定会失败。这时候,一个可靠的离线安装方案就显得尤为重要了。
2. 离线安装前的准备工作
2.1 获取离线安装包
首先需要在一台能联网的UOS/Deepin电脑上准备离线包。这里有两种推荐方式:
- 官方仓库下载(适合x86架构):
sudo apt update sudo apt install --download-only qgis qgis-plugin-grass -y这个命令会把所有相关deb包下载到/var/cache/apt/archives/目录。
- 第三方优化版(推荐ARM架构使用): 访问国内开发者维护的QGIS For Deepin/UOS专版(http://www.gis.show/qgis.html),选择对应架构的完整离线包。这个版本已经解决了Qt版本兼容性问题,实测在Deepin 20.6上运行稳定。
2.2 处理依赖关系
把下载好的deb包全部拷贝到一个文件夹,例如~/qgis_offline。然后生成依赖清单:
mkdir -p ~/qgis_offline cp /var/cache/apt/archives/*.deb ~/qgis_offline dpkg-scanpackages ~/qgis_offline /dev/null | gzip > ~/qgis_offline/Packages.gz注意:如果是ARM架构设备,务必确认下载的是arm64版本的deb包。x86的包在安可机上完全无法运行。
3. 创建本地仓库的两种方案
3.1 简易脚本安装法
对于单机安装,可以编写自动安装脚本:
#!/bin/bash # 保存为install_qgis.sh cd $(dirname "$0") sudo dpkg -i *.deb || sudo apt-get install -f -y给脚本执行权限后直接运行即可:
chmod +x install_qgis.sh sudo ./install_qgis.sh3.2 搭建本地APT仓库
对于需要批量部署的场景,建议搭建本地仓库:
- 在服务器上创建仓库目录:
sudo mkdir -p /opt/qgis-repo/arm64 sudo cp ~/qgis_offline/*.deb /opt/qgis-repo/arm64/- 生成仓库索引:
cd /opt/qgis-repo dpkg-scanpackages arm64 /dev/null | gzip > arm64/Packages.gz- 在目标机器上添加源:
echo "deb [trusted=yes] file:///opt/qgis-repo arm64/" | sudo tee /etc/apt/sources.list.d/qgis-local.list sudo apt update4. 安装后的配置与验证
4.1 解决常见问题
安装完成后可能会遇到两个典型问题:
插件加载失败: 删除有问题的插件缓存:
rm -rf ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/*中文显示异常: 修改QGIS字体设置:
echo "[Qt]" >> ~/.config/QGIS/QGIS3.conf echo "font=Noto Sans CJK SC" >> ~/.config/QGIS/QGIS3.conf
4.2 功能验证
运行以下命令测试核心功能:
qgis --version # 查看版本 qgis --noplugins --code # 安全模式启动建议重点检查:
- 矢量数据加载(尝试打开.shp文件)
- 栅格数据显示(加载GeoTIFF测试)
- 坐标系统转换(在右下角切换CRS)
5. 进阶配置技巧
5.1 配置GRASS GIS集成
如果需要使用GRASS模块:
sudo mkdir -p /usr/lib/grass78 sudo ln -s /usr/lib/qgis/grass /usr/lib/grass78 export GISBASE=/usr/lib/grass785.2 优化性能配置
修改~/.config/QGIS/QGIS3.ini:
[Qgis] maxThreads=4 # 根据CPU核心数调整 renderBuffer=2048 # 显存大小(MB)对于ARM设备,建议关闭硬件加速:
[OpenGL] enabled=false6. 维护与更新策略
6.1 离线更新方法
定期更新时,在有网络的机器上:
sudo apt update sudo apt install --download-only qgis -y rsync -av /var/cache/apt/archives/*.deb user@offline_pc:/opt/qgis-repo/arm64/6.2 版本回滚方案
如果更新后出现问题,可以回退到旧版:
sudo apt install qgis=3.10.14+dfsg-1~bpo10+1建议在重大更新前备份配置:
tar -czvf qgis_backup.tar.gz ~/.local/share/QGIS/ ~/.config/QGIS/7. 实际应用案例分享
最近在某地质勘查单位部署时,他们的安可机既不能联网,又需要处理无人机航测的DEM数据。我们采用本地仓库方案部署QGIS后,通过以下脚本批量处理数据:
#!/bin/bash # 批量栅格计算脚本 for dem in *.tif; do gdal_calc.py -A $dem --outfile=slope_${dem} --calc="tan(slope(A))" gdal_calc.py -A $dem --outfile=aspect_${dem} --calc="aspect(A)" done这个案例证明,即便在严格的离线环境下,QGIS依然能完成专业级的GIS工作。关键是要提前做好充分的准备,把可能用到的工具和依赖都打包完整。