Centos8 安装 postgresql 13 和 postgis3,以及总结遇到的问题

  • 安装环境
  • 安装过程
  • 安装postgres
  • 安装postgis
  • 遇到问题
  • PROJ 6 symbols not found
  • SQLITE3_CFLAGS and SQLITE3_LIBS environment variables
  • the pgxs makefile /usr/lib64/pgsql/pgxs/src/==makefiles/ cannot be found==
  • please install the ==postgresql server development packages== and re-run configure
  • 安装成功

最近搞了一台服务器,配置不高,所以选择linux系统。之前从来没玩过linux,安装postgres花费了不少时间。记录一下安装过程和遇到的问题,希望对类似问题有所帮助。

postgre 和 postgis 网上教程很多,本文不详细介绍安装过程,经过踩坑排雷,这里推荐几个靠谱博客,另外记录过程中搜遍百度和google都找不到的奇葩问题。

安装环境

华为云:centos8

postgis 3 所需依赖:

sqlite-autoconf-3370000proj-6.3.2geos-3.9.2gdal-3.4.0json-c-0.9

依赖关系Postgres13 需要 postgis3.* (本文3.1.4)Postgis3.* 依赖 >= gdal 3.3.1 (本文3.4.0)gdal3.3.1 依赖 proj6.*(本文6.3.2)proj6.* 依赖 sqlite3(本文sqlite-autoconf-3330000)

安装过程

安装postgres

postgresql 比较容易,基本按照官网来就行,安装过程中基本没遇到问题,这里不做详细介绍。

这里推荐官方教程

官方教程

或者

国外教程

本文参照了官方教程 和 Linux安装 PostgreSQL

安装postgis

postgis由于依赖很多前置环境,尤其是新版(postgres13+postgis3),安装过程遇到很多问题。

这里推荐官方教程

官方安装过程

或者

Linux(CentOS)编译安装GDAL3.0.4+Postgresql 12.2+Postgis-3.0.1

本文参照(因版本问题,这里不推荐参照此博客)

PostgreSQL&PostGIS完全安装

遇到问题

PROJ 6 symbols not found

问题很明了,proj6 未安装,或者版本低 或者 未配置环境变量。

解决办法: 安装proj6

proj6安装成功之后,安装postgis3 的时候,位置指定正确即可 --with-projdir=/usr/local/pgsql/plugin/proj(安装路径)

SQLITE3_CFLAGS and SQLITE3_LIBS environment variables

问题:SQLITE3 未安装,或者为配置环境变量。

安装SQLITE3

the pgxs makefile /usr/lib64/pgsql/pgxs/src/makefiles/ cannot be found

please install the postgresql server development packages and re-run configure

这个问题花费了太多时间,已经打算重装postgres9.6的时候,终于解决了。

原因是没有安装postgresql 服务开发包,受一些博客的误导,还有官方资源的变化,导致安装的时候找不到资源。

如:sudo apt-get install postgresql-server-dev-9.3 和:yum install postgresql-server-dev-13 和:sudo apt-get install postgresql-server-dev-all 和:sudo apt-get install postgresql-common

解决办法:

使用正确官方资源:

yum install postgresql13-devel

安装成功

安装centos7报错 bad mount option huge_postgis 3

安装centos7报错 bad mount option huge_centos8 安装 pg13_02

参考博客:Linux安装 PostgreSQLPostgreSQL&PostGIS完全安装gdal-3.1.2 linux(Ubuntu) 编译 附SQLite3 PROJ6编译Proj之编译、安装