先安装postgresql
开源数据库postgreSQL13在麒麟v10sp1源码安装
安装geos
wget http://download.osgeo.org/geos/geos-3.8.0.tar.bz2
tar -xjf geos-3.8.0.tar.bz2
cd geos-3.8.0
./configure --prefix=/opt/geos-3.8.0 --enable-python
make && make install
安装 sqlite
yum install sqlite-devel
安装proj
wget https://download.osgeo.org/proj/proj-6.2.1.tar.gz
sudo apt-get install sqlite3
tar zxvf proj-6.2.1.tar.gz
cd proj-6.2.1
./configure --prefix=/opt/proj-6.2.1
make && make install
安装libxml2
tar zxvf libxml2-2.9.12.tar.gz
cd libxml2-2.9.12
./autogen.sh
./configure --prefix=/opt/libxml2-2.9.12
make && make install
安装json-c
git clone https://github.com/json-c/json-c.git
mkdir json-c-build
cd json-c-build
cmake ../json-c -DCMAKE_INSTALL_PREFIX=/opt/json-c
make && make install
安装 gdal
tar zxvf gdal-3.3.3.tar.gz
cd gdal-3.3.3
./configure --prefix=/opt/gdal-3.3.3 --with-proj=/opt/proj-6.2.1 --with-libjson-c=/opt/json-c
make && make install
安装protobuf
下载源码 https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.1
tar zxvf protobuf-all-3.19.1.tar.gz
cd protobuf-all-3.19.1
./configure --prefix=/opt/protobuf-3.19.1
make && make install
#配置环境变量,增加/usr/local/protobuf-3.6.1安装目录
vi /etc/profile
export CMAKE_HOME=/usr/bin/cmake
export PKG_CONFIG_PATH=/opt/protobuf-3.19.1/lib/pkgconfig
export PROTOBUF_HOME=/opt/protobuf-3.19.1
export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH
#保存退出
source /etc/profile
#验证protobuf执行程序
protoc --version
安装protobuf-c
wget https://github.com/protobuf-c/protobuf-c/releases/download/v1.4.0/protobuf-c-1.4.0.tar.gz
tar -zxvf protobuf-c-1.4.0.tar.gz
cd protobuf-c-1.4.0
#导入protobuf的pkgconfig,否则"--No package 'protobuf' found"
export PKG_CONFIG_PATH=/opt/protobuf-3.19.1/lib/pkgconfig
./configure --prefix=/opt/protobuf-c-1.4.0
make && make install
#配置环境变量,增加下protobuf-c-1.4.0/bin
vi /etc/profile
export PROTOBUFC_HOME=/opt/protobuf-c-1.4.0
export PATH=$PROTOBUFC_HOME/bin:$PATH
export PKG_CONFIG_PATH=$PROTOBUFC_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
#保存退出
source /etc/profile
wget http://download.osgeo.org/postgis/source/postgis-3.1.4.tar.gz
tar zxvf postgis-3.1.4.tar.gz
cd postgis-3.1.4
./configure --prefix=/opt/postgis --with-gdalconfig=/opt/gdal-3.3.3/bin/gdal-config --with-pgconfig=/opt/pgsql/bin/pg_config --with-geosconfig=/opt/geos-3.8.0/bin/geos-config --with-projdir=/opt/proj-6.2.1/ --with-xml2config=/opt/libxml2-2.9.12/bin/xml2-config --with-jsondir=/opt/json-c --with-protobufdir=/opt/protobuf-c-1.4.0
make && make install
PS:如果提示 版本问题
请设置
export CPPFLAGS="-I/opt/protobuf-c-1.4.0/include"
export LD_LIBRARY_PATH="/opt/protobuf-c-1.4.0/lib"
创建postgis 扩展
su postgres
/opt/pgsql/bin/psql
CREATE EXTENSION postgis;
如果 CREATE EXTENSION postgis
时 提示下面错误,请把/opt/json-c/libjson-c.so.5
拷贝到/opt/pgsql/lib
中
cp /opt/geos-3.8.0/lib/libgeos_c.so.1 /opt/pgsql/lib
cp /opt/proj-6.2.1/lib/libproj.so.15 /opt/pgsql/lib
cp /opt/protobuf-c-1.4.0/lib/libprotobuf-c.so.1 /opt/pgsql/lib
如何还报错,请执行`chown -R postgres:postgres /opt/pgsql/