Ubuntu安装GDAL
今天记录的文章,关于Ubuntu安装GDAL,因为领导要求,需要识别KML文件和SHAPE矢量数据的导入。它是地理信息系统(GIS)和遥感领域中最常用的工具之一,对于空间数据有很好的读写功能。
温馨提示:在安装过程中,会出现需要的插件未被安装,请耐心的按照提示去安装;
JDK 需要11+。
我的文件放置目录:/opt/gdal,下载的文件都是统一管理,下面安装GDAL操作命令关系到这个目录,我就偷懒了,直接使用/opt/gdal。
网上有好多安装过程,多说缺什么就安装什么,说的没有错,接下来就是安装的流程:
1、安装SQLITE3
两种安装方式:
1.1、SQLITE3源码安装方法
源码下载地址: SQLite Download Page ,我下载的版本:sqlite-autoconf-3440200.tar.gz
tar -xvzf sqlite-autoconf-xxxxx.tar.gz #解压文件 cd /opt/gdal/sqlite-autoconf-xxxxx #进入文件 ./configure make sudo make install sudo ldconfig #按步骤进行至此 注:该步不能省略,否则会出错! sqlite3 student #测试是否安装成功 显示: dickychen@dickychen-desktop:~/sqlite-autoconf-3080401$ sqlite3 student SQLite version 3.8.4.1 2014-03-11 15:27:36 Enter ".help" for usage hints. sqlite>.help 则表示安装成功1.2、通过apt安装
在Ubuntu可以不用源码编译,直接用命令安装;对于Ubuntu >= 20.04,需要使用命令
sudo apt-get install sqlite3 sudo apt install libsqlite3-dev #测试 sqlite3 -version #显示 3.37.2 2022-01-06 13:25:41 872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5dalt1 说明安装成功2、安装libtiff-4
2.1、下载源码: https://www.linuxfromscratch.org/blfs/view/svn/general/libtiff.html,文件包:tiff-4.7.0.tar.gz
tar -xvzf tiff-4.7.0.tar.gz #解压文件 cd /opt/gdal/tiff-4.7.0 #进入文件 ./configure make make install sudo ldconfig #创建连接 #测试 tiffinfo #显示 tiffinfo LIBTIFF, Version 4.4.0 Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc. Display information about TIFF files usage: tiffinfo [options] input.. where options are: -D read data -i ignore read errors -c display data for grey/color response curve or colormap -d display raw/decoded image data -f lsb2msb force lsb-to-msb FillOrder for input -f msb2lsb force msb-to-lsb FillOrder for input -j show JPEG tables -o offset set initial directory offset -r read/display raw image data instead of decoded data -s display strip offsets and byte counts -w display raw data in words rather than bytes -z enable strip chopping -M size set the memory allocation limit in MiB. 0 to disable limit -# set initial directory (first directory is # 0) 说明安装成功3、安装PROJ
3.1、下载PROJ:Download — PROJ 9.6.2 documentation,我下载的版本:proj-8.0.0.tar.gz。
温馨提示:由于项目引用gdal 3.10.1版本,下载匹配版本proj-9.4.1.tar.gz。
tar -xvzf proj-9.4.1.tar.gz cd /opt/gdal/proj-9.4.1 mkdir build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/opt/gdal \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING=OFF \ -DENABLE_CURL=OFF cmake --build . -j$(nproc) cmake --install .安装后确认:
/opt/gdal/bin/proj ls -lh /opt/gdal/share/proj/proj.db如果提示工具Curl调用失败,则需要安装curl工具,安装后重新安装proj:
sudo apt update sudo apt install -y libcurl4-openssl-dev curl如果出现如下的错误提示,则需要安装:pkg-config
checking for SQLITE3.. configure: error: in `/home/Downloads/proj-8.0.0': configure: error: The pkg-config script could not be found or is too old. Make sure it configure: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config.则需要安装:pkg-config sudo apt-get install pkg-config4、安装cmake
4.1、下载源码:Download CMake;我的版本:cmake-4.0.1.tar.gz
tar -zxvf cmake-4.0.1.tar.gz #解压 cd /opt/gdal/cmake-4.0.1 ./bootstrap #接下来显示,错误的代码 CMake Error at Utilities/cmcurl/CMakeLists.txt:586(message): Could not find OpenSSL.Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.4.2、安装openssl
对于Ubuntu系统 安装
sudo apt-get install libssl-dev对于CentOS系统 安装
sudo yum install openssl-devel如果安装openssl时,出现:Cannot find appropriate Makefile processor on this system.
这是需要安装make插件了。
4.3、安装make
ubuntu系统,安装命令
sudo apt-get install build-essential再次执行安装cmake
./bootstrap make #编译 sudo make install #安装 cmake --version #查看版本 #显示 cmake version 4.0.1 CMake suite maintained and supported by Kitware (kitware.com/cmake). 说明安装成功5、安装GDAL
温馨提示:不同版本的GDAL编译安装方式也可能不同
5.1、下载源码:Index of /gdal/;我的版本:gdal-3.10.1.tar.xz,与项目依赖的版本一致
tar -xf gdal-3.10.1.tar.xz #解压 cd /opt/gdal/gdal-3.10.1 #进入文件 rm -rf build cmake -S . -B build \ -DCMAKE_INSTALL_PREFIX=/opt/gdal \ -DCMAKE_PREFIX_PATH=/opt/gdal \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_INSTALL_RPATH=/opt/gdal/lib \ -DCMAKE_BUILD_RPATH=/opt/gdal/lib \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_JAVA_BINDINGS=ON \ -DGDAL_USE_GEOS=ON \ -DGDAL_USE_PROJ=ON \ -DBUILD_TESTING=OFF \ -Wno-devF #执行脚本 cmake --build build -j$(nproc) sudo mkdir -p /opt/gdal sudo chown -R $(whoami) /opt/gdal cmake --install buildGDAL安装完成时,在/opt/gdal目录下有一个share文件夹,执行:cd /opt/gdal/share/java进入Java文件夹,你会看到四个文件。
查看/opt/gdal/lib目录下有没有libgdalalljni.so,没有则执行以下操作:
注意:是在gdal-3.10.1目录下的build
cp gdal-3.10.1/build/swig/java/libgdalalljni.so /opt/gdal/lib/ chmod 755 /opt/gdal/lib/libgdalalljni.so6、启动项目
我是用Jenkins启动,我将在deploy.sh文件中添加如下配置:
#!/bin/bash source /etc/profile #配置GDAL export PATH=/opt/gdal/bin:$PATH export LD_LIBRARY_PATH=/opt/gdal/lib:$LD_LIBRARY_PATH export PROJ_LIB=/opt/gdal/share/proj export PROJ_DATA=/opt/gdal/share/proj SERVER_NAME=$1 ACTIVE=$2 if [ -z $ACTIVE ]; then ACTIVE=prd fi SERVER_PID=$(ps -ef|grep java |grep $SERVER_NAME |grep $ACTIVE |awk '{print $2}') if [ -e /var/run/${SERVER_NAME}.pid ]; then SERVER_PID=$(cat /var/run/${SERVER_NAME}.pid) fi if [ -n "$SERVER_PID" ]; then kill -s 9 $SERVER_PID fi #这里也配置指向GDAL nohup java \ -Duser.timezone=GMT+8 \ -Djava.library.path=/opt/gdal/lib \ -jar /home/project/service/${SERVER_NAME}.jar \ --spring.profiles.active=${ACTIVE} \ --gdal.proj-path=/opt/gdal/share/proj \ >/home/project/logs/${SERVER_NAME}-${ACTIVE}.log 2>&1 & echo $! > /var/run/${SERVER_NAME}.pid到此,GDAL依赖库安装成功了。
