折腾了几天,阿里云PG数据库上安装postgis。老提示缺失$libdir .查看文档。就是放在安装文件lib下面。复制了还是提示缺少。看公瑾大神的PostGIS入门篇 一 PostGIS安装 - 知乎
安装。感觉postgis结合了很多插件。然后安装的时候。默认放到了。/usr/下面。折腾很久。还是搞不定。后来参考这个。折腾出来了。
1、解压安装包
#新建安装文件夹
cd /usr
mkdir pgsql9.6
cd pgsql9.6
#安装上传文件命令
yum install lrzsz
#上传
rz -be
#解压文件
tar -zxvf postgresql-9.6.4.tar.gz
进入解压文件夹
cd postgresql-9.6.4
2、开始执行安装命令
执行postgresql安装配置命令
./configure --prefic=/usr/pgsql9.6/
./configure --prefic=/usr/pgsql9.6/ 执行该命令可能会遇到一下问题
readline library not found
If you have readline already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.
解决方案
yum install -y readline
yum install -y readline-devel
解决上诉问题后又出现新问题:
configure: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.
解决方案 yum install zlib-devel
解决上诉问题,就可以执行以上命令
3、编译安装
make
make install
4、创建数据库用户,和数据库数据存储文件 ,并赋予权限
#创建用户并设置密码
adduser postgres
passwd postgres
#新建数据存储文件夹,并赋予权限
cd /usr/pgsql9.6
mkdir data
chown postgres /usr/pgsql9.6/data/
5、初始数据库,启动数据库
cd /usr/pgsql9.6/bin
切换用户
su postgres
初始化数据库
./initdb --encoding=UTF-8 -D /usr/pgsql9.6/data/
启动数据库
./pg_ctl -D /usr/pgsql9.6/data/ start
安装postgis24_96
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
搜索可以安装postgis版本
yum search postgis
首先安装依赖项(必须,否则安装postGis失败)
yum -y install epel-release
yum install postgis24_96.x86_64
他提示没有那个拓展文件,这是因为在线安装postgis24_96后,会发现他安装到了另外一个目录,跟我们的postgresql9.6不在同一个目录,所以我们需要把拓展文件复制到postgresql9.6安装目录下
cp /usr/pgsql-9.6/share/extension/* /usr/pgsql9.6/share/extension/
拓展文件copy过去后,执行发现又爆出缺失库的问题
同理我们需要报lib文件copy到postgresql9.6的安装目录的lib下
cp /usr/pgsql-9.6/lib/* /usr/pgsql9.6/lib/
postgis到此安装完毕,测试
CREATE EXTENSION postgis;
SELECT PostGIS_version();
出现以上截图所示表示安装成功了。
总结下。他的这个能成功。因为默认放在/usr下面。所有后面的安装。也会默认到这里。postgis的插件也在这。
[root@monitorserver usr]# ll
total 2532268
drwxrwxr-x 35 test test 4096 May 23 09:15 app
dr-xr-xr-x. 2 root root 36864 Jul 30 15:05 bin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 etc
-rw-r--r-- 1 root root 2567833600 Mar 23 09:57 --exclude=nbiotservice-v1.0.0.jar,idserver-bak20210816,pscs.bak
drwxr-xr-x 2 test test 4096 Apr 8 16:34 ftp_
drwxr-xr-x. 2 root root 4096 Apr 11 2018 games
drwxr-xr-x 4 root root 4096 Jul 27 09:43 gdal32
drwxr-xr-x 4 root root 4096 Dec 20 2021 gdal33
drwxr-xr-x 4 root root 4096 Jul 27 10:32 gdal34
drwxr-xr-x 4 root root 4096 Jul 27 10:31 geos310
drwxr-xr-x 3 root root 4096 Dec 20 2021 geos39
drwxr-xr-x. 70 root root 12288 Jul 27 14:14 include
-rw-r--r-- 1 root root 964 Jul 29 16:26 index.html
drwxr-xr-x 17 root root 4096 Oct 25 2021 jenkins_ssh
dr-xr-xr-x. 44 root root 4096 Jul 27 10:31 lib
dr-xr-xr-x. 64 root root 57344 Jul 27 14:14 lib64
drwxr-xr-x. 24 root root 4096 Oct 24 2021 libexec
lrwxrwxrwx 1 root root 28 Jul 14 16:56 libgdiplus.so -> /usr/local/lib/libgdiplus.so
drwxr-xr-x 6 root root 4096 Dec 20 2021 libgeotiff16
drwxr-xr-x 4 root root 4096 Dec 20 2021 libspatialite43
drwxr-xr-x. 14 root root 4096 Jan 29 2021 local
drwxr-xr-x 4 root root 4096 Dec 20 2021 ogdi41
drwxr-xr-x 5 root root 4096 Jul 27 15:39 pgsql-10
drwxr-xr-x 7 root root 4096 Jul 29 17:39 pgsql10.12
drwxrwxrwx 6 1107 1107 4096 Jul 29 17:10 postgresql-10.12
-rw-r--r-- 1 root root 24940708 Feb 11 2020 postgresql-10.12.tar.gz.1
drwxr-xr-x 5 root root 4096 Dec 20 2021 proj72
drwxrwxr-x 8 test test 4096 Jun 24 2021 prototype
dr-xr-xr-x. 2 root root 12288 Jul 30 15:09 sbin
drwxr-xr-x. 133 root root 4096 Jul 27 09:47 share
drwxr-xr-x 5 root root 4096 Dec 20 2021 sqlite330
drwxr-xr-x. 4 root root 4096 Feb 20 2020 src
lrwxrwxrwx. 1 root root 10 Feb 20 2020 tmp -> ../var/tmp
drwxrwxr-x 42 test test 4096 May 25 08:41 wwwroot
不管了。把他折腾出来。安装好了就行了。