同事整理的,发上来参考:
一、安装基础环境
1 安装cmake
下载 bin 包
wget https://github.com/Kitware/CMake/releases/download/v4.0.1/cmake-4.0.1-linux-x86_64.tar.gz
解压安装
tar -zxvf cmake-4.0.1-linux-x86_64.tar.gz -C /usr/local/
# 方便使用配置,将目录名称缩短
mv /usr/local/cmake-4.0.1-linux-x86_64/ /usr/local/cmake-4.0.1/
配置环境变量
vi /etc/profile
/etc/profile 中添加内容
export PATH=/usr/local/cmake-4.0.1/bin:$PATH
使配置生效并测试
source /etc/profile
cmake --version
2 安装 GNU(GCC,G++)
安装命令顺序如下:
yum -y install centos-release-scl
# 删除默认生成的yum源文件
rm -rf /etc/yum.repos.d/CentOS-SCLo-scl*.*
# 重新生成yum源文件,如果用阿里源,则修改下面文件内容中的相应部分
vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
yum makecache
# 安装GNU环境
yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
# 使用GNU环境
scl enable devtoolset-11 bash
# 添加启动时启用GNU环境
echo "source /opt/rh/devtoolset-11/enable" >> /etc/profile
source /etc/profile
CentOS-SCLo-scl.repo 内容
# CentOS-SCLo-sclo.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/SCLo for more
# information
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.huaweicloud.com/centos/7/sclo/$basearch/sclo/
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-sclo-testing]
name=CentOS-7 - SCLo sclo Testing
baseurl=https://mirrors.huaweicloud.com/centos/7/sclo/$basearch/sclo/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-sclo-source]
name=CentOS-7 - SCLo sclo Sources
baseurl=http://vault.centos.org/centos/7/sclo/Source/sclo/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-sclo-debuginfo]
name=CentOS-7 - SCLo sclo Debuginfo
baseurl=http://debuginfo.centos.org/centos/7/sclo/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
CentOS-SCLo-scl-rh.repo 内容
# CentOS-SCLo-rh.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/SCLo for more
# information
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.huaweicloud.com/centos/7/sclo/$basearch/rh/
#mirrorlist =http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-rh-testing]
name=CentOS-7 - SCLo rh Testing
baseurl=http://buildlogs.centos.org/centos/7/sclo/$basearch/rh/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-rh-source]
name=CentOS-7 - SCLo rh Sources
baseurl=http://vault.centos.org/centos/7/sclo/Source/rh/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[centos-sclo-rh-debuginfo]
name=CentOS-7 - SCLo rh Debuginfo
baseurl=http://debuginfo.centos.org/centos/7/sclo/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
3 安装底层依赖
yum install gmp-devel mpfr-devel libmpc-devel libtiff-devel epel-release automake libtool
#下面软件需要epel源
yum install libpsl-devel
二、安装必备依赖
1 安装 GEOS
下载软件
wget https://download.osgeo.org/geos/geos-3.13.1.tar.bz2
安装软件
tar xvfj geos-3.13.1.tar.bz2
cd geos-3.13.1/
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make && make install
ldconfig -v
2 安装 PROJ
A 安装 sqlite3
tar -xzvf sqlite-autoconf-3490100.tar.gz
cd sqlite-autoconf-3490100/
./configure --prefix=/usr/local/sqlite3
make && make install
添加环境变量
/etc/profile 中添加
export PATH=/usr/local/sqlite3/bin:$PATH
使配置生效:source /etc/profile
/etc/ld.so.conf 中添加
/usr/local/sqlite3/lib
刷新动态链接库:ldconfig -v
B 安装 curl
# 如有之前yum安装的curl,需要卸载
# 用下面命令查找
rpm -qa |grep curl
# 卸载
rpm -e --nodeps libcurl-7.29.0-59.el7_9.2.x86_64 libcurl-devel-7.29.0-59.el7_9.2.x86_64 curl-7.29.0-59.el7_9.2.x86_64
#编译安装
tar -zxvf curl-8.13.0.tar.gz
cd curl-8.13.0
./configure --prefix=/usr/local/curl --with-nghttp2 --with-ssl --enable-optimize --enable-cookies --enable-curldebug
make && make install
#创建链接
ln -sf /usr/local/curl/lib/libcurl.so.4.8.0 /usr/lib64/libcurl.so
添加环境变量
/etc/profile 中添加
export PATH=/usr/local/curl/bin:$PATH
使配置生效:source /etc/profile
/etc/ld.so.conf 中添加
/usr/local/curl/lib
刷新动态链接库:ldconfig -v
C 安装 PROJ
wget https://download.osgeo.org/proj/proj-9.6.0.tar.gz
tar -zxvf proj-9.6.0.tar.gz
cd proj-9.6.0
mkdir build && cd build
cmake \
-DTESTING_USE_NETWORK=OFF \
-DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_PREFIX=/usr/local/proj \
-DSQLite3_INCLUDE_DIR=/usr/local/sqlite3/include \
-DSQLite3_LIBRARY=/usr/local/sqlite3/lib/libsqlite3.so \
-DCURL_INCLUDE_DIR=/usr/local/curl/include \
-DCURL_LIBRARY=/usr/local/curl/lib/libcurl.so \
..
cmake --build .
cmake --build . --target install
添加环境变量
/etc/profile 中添加
export PATH=/usr/local/proj/bin:$PATH
使配置生效:source /etc/profile
/etc/ld.so.conf 中添加
/usr/local/proj/lib64
刷新动态链接库:ldconfig -v
3 安装 GDAL
A 安装 json-c
# 如有之前yum安装的json-c,需要卸载
# 用下面命令查找
rpm -qa |grep json-c
# 卸载
rpm -e --nodeps json-c-0.11-4.el7_0.x86_64 json-c-devel-0.11-4.el7_0.x86_64
# 安装
tar -zxvf json-c-0.18-20240915.tar.gz
cd json-c-json-c-0.18-20240915
mkdir build && cd build
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/json-c \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
..
cmake --build .
cmake --build . --target install
添加环境变量
/etc/ld.so.conf 中添加
/usr/local/json-c/lib64
刷新动态链接库:ldconfig -v
B 安装 GDAL
tar -zxvf gdal-3.10.3.tar.gz
cd gdal-3.10.3
mkdir build && cd build
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/gdal \
-DCURL_INCLUDE_DIR=/usr/local/curl/include \
-DCURL_LIBRARY_RELEASE=/usr/local/curl/lib/libcurl.so \
-DJSONC_INCLUDE_DIR=/usr/local/json-c/include \
-DJSONC_LIBRARY=/usr/local/json-c/lib64/libjson-c.so \
-DPROJ_INCLUDE_DIR=/usr/local/proj/include \
-DPROJ_LIBRARY_RELEASE=/usr/local/proj/lib64/libproj.so \
..
cmake --build .
cmake --build . --target install
添加环境变量
/etc/profile 中添加
export PATH=/usr/local/gdal/bin:$PATH
使配置生效:source /etc/profile
/etc/ld.so.conf 中添加
/usr/local/gdal/lib64
刷新动态链接库:ldconfig -v
三、安装可选依赖
A 安装 SFCGAL
SFCGAL 需要以下软件的支持:
- A C++ compiler, see above for supported platforms
- CMake version ≥ 2.8.6
- MPFR version ≥ 2.2.1
- GMP version ≥ 4.2
- Boost version ≥ 1.74
- CGAL version ≥ 5.6
其中 GMP,MPFR 可以用 yum 方式安装,CMake 和 C++编译器前面已经配置,因此需要编译安装 Boost 和 CGAL。而 CGAL 同样需要上面所有软件的支持,因此要按照上面列项从上到下依次安装。
1 ) 安装 Boost
下载安装包
wget https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.gz
解压安装包
tar -zxf boost_1_88_0.tar.gz
编译安装
cd boost_1_88_0
./bootstrap.sh
./b2 install
刷新动态库
ldconfig -v
2)安装 CGAL
下载软件
wget https://github.com/CGAL/cgal/releases/download/v6.0.1/CGAL-6.0.1.tar.xz
解压软件
tar -xf CGAL-6.0.1.tar.xz
安装软件
cd CGAL-6.0.1
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make install
3)安装 SFCGAL
下载软件
wget https://gitlab.com/SFCGAL/SFCGAL/-/archive/v2.0.0/SFCGAL-v2.0.0.tar.gz
安装软件
tar -zxf SFCGAL-v2.0.0.tar.gz
cd SFCGAL-v2.0.0
cmake -S . -B build
cmake --build build
cmake --install build
ldconfig -v
整个安装过程参考 192.168.207.5_2025-04-23_10_48_50.log
B 安装 protobuf-c
1) 安装 protobuf
下载安装包
从以下地址下载:
https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protobuf-all-21.12.tar.gz
解压软件包
tar -zxvf protobuf-all-21.12.tar.gz
编译软件包
cd protobuf-21.12/
./configure
make && make install
ldconfig -v
2) 安装 protobuf-c
下载安装包
从以下地址下载:
https://github.com/protobuf-c/protobuf-c/releases/download/v1.5.2/protobuf-c-1.5.2.tar.gz
解压软件包
tar -zxvf protobuf-c-1.5.2.tar.gz
编译软件包
cd protobuf-c-1.5.2
./configure protobuf_CFLAGS="-I/usr/local/include" protobuf_LIBS="-L/usr/local/lib -lprotobuf"
make && make install
ldconfig -v
四、安装 postgis
tar -zxvf postgis-3.5.2.tar.gz
cd postgis-3.5.2
./configure \
--with-pgconfig=/postgres/server/bin/pg_config \
--with-gdalconfig=/usr/local/gdal/bin/gdal-config \
--with-geosconfig=/usr/local/bin/geos-config \
--with-projdir=/usr/local/proj \
--with-jsondir=/usr/local/json-c \
--with-sfcgal \
LDFLAGS="-L/usr/local/proj/lib64" \
CPPFLAGS="-I/usr/local/proj/include" \
JSONC_CFLAGS="-I/usr/local/json-c/include" \
JSONC_LIBS="-L/usr/local/json-c/lib64"
make && make install
五、验证
su - postgres
psql
create database mytest;
\c mytest;
create extension postgis;
create extension postgis_raster;
create extension postgis_sfcgal;