centos7离线安装gdal3.6.3

本文档以纯离线环境为基础,所有的安装包都是提前下载好的。以gdal3.6.3为例(其他版本安装步骤或方式可能不同),在centos7系统离线安装,并运行java项目,实现在java服务中调用gdal库解析地理数据。以下任意组件如果已经安装过了,则可以跳过安装步骤。

清华大学开源软件镜像站:https://mirror.tuna.tsinghua.edu.cn/
阿里云镜像站:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
部分安装包及依赖库可以在这两个网站上找到,阿里云镜像的依赖库版本较低,想下载高版本的依赖库可以在清华大学开源软件镜像站下载。

1. 安装gcc环境

首先检查系统是否有gcc的环境,执行以下命令查看:

gcc -version

如果没有出现版本号则需要进行安装。如果出现版本号,则跳过次步骤。

1.1. 安装

上传gcc.zip至服务器任意目录,g++和c++也需要安装,都在gcc.zip包里,可以一块安装。

我这里上传在/root目录下,执行以下命令, (如果已经安装有gcc版本,但是需要升级gcc版本的可跳过该步骤):

mkdir gcc
mv gcc.zip gcc
unzip gcc.zip
rpm  -ivh  *.rpm --nodeps --force

然后再次查看gcc的版本

gcc --version
g++ --version
c++ --version

在这里插入图片描述

注意,这里安装的gcc版本过低,需要升级gcc版本,然后覆盖已安装gcc版本才可保证后续的组件顺利安装。(这是因为高版本gcc不是rpm文件,但是升级gcc版本需要有一个gcc来编译高版本gcc安装文件。)

1.2. 升级gcc

1.2.1 解压高版本gcc

打开gcc升级.zip,找到gcc-9.3.0.tar.gz文件上传至服务任意目录并解压文件

tar -xzvf gcc-9.3.0.tar.gz
cd gcc-9.3.0

1.2.2 上传依赖并解压

安装gcc需要的下面四个压缩包的版本可以通过gcc9.3.0根目录下的contrib/download_prerequisites 文件里查看。

在这里插入图片描述

tar -xf gmp-6.1.0.tar.bz2
tar -xf mpfr-3.1.4.tar.bz2
tar -xf mpc-1.0.3.tar.gz
tar -xf isl-0.18.tar.bz2

isl-0.18.tar.bz2 文件下载地址:http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/isl-0.18.tar.bz2

1.2.3 建立软链接

ln -sf gmp-6.1.0 gmp
ln -sf mpfr-3.1.4 mpfr
ln -sf mpc-1.0.3 mpc
ln -sf isl-0.18 isl

1.2.4 编译安装

继续执行以下命令进行编译安装

mkdir build && cd build

/usr/local/gcc是make编译安装的安装目录,所以后面设置gcc等软连接的路径也是 /usr/local/gcc

../configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

使用make指令编译,该过程需要等待30-70分钟,-j4 代表使用并行4个线程处理,可以根据自己的电脑CPU性能选择2, 4, 8…。

make -j8
make install

make编译错误解决

在执行make进行编译安装时如果出现以下错误,可执行以下命令,然后继续执行make命令:
在这里插入图片描述

make distclean

如果问题仍然存在,您可以尝试删除配置缓存文件。执行以下命令:

rm ./config.cache

修改gcc、g++ 软链接到新安装版本路径,使新版本生效

ln -snf  /usr/local/gcc/bin/gcc  /usr/bin/gcc
ln -snf  /usr/local/gcc/bin/g++ /usr/bin/g++
ln -snf  /usr/local/gcc/bin/c++ /usr/bin/c++

查看gcc的软链接,则系统实际使用的gcc路径 ll /usr/bin/gcc*

再次查看版本
在这里插入图片描述

2. 安装cmake

2.1 上传安装并解压

上传cmake压缩包至/usr/local目录下,执行以下命令

tar -zxvf cmake-3.10.0.tar.gz
cd cmake-3.10.0
./bootstrap

出现以下错误时说明gcc和g++的版本过低。可按照上面升级gcc版本操作一遍。
在这里插入图片描述

出现以下错误时说明 libstdc++.so.6 的版本过低,参照2.1.1步骤解决,没有问题则跳过。
在这里插入图片描述

2.1.1 libstdc++.so.6版本过低问题解决:

  1. 查看 libstdc++.so 位置和版本
find / -name "libstdc++.so*"
  1. 查看当前的libstdc++.so.6的使用版本是不是旧版本
ls -al /usr/lib64/libstdc++.so.6

在这里插入图片描述

  1. 如果发现使用的时低版本时,把新版本拷贝到系统目录下,我这边新版本是6.0.28。
cp /usr/local/gcc/lib64/libstdc++.so.6.0.28 /usr/lib64
  1. 删除旧版本并修改libstdc++.so.6 新的软连接
rm /usr/lib64/libstdc++.so.6
rm /usr/lib64/libstdc++.so.6.
ln -s /usr/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6
  1. 检查结果
ls -al /usr/lib64/libstdc++.so.6

在这里插入图片描述

libstdc++.so.6版本过低问题解决参考:https://www.cnblogs.com/cthon/p/12722055.html

2.2 编译安装

如果libstdc++.so.6 有问题,在解决完问题之后要重新执行 ./bootstrap

gmake && gmake install

3. 安装sqlite

查看是否已安装过sqlite,已安装则跳过此步骤。sqlite至少是在3.11以上版本,如果不是则需要升级版本。

sqlite3 --version

3.1安装并升级

3.1.1 安装

上传 sqlite-autoconf-3420000.tar.gz 压缩包至/usr/local目录,进行解压和编译。

tar -zxvf sqlite-autoconf-3420000.tar.gz
cd sqlite-autoconf-3420000
./configure --prefix=/usr/local
make && make install

3.1.2 升级(第一次安装不需要进行升级)

rm -rf /usr/bin/sqlite3
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig

在这里插入图片描述

sqlite3安装和升级参考:https://zhuanlan.zhihu.com/p/110743704

4. 安装geos

上传geos-3.6.2.tar.bz2 至/usr/local目录并解压

tar -xvf geos-3.6.2.tar.bz2
cd geos-3.6.2
./configure
make && make install

5. 安装proj6

上传proj-6.1.0.tar.gz压缩包至/usr/local目录并解压

tar -zxvf proj-6.1.0.tar.gz
cd proj-6.1.0
./configure
make && make install

在执行./configure 命令时如果出现以下错误,可将sqlite解压目录下的sqlite3.pc 文件拷贝至
/usr/lib64/pkgconfig/ 目录下,然后再执行./configure 命令(无错误直接忽略)
在这里插入图片描述

cp /usr/local/sqlite-autoconf-3420000/sqlite3.pc /usr/lib64/pkgconfig/

添加环境变量:

vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
source /etc/profile
proj –version

在这里插入图片描述

6. 安装ant

为了编译gdal.jar,上传apache-ant-1.10.7-bin.tar.gz 压缩包至/usr/local并解压

tar -zxvf apache-ant-1.10.7-bin.tar.gz
mv apache-ant-1.10.7 ant

7. 安装swig

上传swig-4.0.1.tar.gz 压缩包至/usr/local目录并解压

tar -zxvf swig-4.0.1.tar.gz
cd swig-4.0.1
./configure --prefix=/usr/local/swig --without-pcre
make && make install

配置环境变量,ant的环境变量在这里一块配置

vim /etc/profile
export ANT_HOME=/usr/local/ant
export SWIG_HOME=/usr/local/swig
export PATH=$PATH:$ANT_HOME/bin:$SWIG_HOME/bin
source /etc/profile

在这里插入图片描述

8. 安装gdal

上传gdal-3.6.3.tar.gz压缩包并解压

tar -zxvf gdal-3.6.3.tar.gz
cd gdal-3.6.3
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/gdal
make && make install

拷贝gdal文件至/usr/local/bin

cd /usr/local/gdal
cp -r ./bin/* /usr/local/bin/
cp -r ./lib64/* /usr/local/lib/

查看gdal版本

gdalinfo --version

在这里插入图片描述

9. 配置jdk

拷贝文件到jdk

cd /usr/local/gdal/share/java
cp gdal-3.6.3.jar /jdk安装的根目录/jre/lib/ext
cp *.so /jdk安装的根目录/jre/lib/amd64/server

配置环境变量

vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/jdk安装的根目录/jre/lib/amd64/server

因为之前已经配置过 LD_LIBRARY_PATH 环境变量了,所以这次只需要在后面添加:
:/jdk安装的根目录/jre/lib/amd64/server

source /etc/profile

至此gdal3.6.3安装结束。(如果不需要跑Java项目,安装到第八步即可。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/77339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE基础学习打卡04】JDBC之MySQL数据库安装

目录 前言一、JDBC与数据库二、MySQL数据库1.MySQL数据库2.MySQL服务下载安装3.MySQL服务启动停止4.MySQL命令 三、MySQL客户端安装总结 前言 📜 本系列教程适用于JavaWeb初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持…

Ajax及前端工程化

Ajax:异步的js与xml。 作用: 1、通过ajax给服务器发送数据,并获得其响应的数据。 2、可以在不更新整个网页的情况下,与服务器交换数据并更新部分网页的技术。 一、同步与异步 二、原生Ajax 1、准备数据地址 2、创建XMLHttpReq…

Vitis高层次综合学习——FPGA

高层次综合 什么是高层次综合?就是使用高级语言(如C/C)来编写FPGA算法程序。 在高层次综合上并不需要制定微架构决策,如创建状态机、数据路径、寄存器流水线等。这些细节可以留给 HLS 工具,通过提供输入约束&#xff…

tauri-vue:快速开发跨平台软件的架子,支持自定义头部UI拖拽移动和窗口阴影效果

Tauri Vue Typescript 一个使用 taurivuets 开发跨平台软件的模板,支持窗口头部自定义 UI 和拖拽和窗口阴影,不用再自己做适配了,拿来即用,非常 nice。而且已经封装好了 tauri 的 http 请求工具,省去很多弯路。开源…

(二)结构型模式:8、代理模式(Proxy Pattern)(C++示例)

目录 1、代理模式(Proxy Pattern)含义 2、代理模式的UML图学习 3、代理模式的应用场景 4、代理模式的优缺点 5、C实现代理模式的实例 1、代理模式(Proxy Pattern)含义 代理模式(Proxy),为…

大数据-玩转数据-Flink 自定义Sink(Mysql)

一、说明 如果Flink没有提供给我们可以直接使用的连接器,那我们如果想将数据存储到我们自己的存储设备中,mysql 的安装使用请参考 mysql-玩转数据-centos7下mysql的安装 创建表 CREATE TABLE sensor (id int(10) ) ENGINEInnoDB DEFAULT CHARSETutf8二…

Wi-Fi 安全在学校中的重要性

Wi-Fi 是教育机构的基础设施,从在线家庭作业门户到虚拟教师会议,应有尽有。大多数 K-12 管理员对自己的 Wi-Fi 网络的安全性充满信心,并认为他们现有的网络安全措施已经足够。 不幸的是,这种信心往往是错误的。Wi-Fi 安全虽然经常…

Layui列表表头去掉复选框改为选择

效果&#xff1a; 代码&#xff1a; // 表头复选框去掉改为选择 $(".layui-table th[data-field"0"] .layui-table-cell").html("<span>选择</span>");

keil构建STM32工程并使用proteus仿真led点灯实验

STM32单片机与51单片机有很大区别&#xff0c;不仅结构上有很大差异&#xff0c;STM32更复杂一些&#xff0c;在操作上来说&#xff0c;STM32也要复杂很多&#xff0c;51单片机上手写代码&#xff0c;可以很直接操作引脚&#xff0c;但是STM32单片机在操作引脚之前需要作很多初…

数据结构——栈(C语言)

需求&#xff1a;无 栈的概念&#xff1a; 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端为栈底。栈中的数据元素遵守后进先出&#xff08;LIFO&#xff09;原则。压栈&…

分类预测 | MATLAB实现MTBO-CNN多输入分类预测

分类预测 | MATLAB实现MTBO-CNN多输入分类预测 目录 分类预测 | MATLAB实现MTBO-CNN多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现MTBO-CNN多输入分类预测 2.代码说明&#xff1a;基于登山队优化算法&#xff08;MTBO&#xff09;、卷积神经…

ABAP: SQL 多值查询

基础查数据 问题举例&#xff1a;例如查物料类型为ZFRT、ZROH和ZRSA的物料编码。 1、直接查询&#xff0c;三种不同类型的物料类型是或的关系。 SELECT DISTINCT ma~matnr ma~mtartFROM mara AS maINNER JOIN mbewh AS mbON ma~matnr mb~matnrINTO CORRESPONDING FIELDS OF…

EmbedPress Pro 在WordPress网站中嵌入任何内容

EmbedPress Pro可让您通过高级自定义、自定义品牌、延迟加载和更多惊人功能嵌入源。为古腾堡块和Elementor编辑器提供支持的一体化 WordPress 嵌入解决方案。使用 EmbedPress 在古腾堡创建交互式内容。使用 EmbedPress 的古腾堡块立即将任何内容嵌入到您的网站。 网址: EmbedP…

最强自动化测试框架Playwright(29)-文件选择对象

FileChooser对象通过page.on("filechoose")事件监听。 如下代码实现点击百度搜图按钮&#xff0c;上传文件进行搜索。 from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:browser playwright.chro…

linux 学习————LNMP之分布式部署

目录 一、概述 二、LNMP环境部署 三、配置nginx 四、 配置php使nginx能够解析.php 五、配置mysql 六、配置discuz进行登录论坛访问测试 一、概述 LNMP代表 Linux、Nginx、MySQL、PHP&#xff0c;是一种常用的服务器架构。它由以下组件组成&#xff1a; Linux&#xff1a;作…

docker的数据管理

目录 一.如何管理docker容器中的数据 二.数据卷 2.1数据卷原理 2.2数据卷作用 2.3数据卷案例 三.数据卷容器 3.1数据卷容器的作用 3.2端口映射 一.如何管理docker容器中的数据 管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Contain…

查看 Linux 内核版本的几种方法

uname -a uname -srm uname -r 分拆&#xff1a;Linux 5.13.0-19-generic x86 64 5-内核版本 13-主修订版本 0-19 -次要修订版本 过查看 /proc/version 文件确认 /proc 目录包含虚拟文件&#xff0c;其中包含有关系统内存&#xff0c;CPU内核&#xff0c;已安装文件系统等的信…

详解零售行业供应链管理核心KPI指标(四)

现在零售行业的供应链管理越来越复杂了&#xff0c;复杂的原因是因为市场的变化、商业模式、销售模式的变化。 比如在以往传统的线上电商平台、线下渠道&#xff0c;现在线上电商还增加直播带货&#xff0c;线下渠道又增加了O2O模式。从一线城市的供应链还是做到供应链下沉到二…

开源数据库Mysql_DBA运维实战 (修改root密码)

MySQL——修改root密码的4种方法 本文以windows为例为大家详细介绍下MySQL修改root密码的4种方法&#xff0c;大家可以可以根据的自己的情况自由选择&#xff0c;希望对大家有所帮助 方法1&#xff1a; 用SET PASSWORD命令 首先登录MySQL。 格式&#xff1a;mysql> set pass…

Linux命令200例:ps用于查看当前系统中运行的进程信息(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…