官网说明 Source Downloads | PostGIS
Compiling Source
For platform specific compilation instructions refer to Compile and Install for various Operating Systems.To build from source, you will need a complete installation of PostgreSQL, either built and installed from source itself, or including the development headers and utilities. For Linux users, that means installing the or packages as well as the base packages.postgresql-develpostgresql-dev
You will also need to install and/or build GEOS, Proj, GDAL, LibXML2 and JSON-C.
各依赖之间版本选择 UsersWikiPostgreSQLPostGIS – PostGIS (osgeo.org)
说是要依赖这几个GEOS, Proj, GDAL, LibXML2 and JSON-C。下面是我安装的源码包 LibXML2这个好像有了直接升级的。
源码包
链接: 百度网盘 请输入提取码 提取码: m8gm
sqlite-autoconf-3410200.tar.gz
libtiff-v4.5.0.zip
proj-8.2.0.zip
geos-3.11.2.tar.bz2
json-c-json-c-0.16.zip
postgresql-14.7.tar.gz
gdal-3.4.3.tar.gz
postgis-3.2.4.tar.gz
1 proj安装(依赖sqlite-3,tiff-v4)
yum install -y gcc gcc-c++ cmake unzip vim curl libcurl-devel.x86_64
yum install -y openssl-devel libxml2-devel libxslt-devel readline-devel.x86_64
1.1 sqlite-3
tar -zxvf sqlite-autoconf-3410200.tar.gz
cd sqlite-autoconf-3410200
mkdir /usr/local/sqlite-3
./configure --prefix=/usr/local/sqlite-3
make && make install
环境变量添加
SQLITE3_HOME=/usr/local/sqlite-3
PATH=$PATH:$SQLITE3_HOME/bin
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig
1.2 tiff-v4
unzip libtiff-v4.5.0.zip
cd libtiff-v4.5.0
mkdir /usr/local/tiff-v4
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/tiff-v4 ../libtiff-v4.5.0
make && make install
环境变量添加
TIFF_HOME=/usr/local/tiff-v4
PATH=$PATH:$SQLITE3_HOME/bin:$TIFF_HOME/bin
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib:$TIFF_HOME/lib64
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig:$TIFF_HOME/lib64/pkgconfig
1.3 proj
unzip proj-8.2.0.zip
cd proj-8.2.0
mkdir /usr/local/proj-8.2
./configure --prefix=/usr/local/proj-8.2
make && make install
环境变量添加
PROJ_HOME=/usr/local/proj-8.2
PATH=$PATH:$SQLITE3_HOME/bin:$TIFF_HOME/bin:$PROJ_HOME/bin
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib:$TIFF_HOME/lib64:$PROJ_HOME/lib
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig:$TIFF_HOME/lib64/pkgconfig:$PROJ_HOME/lib/pkgconfig
2 geos安装
tar xvfj geos-3.11.2.tar.bz2
cd geos-3.11.2
mkdir /usr/local/geos-3.11
./configure --prefix=/usr/local/geos-3.11
make && make install
环境变量添加
GEOS_HOME=/usr/local/geos-3.11
PATH=$PATH:$SQLITE3_HOME/bin:$TIFF_HOME/bin:$PROJ_HOME/bin:$GEOS_HOME/bin
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib:$TIFF_HOME/lib64:$PROJ_HOME/lib:$GEOS_HOME/lib64
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig:$TIFF_HOME/lib64/pkgconfig:$PROJ_HOME/lib/pkgconfig:$GEOS_HOME/lib64/pkgconfig
3 json-c安装
unzip json-c-json-c-0.16.zip
cd json-c-json-c-0.16
mkdir /usr/local/json-c-0.16
mkdir build
cd build
sh ../cmake-configure --prefix=/usr/local/json-c-0.16
make && make install
环境变量添加
JSONC_HOME=/usr/local/json-c-0.16
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib:$TIFF_HOME/lib64:$PROJ_HOME/lib:$GEOS_HOME/lib64:$JSONC_HOME/lib64
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig:$TIFF_HOME/lib64/pkgconfig:$PROJ_HOME/lib/pkgconfig:$GEOS_HOME/lib64/pkgconfig:$JSONC_HOME/lib64/pkgconfig
4 pgsql安装
tar -zxvf postgresql-14.7.tar.gz
cd postgresql-14.7
mkdir /usr/local/pgsql-14.7
./configure --prefix=/usr/local/pgsql-14.7 --with-openssl
make && make install
环境变量添加
PGSQL_HOME=/usr/local/pgsql-14.7
PATH=$PATH:$SQLITE3_HOME/bin:$TIFF_HOME/bin:$PROJ_HOME/bin:$GEOS_HOME/bin:$PGSQL_HOME/bin
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib:$TIFF_HOME/lib64:$PROJ_HOME/lib:$GEOS_HOME/lib64:$JSONC_HOME/lib64:$PGSQL_HOME/lib
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig:$TIFF_HOME/lib64/pkgconfig:$PROJ_HOME/lib/pkgconfig:$GEOS_HOME/lib64/pkgconfig:$JSONC_HOME/lib64/pkgconfig:$PGSQL_HOME/lib/pkgconfig
5 gdal安装
tar -zxvf gdal-3.4.3.tar.gz
cd gdal-3.4.3
mkdir /usr/local/gdal-3.4
./configure --prefix=/usr/local/gdal-3.4 --with-libtiff=yes --with-sqlite3=/usr/local/sqlite-3 --with-proj=/usr/local/proj-8.2 --with-pg=yes --with-geos=yes
make && make install
环境变量添加
GDAL_HOME=/usr/local/gdal-3.4
PATH=$PATH:$SQLITE3_HOME/bin:$TIFF_HOME/bin:$PROJ_HOME/bin:$GEOS_HOME/bin:$PGSQL_HOME/bin:$GDAL_HOME/bin
export LD_LIBRARY_PATH=$SQLITE3_HOME/lib:$TIFF_HOME/lib64:$PROJ_HOME/lib:$GEOS_HOME/lib64:$JSONC_HOME/lib64:$PGSQL_HOME/lib:$GDAL_HOME/lib
export PKG_CONFIG_PATH=$SQLITE3_HOME/lib/pkgconfig:$TIFF_HOME/lib64/pkgconfig:$PROJ_HOME/lib/pkgconfig:$GEOS_HOME/lib64/pkgconfig:$JSONC_HOME/lib64/pkgconfig:$PGSQL_HOME/lib/pkgconfig:$GDAL_HOME/lib/pkgconfig
6 postgis安装
tar -zxvf postgis-3.2.4.tar.gz
cd postgis-3.2.4
mkdir /usr/local/postgis-3.2
// protobuf 懒得装了
./configure --prefix=/usr/local/postgis-3.2 --without-protobuf
make && make install
启动
添加用户
groupadd postgres
useradd -g postgres -d /home/postgres postgres
mkdir -p /data/postgres
chown -R postgres:postgres /data/postgres/
切换用户
su postgres
initdb -D /data/postgres
pg_ctl -D /data/postgres -l /data/postgres/pg.log start
psql
create database test;
\c test
CREATE EXTENSION postgis;