当前位置: 首页 > news >正文

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-config

4、安装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 build

GDAL安装完成时,在/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.so

6、启动项目

我是用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依赖库安装成功了。

http://www.cnnetsun.cn/news/3788049.html

相关文章:

  • HEXOSKIN科研采购指南
  • AI数据看板搭建到底难在哪?3大认知误区正在拖垮你的数字化转型进度
  • 计算机单片机毕设实战-基于 STC89C52RC 的环境阈值声光报警硬件系统设计 基于 LCD1602 的室内甲醛温湿度监测控制系统开发(017801)
  • 3分钟拯救杂乱桌面!NoFences开源桌面分区神器深度体验
  • Better Streaming Assets API详解:FileExists到LoadAssetBundle的完整调用示例
  • 魔兽争霸3终极帧率优化指南:5步让你的游戏体验丝滑如新
  • SDC命令详解:使用set_wire_load_model命令进行约束
  • 终极指南:3分钟解决Windows系统iPhone USB网络共享驱动安装难题
  • 企业审计数字化落地:解决多源数据、标准不统一、结果不稳定等审计痛点
  • 基于 OpenLayers 实现态势地图手动标绘航线、作战区域及点位悬浮弹窗
  • 告别枯燥数字!humanize让你的Python应用秒变用户友好
  • 5分钟上手LaspVfx:Unity音频驱动VFX的快速入门教程
  • 终极指南:3分钟让TVBoxOSC电视盒子变身专业Wi-Fi热点
  • 10.4英寸QLED电容触控屏集成实战:RK3588/Zynq驱动与EMI设计
  • RTK与GPS区别和联系是什么?
  • 3分钟搞定Windows远程桌面多用户连接:RDPWrap配置文件全解析
  • 单片机毕设项目:基于 STM32 实时电压速度距离检测小车设计 基于 PID 闭环调速的自主导航智能小车研究(017401)
  • AI驱动的信息整理革命(2024企业级归类标准首次公开)
  • 我让三个AI编程助手分别干了一个完整的项目,差距比想象中大得多
  • 终极指南:如何通过ESPHome深度集成JK-BMS电池管理系统实现智能监控
  • 突破网盘限速:免费开源下载助手完整使用指南
  • We0.ai:重新定义AI原生开发范式的架构革命
  • LAN8720以太网PHY芯片原理、硬件设计与STM32驱动实战
  • 企业 Agent 中台上线后,如何推动业务部门真正用起来?
  • Chaos Blade Java Agent字节码增强架构深度解析与技术实现方案
  • PotPlayer AI字幕翻译插件完整指南:免费实现实时双语观影体验
  • 批量生成AI数据大屏工具(2024合集,零代码在线批量出图)
  • 个人AI快速开发工具推荐:2024零基础新手低代码平台盘点
  • 安全渗透第二次作业
  • 程序员客栈接单全攻略:避开5大坑,高效拿下项目