开发者
资源
基于鲲鹏环境安装QGIS地理信息系统
基于鲲鹏环境安装QGIS地理信息系统
发表于2024/07/24
8132

一、介绍

QGIS 是一个免费、开源、跨平台(lin/win/mac)地理信息系统(GIS)。

关于QGIS的更多信息请访问QGIS相关网址

开发语言:C++、Python

一句话描述:地理信息系统

开源协议:GPL-2.0

二、环境要求

硬件要求

项目

说明

CPU

kunpeng 920

操作系统要求

项目

版本

下载地址

openEuler

22.03 LTS-SP2

https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP2/ISO/source/openEuler-22.03-LTS-SP2-source-dvd.iso

Kernel

5.10.0-153.12.0.92.oe2203sp2.aarch64

包含在操作系统镜像中。

软件要求

三、移植规划

本章节给出在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。

序号

软件安装规划路径

用途

说明

1

/path/to/package

源码包存放的路径。

这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。

2

/path/to/source

源码存放的路径。

3

/path/to/install

依赖&应用安装的路径。

4

/path/to/modulefile

环境变量管理的路径。

四、配置编译环境

前提条件:

使用SFTP工具将各安装包上传至服务器对应目录下。

服务器需接通网络。

4.1安装相关依赖

1 使用PuTTY工具,以root用户登录服务器。

2 执行以下命令使用yum安装相关依赖。

yum -y install gcc gcc-c++ proj-devel geos-devel sqlite-devel libspatialite-devel rpmrebuild traceroute fio libaio-devel numactl-devel kernel-debug* java-devel dbus-python-devel python3-numpy python3-pip python3-breathe cmake freexl-devel libwebp-devel sqlite-devel cfitsio-devel unixODBC-devel qt5-qtbase-odbc qt5-qtbase-devel expat-devel python3-sip-devel python3-pyqt5-sip libgta-devel opencl* zstd-devel libgeotiff-devel pcre-devel curl-devel zlib-devel json-c-devel libclc ocl-icd protobuf-devel qt5-qtwebkit-devel postgresql-devel ocl-icd doxygen nss-devel openssl-devel gsl-devel qt5-qtsvg-devel python3-qscintilla-qt5-devel qscintilla-qt5-devel flex bison libzip-devel qt5-qtserialport-devel qt5-qttools-devel exiv2-devel qt5-qtlocation-devel python3-qt5-devel qca-qt5-devel mesa-libGLU-devel proj-nad fftw-devel uriparser-devel libjpeg-turbo-devel openjpeg2-devel minizip-devel netcdf-devel hdf5-devel boost-devel environment-modules wxWidgets-devel autoconf automake libtool

4.2开启X11可视化界面

1 执行以下命令使用yum安装X11组件。

yum -y xorg-x11-xauth xorg-x11-server-utils xorg-x11-server-Xnest libXtst

2 执行以下命令修改sshd_config。

vim /etc/ssh/sshd_config

将将X11-Forwarding 这一行设为yes

3 执行以下命令重启服务sshd.service。

systemctl restart sshd.service

4.3安装botan-2.17.2

1 使用PuTTY工具,以root用户重新登录服务器。

2 执行以下命令下载源码包。

mkdir -p /path/to/package

cd /path/to/package

wget cid:link_6 -O botan-2.17.2.tar.gz

3 执行以下命令解压并生成Makefile。

mkdir -p /path/to/source

cd /path/to/source

tar xf /path/to/package/botan-2.17.2.tar.gz

cd botan-2.17.2

python3 configure.py

4 执行以下命令修改Makefile。

vim Makefile

修改第58行中的--prefix和--bindir和--libdir。

修改前:

$(PYTHON_EXE) $(SCRIPTS_DIR)/install.py --prefix="/usr/local" --build-dir="build" --bindir=/usr/local/bin --libdir=/usr/local/lib --docdir=share/doc --includedir=include

修改后:

$(PYTHON_EXE) $(SCRIPTS_DIR)/install.py --prefix="/path/to/install/botan-2.17.2" --build-dir="build" --bindir=/path/to/install/botan-2.17.2/bin --libdir=/path/to/install/botan-2.17.2/lib --docdir=share/doc --includedir=include

5 执行以下命令编译安装。

make -j

make install

6 执行以下命令修改botan-2.pc。

vim /path/to/install/botan-2.17.2/lib/pkgconfig/botan-2.pc

修改第1行和第3行。

修改前:

prefix=/usr/local

libdir=/usr/local/lib

修改后:

prefix=/path/to/install/botan-2.17.2

libdir=/path/to/install/botan-2.17.2/lib

7 执行以下命令编写modulefile文件。

mkdir -p /path/to/modulefile

cd /path/to/modulefile

cat << EOF > botan-2.17.2

#%Module1.0

set            prefix /path/to/install/botan-2.17.2

prepend-path   PATH                  \$prefix/bin

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

prepend-path   PKG_CONFIG_PATH       \$prefix/lib/pkgconfig

EOF

8 执行以下命令加载modulefile。

module use /path/to/modulefile

module add botan-2.17.2

4.4安装jasper-1.900.2

1 执行以下命令下载源码包。

cd /path/to/package

wget https://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.2.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/jasper-1.900.2.tar.gz

cd jasper-1.900.2

./configure --prefix=/path/to/install/jasper-1.900.2

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > jasper-1.900.2

#%Module1.0

set            prefix /path/to/install/jasper-1.900.2

prepend-path   PATH                  \$prefix/bin

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

prepend-path   PKG_CONFIG_PATH       \$prefix/lib/pkgconfig

EOF

5 执行以下命令加载modulefile。

module add jasper-1.900.2

4.5安装libkml-1.3.0

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_8 -O libkml-1.3.0.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/libkml-1.3.0.tar.gz

cd libkml-1.3.0

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/libkml-1.3.0

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > libkml-1.3.0

#%Module1.0

set            prefix /path/to/install/libkml-1.3.0

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

prepend-path   PKG_CONFIG_PATH       \$prefix/lib/pkgconfig

EOF

5 执行以下命令加载modulefile。

module add libkml-1.3.0

4.6安装libspatialindex-1.9.3

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_1 -O libspatialindex-1.9.3.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/libspatialindex-1.9.3.tar.gz

cd libspatialindex-1.9.3

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/libspatialindex-1.9.3

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > libspatialindex-1.9.3

#%Module1.0

set            prefix /path/to/install/libspatialindex-1.9.3

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

EOF

5 执行以下命令加载modulefile。

module add libspatialindex-1.9.3

4.7安装laz-perf-3.4.0

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_7 -O laz-perf-3.4.0.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/laz-perf-3.4.0.tar.gz

cd laz-perf-3.4.0

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/laz-perf-3.4.0

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > laz-perf-3.4.0

#%Module1.0

set            prefix /path/to/install/laz-perf-3.4.0

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

EOF

5 执行以下命令加载modulefile。

module add laz-perf-3.4.0

4.8安装qtkeychain-0.6.2

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_2 -O qtkeychain-v0.6.2.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/qtkeychain-v0.6.2.tar.gz

cd qtkeychain-0.6.2

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/qtkeychain-0.6.2

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > qtkeychain-0.6.2

#%Module1.0

set            prefix /path/to/install/qtkeychain-0.6.2

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib64

prepend-path   LIBRARY_PATH          \$prefix/lib64

EOF

5 执行以下命令加载modulefile。

module add qtkeychain-0.6.2

4.9安装qwt-6.1.3

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_9 -O qwt-v6.1.3.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/qtkeychain-v0.6.2.tar.gz

cd qwt-6.1.3

qmake-qt5 qwt.pro

3 修改下面文件,引入#include <QPainterPath>。

./src/qwt_painter_command.h

./src/qwt_null_paintdevice.cpp

./src/qwt_painter.cpp

./src/qwt_widget_overlay.cpp

./src/qwt_plot_renderer.cpp

./src/qwt_plot_panner.cpp

./src/qwt_plot_glcanvas.cpp

./src/qwt_compass_rose.cpp

./src/qwt_dial_needle.cpp

./src/moc/moc_qwt_plot_glcanvas.cpp

在以上文件中引入头文件#include <QPainterPath>

说明:openEuler-22.03-SP2中内嵌的QT5是5.12版本,则需修改上述文件,若使用QT5.11版本,则编译qwt6.1.3时无需修改上述文件。

4 执行以下命令编译安装。

make -j

make INSTALL_ROOT=/path/to/install/qwt-6.1.3 install

5 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > qwt-6.1.3

#%Module1.0

set            prefix /path/to/install/qwt-6.1.3

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

EOF

6 执行以下命令加载modulefile。

module add qwt-6.1.3

4.10安装gdal-3.8.1

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_10 -O gdal-v3.8.1.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/gdal-v3.8.1.tar.gz

cd gdal-3.8.1

ln -s /usr/lib64/libOpenCL.so.1.0.0  /usr/lib64/libOpenCL.so

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/gdal-3.8.1

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > gdal-3.8.1

#%Module1.0

set            prefix /path/to/install/gdal-3.8.1

prepend-path   PATH                  \$prefix/bin

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib64

prepend-path   LIBRARY_PATH          \$prefix/lib64

prepend-path   PKG_CONFIG_PATH       \$prefix/lib/pkgconfig

EOF

5 执行以下命令加载modulefile。

module add gdal-3.8.1

4.11安装fcgi2-2.4.2

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_4 -O fcgi2-2.4.2.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/fcgi2-2.4.2.tar.gz

cd fcgi2-2.4.2

./configure --prefix=/path/to/install/fcgi2-2.4.2

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > fcgi2-2.4.2

#%Module1.0

set            prefix /path/to/install/fcgi2-2.4.2

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

prepend-path   PKG_CONFIG_PATH       \$prefix/lib/pkgconfig

EOF

5 执行以下命令加载modulefile。

module add fcgi2-2.4.2

4.12安装grass-7.8.6

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_11 -O grass-7.8.6.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/grass-7.8.6.tar.gz

cd grass-7.8.6

./configure --prefix=/path/to/install/grass-7.8.6 --with-freetype-includes=/usr/include/freetype2 --with-opencl --with-blas --with-lapack --with-geos=/usr/bin/geos-config --with-netcdf=/usr/bin/nc-config

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > grass-7.8.6

#%Module1.0

set            prefix /path/to/install/grass-7.8.6

prepend-path   PATH                  \$prefix/grass-7.8.6/bin:\$prefix/bin

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

EOF

5 执行以下命令加载modulefile。

module add grass-7.8.6

4.13安装saga-2.3.1

1 执行以下命令下载源码包。

cd /path/to/package

wget cid:link_3 -O saga-gis-release-2-3-1.tar.gz

2 执行以下命令解压并生成Makefile。

cd /path/to/source

tar xf /path/to/package/saga-gis-release-2-3-1.tar.gz

cd saga-gis-release-2-3-1/saga-gis

autoreconf -i

./configure --prefix=/path/to/install/saga-2.3.1

3 执行以下命令下载proj两个头文件

wget https://raw.githubusercontent.com/OSGeo/PROJ/4.9/src/projects.h -O /usr/include/projects.h

wget https://raw.githubusercontent.com/OSGeo/PROJ/4.9/src/proj_api.h -O /usr/include/proj_api.h

4 执行以下命令编译安装。

make -j

make install

5 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > saga-2.3.1

#%Module1.0

set            prefix /path/to/install/saga-2.3.1

prepend-path   PATH                  \$prefix/bin

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

EOF

6 执行以下命令加载modulefile。

module add saga-2.3.1

五、获取QGIS源码

1 执行以下命令获取QGIS源码。

cd /path/to/package

wget cid:link_5

六、编译与安装

1 执行以下命令解压源码。

cd /path/to/source

tar xf /path/to/package/QGIS-final-3_18_3.tar.gz

2 执行以下命令生成Makefile。

cd QGIS-final-3_18_3

mkdir build

cd build

cmake .. -DGDAL_INCLUDE_DIR=/path/to/install/gdal-3.8.1/include -DGDAL_LIBRARY=/path/to/install/gdal-3.8.1/lib64/libgdal.so -DOpenCL_LIBRARY=/usr/lib64/libOpenCL.so -DNETCDF_LIBRARY=/usr/lib64/libnetcdf.so -DProtobuf_LITE_LIBRARY=/usr/lib64/libprotobuf.so -DPROJ_INCLUDE_DIR=/usr/include -DLazPerf_INCLUDE_DIR=/path/to/install/laz-perf-3.4.0/include -DQTKEYCHAIN_LIBRARY=/path/to/install/qtkeychain-0.6.2/lib64/libqt5keychain.so -DQWT_LIBRARY=/path/to/install/qwt-6.1.3/lib/libqwt.so -DSPATIALINDEX_LIBRARY=/path/to/install/libspatialindex-1.9.3/lib/libspatialindex.so -DCMAKE_INSTALL_PREFIX=/path/to/install/QGIS-final-3_18_3 -DFCGI_LIBRARY=/path/to/install/fcgi2-2.4.2/lib/libfcgi.so -DWITH_SERVER=ON -DWITH_3D=ON -DWITH_GRASS7=ON

3 执行以下命令编译安装。

make -j

make install

4 执行以下命令编写modulefile文件。

cd /path/to/modulefile

cat << EOF > QGIS-final-3_18_3

#%Module1.0

set            prefix /path/to/install/QGIS-final-3_18_3

prepend-path   PATH                  \$prefix/bin

prepend-path   INCLUDE               \$prefix/include

prepend-path   C_INCLUDE_PATH        \$prefix/include

prepend-path   CPLUS_INCLUDE_PATH    \$prefix/include

prepend-path   LD_LIBRARY_PATH       \$prefix/lib

prepend-path   LIBRARY_PATH          \$prefix/lib

EOF

5 执行以下命令加载modulefile。

module add QGIS-final-3_38_3

七、运行验证

1 执行以下命令安装python模块

pip3 install setuptools==57.5.0  --trusted-host pypi.tuna.tsinghua.edu.cn -i https://pypi.tuna.tsinghua.edu.cn/simple

pip3 install gdal==3.8.1  --trusted-host pypi.tuna.tsinghua.edu.cn -i https://pypi.tuna.tsinghua.edu.cn/simple

pip3 install owslib  --trusted-host pypi.tuna.tsinghua.edu.cn -i https://pypi.tuna.tsinghua.edu.cn/simple

pip3 install psycopg2  --trusted-host pypi.tuna.tsinghua.edu.cn -i https://pypi.tuna.tsinghua.edu.cn/simple

2 执行以下命令运行QGIS

qgis

回显该界面则运行成功。

123.jpg

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞