1.选择自己想要的版本下载:传送门
wget https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz
2.解压下载的源码包
tar zxvf postgresql-12.2.tar.gz
3.编译安装
configure可以指定安装路径,如果自己不想设置,默认即可。执行
./configure
./configure
编译
make
安装
make install
make install
4.创建新用户
sudo useradd -m postgres -d /home/postgres -s /bin/bash
5.创建data目录
data目录也可以自己指定路径,如果是默认路径安装的话,建议将data目录放在
sudo mkdir /usr/local/pgsql/data
6.修改目录所有者
sudo chown postgres /usr/local/pgsql/data
7.测试数据库
切换用户
sudo su postgres
设置路径
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PGDATA=/usr/local/pgsql/data
初始化数据库
initdb -D $PGDATA
启动数据库服务
pg_ctl -D $PGDATA -l $PGDATA/logfile start
创建数据库
createdb test
连接数据库
psql test
如果出现Postgresql输入端,说明安装正确
安装Postgis之前首先要安装很多依赖
geos、proj、json-c
下载合适的版本 传送门
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
sudo make install
下载合适的版本 传送门
wget https://download.osgeo.org/proj/proj-6.2.1.tar.gz
解压安装
安装proj之前首先要安装sqlite3
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
sudo make install
下载合适的版本 传送门
wget https://s3.amazonaws.com/json-c_releases/releases/json-c-0.13.1.tar.gz
解压安装
tar zxvf json-c-0.13.1.tar.gz
cd json-c-0.13.1
./configure --prefix=/opt/json-c-0.13.1
make
sudo make install
下载合适的版本 传送门
wget http://download.osgeo.org/gdal/3.0.4/gdal-3.0.4.tar.gz
解压安装
安装gdal要指定proj的路径
tar zxvf gdal-3.0.4.tar.gz
cd gdal-3.0.4
./configure --prefix=/opt/gdal-3.0.4 --with-proj=/opt/proj-6.2.1 --with-libjson-c=/opt/json-c-0.13.1
make
sudo make install
wget http://download.osgeo.org/postgis/source/postgis-3.0.1.tar.gz
tar zxvf postgis-3.0.1.tar.gz
./configure --prefix=/opt/postgis-3.0.0 --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-geosconfig=/opt/geos-3.8.0/bin/geos-config --with-jsondir=/opt/json-c-0.13.1/ --with-projdir=/opt/proj-6.2.1/ --with-gdalconfig=/opt/gdal-3.0.4/bin/gdal-config
启动postgresql
添加扩展
create extension postgis;
大功告成,可以在Postgresql里测试gis函数了!!!