快速且靠谱的简单安装 PostgreSQL 15 yum 安装postgis3.3

news/2024/12/20 2:22:59/

快速且靠谱的简单安装 PostgreSQL 15 yum 安装postgis3.3

  • 1、确保已经安装了PostgreSQL数据库
  • 2、添加PostGIS的EPEL仓库
  • 3、使用YUM安装PostGIS
  • 4、以下为其他安装方式,一个个去找源码的编译安装,过程较为繁琐(不熟路的不推荐)

要在基于RPM的系统(如CentOS或RHEL)上使用yum安装PostGIS 3.3,需要确保有正确的仓库配置以及所有必需的依赖项。
以下是安装PostGIS的步骤:

1、确保已经安装了PostgreSQL数据库

如果还未安装 PostgreSQL 15,可以按照以下步骤进行操作:

  1. 添加 PostgreSQL Yum 仓库
    首先,需要添加 PostgreSQL 的官方 Yum 仓库。可以使用以下命令:

    sudo yum install -y https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    

    请根据您的操作系统版本(如 RHEL 8 或 CentOS 8)调整 URL。

    或者

sudo yum install epel-release
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-`rpm -E %{rhel}`-x86_64/pgdg-redhat-repo-latest.noarch.rpm

替换rpm -E %{rhel}为您的CentOS/RHEL版本号,例如7或8。

  1. 禁用默认的 PostgreSQL 模块(如果适用):
    在某些版本的 RHEL/CentOS 中,可能需要禁用默认的 PostgreSQL 模块:

    sudo dnf -y module disable postgresql
    
  2. 安装 PostgreSQL 15
    安装 PostgreSQL 15 及其相关工具:

    sudo yum install -y postgresql15 postgresql15-server
    
  3. 初始化数据库
    安装完成后,需要初始化数据库

    sudo /usr/pgsql-15/bin/postgresql15-setup initdb
    
  4. 启动 PostgreSQL 服务
    启动 PostgreSQL 服务并设置为开机自启:

    sudo systemctl start postgresql-15
    sudo systemctl enable postgresql-15
    
  5. 检查 PostgreSQL 服务状态
    可以使用以下命令检查 PostgreSQL 服务的状态:

    sudo systemctl status postgresql-15
    

完成以上步骤后,已在系统上安装了 PostgreSQL 15。可以使用 psql 命令行工具连接到数据库并开始使用。

2、添加PostGIS的EPEL仓库

可以通过以下命令添加仓库:

sudo yum install epel-release
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-`rpm -E %{rhel}`-x86_64/pgdg-redhat-repo-latest.noarch.rpm

替换rpm -E %{rhel}为您的CentOS/RHEL版本号,例如7或8。

创建一个YUM仓库文件以便能够安装PostGIS。

sudo vi /etc/yum.repos.d/PostGIS.repo

添加以下内容:

[PostGIS]
name = PostGIS Official Repository
baseurl = https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-`rpm -E %{rhel}`-x86_64
enabled = 1
gpgcheck = 1
gpgkey = https://download.postgresql.org/pub/repos/yum/ACCC4CF8.gpg

替换rpm -E %{rhel}为您的CentOS/RHEL版本号。

3、使用YUM安装PostGIS

sudo yum install postgis33_15

注意:postgis33_15是PostGIS的包名,后面紧跟着的数字15表示它与PostgreSQL 15版本兼容。

一旦安装完成,则需要启用PostGIS扩展。
首先,登录到PostgreSQL:

psql -U postgres

然后,对于每个数据库启用PostGIS扩展:

CREATE EXTENSION postgis;

请确保替换步骤2中的版本号为您实际使用的CentOS/RHEL版本。
如果您使用的是PostgreSQL的不同主版本(例如14而不是15),您需要修改步骤3和步骤4中的仓库URL和包名称。

4、以下为其他安装方式,一个个去找源码的编译安装,过程较为繁琐(不熟路的不推荐)

操作系统为
CentOS Linux release 7.9.2009 (Core)
数据库
postgresql 14.6


本文详细记录了在CentOS7.9系统上安装PostgreSQL14.6和PostGIS3.2.4的过程,包括环境准备、依赖包下载与安装、编译配置、错误排查以及数据库创建和加载PostGIS扩展的步骤。过程中遇到了如gcc、readline、zlib、libxml2、geos、proj、gdal、json-c、protobuf-c等依赖库的安装问题,并逐一解决。postgis 是 postgresql 的一个扩展插件,具有强大的空间计算功能,很适合用于地图系统。postgis 下载
登录 postgis 的官方网站:http://postgis.net/下载符合 postgresql 数据库版本的 postgis 安装包。本文档使用的版本为 3.2.4,查看该版本的使用文档,安装要求如下:包下载
经过多次尝试,最终整个环境包的版本使用情况如下:postgresql 14.6gcc 4.8.5make 3.82proj 8.2.1(新版本需要使用 cmake 进行编译安装)libxml2 2.9.9(新版本需要使用 cmake 进行编译安装)json-c 0.10(新版本需要使用 cmake 进行编译安装)gdal 3.5.3(新版本需要使用 cmake 进行编译安装)geos 3.6.6(新版本需要使用 cmake 进行编译安装)各安装包的下载地址:postgresqlPostgreSQL: File BrowsergccGCC Releases- GNU ProjectprojDownload — PROJ 9.5.0 documentationlibxml2Index of /sources/libxml2/json-cjson-c releasesgdalReleases · OSGeo/gdal · GitHubgeosDownload and Build | GEOScmake(如果使用的是proj等包的高级版本时可能需要)Download CMake安装 postgresql
1、创建安装用户[root@test ~]$ useradd postgres[root@test ~]$ passwd postgres2、上传安装包到执行目录[root@test ~]$ mkdir -p /opt/postgresql/soft[root@test ~]$ chown -R postgres:postgres /opt/postgresql[root@test ~]$ cd /opt/postgresql/soft[root@test soft]$ yum install lrzsz[root@test soft]$ rz[root@test soft]$ lspostgresql-14.6.tar.bz23、解压缩安装包,.bz2 格式解压需要安装 bzip2[root@test soft]$ yum install bzip2[root@test soft]$ tar -xvf postgresql-14.6.tar.bz24、开始安装[root@test soft]# cd postgresql-14.6[root@test postgresql-14.6]# lsaclocal.m4 config config.log configure configure.ac contrib COPYRIGHT doc GNUmakefile.in HISTORY INSTALL Makefile README src[root@test postgresql-14.6]# ./configurechecking build system type... x86_64-pc-linux-gnuchecking host system type... x86_64-pc-linux-gnuchecking which template to use... linuxchecking whether NLS is wanted... nochecking for default port number... 5432checking for block size... 8kBchecking for segment size... 1GBchecking for WAL block size... 8kBchecking for gcc... nochecking for cc... noconfigure: error: in `/opt/postgresql/soft/postgresql-14.6':configure: error: no acceptable C compiler found in $PATHSee `config.log' for more details报错很明显,没有找到 C 语言的编译器安装 gcc 之后继续安装[root@test postgresql-14.6]# yum install gcc[root@test postgresql-14.6]# ./configure......checking for library containing dlsym... -ldlchecking for library containing socket... none requiredchecking for library containing shl_load... nochecking for library containing getopt_long... none requiredchecking for library containing shm_open... -lrtchecking for library containing shm_unlink... none requiredchecking for library containing clock_gettime... none requiredchecking for library containing fdatasync... none requiredchecking for library containing shmget... none requiredchecking for library containing backtrace_symbols... none requiredchecking for library containing gethostbyname_r... none requiredchecking for library containing pthread_barrier_wait... -lpthreadchecking for library containing readline... noconfigure: error: readline library not foundIf you have readline already installed, see config.log for details on thefailure. It is possible the compiler isn't looking in the proper directory.Use --without-readline to disable readline support.报错显示为没有找到 readline 的库文件安装 readline-devel 包解决[root@test postgresql-14.6]# yum install readlineLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfilePackage readline-6.2-11.el7.x86_64 already installed and latest versionNothing to do[root@test postgresql-14.6]# yum install readline-devel.x86_64继续安装[root@test postgresql-14.6]# ./configure......checking for library containing readline... -lreadlinechecking for inflate in -lz... noconfigure: error: zlib library not foundIf you have zlib already installed, see config.log for details on thefailure. It is possible the compiler isn't looking in the proper directory.Use --without-zlib to disable zlib support.[root@test postgresql-14.6]# yum install zlibLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfilePackage zlib-1.2.7-20.el7_9.x86_64 already installed and latest versionNothing to do报错显示为没有找到 zlib 的库文件,同样安装 devel 包解决[root@test postgresql-14.6]# yum install zlib-devel.x86_64继续安装[postgres@test postgresql-14.6]$ ./configure --prefix=/usr/local/pgsql-14.6......configure: using LDFLAGS= -Wl,--as-neededconfigure: creating ./config.statusconfig.status: creating GNUmakefileconfig.status: creating src/Makefile.globalconfig.status: creating src/include/pg_config.h./config.status: line 1378: src/include/stamp-h: Permission deniedconfig.status: creating src/include/pg_config_ext.hconfig.status: src/include/pg_config_ext.h is unchanged./config.status: line 1382: src/include/stamp-ext-h: Permission deniedconfig.status: creating src/interfaces/ecpg/include/ecpg_config.hconfig.status: src/interfaces/ecpg/include/ecpg_config.h is unchanged./config.status: line 1384: src/interfaces/ecpg/include/stamp-h: Permission deniedconfig.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.sconfig.status: linking src/backend/port/posix_sema.c to src/backend/port/pg_sema.cconfig.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.cconfig.status: linking src/include/port/linux.h to src/include/pg_config_os.hconfig.status: linking src/makefiles/Makefile.linux to src/Makefile.port[postgres@test postgresql-14.6]$ exitlogout[root@test postgresql-14.6]# mkdir /usr/local/pgsql-14.6[root@test postgresql-14.6]# chown postgres:postgres /usr/local/pgsql-14.6/[root@test postgresql-14.6]# su - postgresLast login: Tue Feb 28 10:01:38 CST 2023 on pts/1[postgres@test ~]$ cd /opt/postgresql/soft/postgresql-14.6[postgres@test postgresql-14.6]$ make......gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 isolation_main.o pg_regress.o -L../../../src/port -L../../../src/common -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql-14.6/lib',--enable-new-dtags -lpgcommon -lpgport -lz -lreadline -lpthread -lrt -ldl -lm -o pg_isolation_regressmake[2]: Leaving directory `/opt/postgresql/soft/postgresql-14.6/src/test/isolation'make -C test/perl allmake[2]: Entering directory `/opt/postgresql/soft/postgresql-14.6/src/test/perl'make[2]: Nothing to be done for `all'.make[2]: Leaving directory `/opt/postgresql/soft/postgresql-14.6/src/test/perl'make[1]: Leaving directory `/opt/postgresql/soft/postgresql-14.6/src'make -C config allmake[1]: Entering directory `/opt/postgresql/soft/postgresql-14.6/config'make[1]: Nothing to be done for `all'.make[1]: Leaving directory `/opt/postgresql/soft/postgresql-14.6/config'[postgres@test postgresql-14.6]$ make install......make -C config installmake[1]: Entering directory `/opt/postgresql/soft/postgresql-14.6/config'/bin/mkdir -p '/usr/local/pgsql-14.6/lib/pgxs/config'/bin/install -c -m 755 ./install-sh '/usr/local/pgsql-14.6/lib/pgxs/config/install-sh'/bin/install -c -m 755 ./missing '/usr/local/pgsql-14.6/lib/pgxs/config/missing'make[1]: Leaving directory `/opt/postgresql/soft/postgresql-14.6/config'5、创建软连接,方便以后升级[postgres@test pgsql-14.6]$ exitlogout[root@test postgresql-14.6]# ln -s /usr/local/pgsql-14.6/ /usr/local/pgsql6、配置环境变量[postgres@test ~]$ vim .bash_profile#末尾添加这些信息:export PATH=/usr/local/pgsql/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH[postgres@test ~]$ source .bash_profile7、初始化环境[postgres@test ~]$ export PGDATA=/opt/postgresql/pgdata[postgres@test ~]$ mkdir /opt/postgresql/pgdata[postgres@test ~]$ initdbThe files belonging to this database system will be owned by user "postgres".This user must also own the server process.The database cluster will be initialized with locale "en_US.UTF-8".The default database encoding has accordingly been set to "UTF8".The default text search configuration will be set to "english".Data page checksums are disabled.fixing permissions on existing directory /opt/postgresql/pgdata ... okcreating subdirectories ... okselecting dynamic shared memory implementation ... posixselecting default max_connections ... 100selecting default shared_buffers ... 128MBselecting default time zone ... Asia/Shanghaicreating configuration files ... okrunning bootstrap script ... okperforming post-bootstrap initialization ... oksyncing data to disk ... okinitdb: warning: enabling "trust" authentication for local connectionsYou can change this by editing pg_hba.conf or using the option -A, or--auth-local and --auth-host, the next time you run initdb.Success. You can now start the database server using:pg_ctl -D /opt/postgresql/pgdata -l logfile start8、启动数据库[postgres@test ~]$ pg_ctl -D /opt/postgresql/pgdata -l logfile start[postgres@test ~]$ ps -ef | grep postgresroot 75725 25505 0 14:59 pts/0 00:00:00 su - postgrespostgres 75729 75725 0 14:59 pts/0 00:00:00 -bashpostgres 75755 75729 0 15:00 pts/0 00:00:00 ps -efpostgres 75756 75729 0 15:00 pts/0 00:00:00 grep --color=auto postgrespostgres 122926 1 0 Feb28 ? 00:00:00 /usr/local/pgsql-14.6/bin/postgres -D /opt/postgresql/pgdatapostgres 122928 122926 0 Feb28 ? 00:00:00 postgres: checkpointerpostgres 122929 122926 0 Feb28 ? 00:00:00 postgres: background writerpostgres 122930 122926 0 Feb28 ? 00:00:00 postgres: walwriterpostgres 122931 122926 0 Feb28 ? 00:00:00 postgres: autovacuum launcherpostgres 122932 122926 0 Feb28 ? 00:00:01 postgres: stats collectorpostgres 122933 122926 0 Feb28 ? 00:00:00 postgres: logical replication launcher安装 libxml2
1、上传安装包[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz2、解压缩[postgres@test soft]$ xz -d libxml2-2.9.9.tar.xz[postgres@test soft]$ tar -xvf libxml2-2.9.9.tar3、安装[postgres@test soft]$ cd libxml2-2.9.9[postgres@test libxml2-2.9.9]$ ./configure --prefix=/usr/local/libxml2[postgres@test libxml2-2.9.9]$ make && make install......make[4]: Entering directory `/opt/postgresql/soft/libxml2-2.9.9/python'CC libxml.lolibxml.c:14:20: fatal error: Python.h: No such file or directory#include <Python.h>^compilation terminated.make[4]: *** [libxml.lo] Error 1make[4]: Leaving directory `/opt/postgresql/soft/libxml2-2.9.9/python'make[3]: *** [all-recursive] Error 1make[3]: Leaving directory `/opt/postgresql/soft/libxml2-2.9.9/python'make[2]: *** [all] Error 2make[2]: Leaving directory `/opt/postgresql/soft/libxml2-2.9.9/python'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/opt/postgresql/soft/libxml2-2.9.9'make: *** [all] Error 2报错没有找到 python 的头文件,安装 python 开发包解决[postgres@test libxml2-2.9.9]$ exitlogout[root@test postgresql-14.6]# mkdir /usr/local/libxml2[root@test postgresql-14.6]# chown postgres:postgres /usr/local/libxml2[root@test postgresql-14.6]# yum install python-devel[root@test postgresql-14.6]# su - postgresLast login: Tue Feb 28 10:01:38 CST 2023 on pts/1[postgres@test ~]$ cd /opt/postgresql/soft/libxml2-2.9.9[postgres@test libxml2-2.9.9]$ make && make install安装 geos
1、上传安装包[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz2、解压缩[postgres@test soft]$ tar -xvf geos-3.6.6.tar.bz23、安装[postgres@test soft]$ cd geos-3.6.6[postgres@test geos-3.6.6]$ ./configure --prefix=/usr/local/geos[postgres@test geos-3.6.6]$ exitlogout[root@test postgresql-14.6]# mkdir /usr/local/geos[root@test postgresql-14.6]# chown postgres:postgres /usr/local/geos[root@test postgresql-14.6]# su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/geos-3.6.6[postgres@test geos-3.6.6]$ make && make install安装 proj
1、上传安装包[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz2、解压缩[postgres@test soft]$ tar -xvf proj-8.2.1.tar.gz3、安装[postgres@test soft]$ cd proj-8.2.1[postgres@test proj-8.2.1]$ ./configure --prefix=/usr/local/proj......enabled, pthreadchecking for SQLITE3... configure: error: Package requirements (sqlite3 >= 3.11) were not met:No package 'sqlite3' foundConsider adjusting the PKG_CONFIG_PATH environment variable if youinstalled software in a non-standard prefix.Alternatively, you may set the environment variables SQLITE3_CFLAGSand SQLITE3_LIBS to avoid the need to call pkg-config.See the pkg-config man page for more details.proj8 对于 sqlite 数据库有版本要求,重新安装 sqlite 数据库sqlite下载地址:SQLite Download Page上传并安装[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz[postgres@test soft]$ tar -xvf sqlite-autoconf-3410000.tar.gz[postgres@test soft]$ cd sqlite-autoconf-3410000[postgres@test sqlite-autoconf-3410000]$ ./configure --prefix=/usr/local/sqlite[postgres@test sqlite-autoconf-3410000]$ exit[root@test postgresql-14.6]# mkdir /usr/local/sqlite[root@test postgresql-14.6]# su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/sqlite-autoconf-3410000[postgres@test sqlite-autoconf-3410000]$ make && make install修改链接[root@test postgresql-14.6]# cd /usr/bin/[root@test postgresql-14.6]# mv sqlite3 sqlite3_old[root@test postgresql-14.6]# ln -s /usr/local/sqlite/bin/sqlite3 sqlite3继续安装 proj[root@test postgresql-14.6]$ su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/proj-8.2.1[postgres@test proj-8.2.1]$ ./configure --prefix=/usr/local/proj......checking for sqlite3... yeschecking for TIFF... configure: error: Package requirements (libtiff-4) were not met:No package 'libtiff-4' foundConsider adjusting the PKG_CONFIG_PATH environment variable if youinstalled software in a non-standard prefix.Alternatively, you may set the environment variables TIFF_CFLAGSand TIFF_LIBS to avoid the need to call pkg-config.See the pkg-config man page for more details.报错找不到 libtiff-4 包,服务器已经安装了[postgres@test proj-8.2.1]$ rpm -qa libtifflibtiff-4.0.3-35.el7.x86_64尝试安装开发包,发现可以解决问题[root@test postgresql-14.6]# yum install libtiff-devel继续安装 proj[postgres@test proj-8.2.1]# ./configure --prefix=/usr/local/proj.....checking for SQLITE3... yeschecking for sqlite3... yeschecking for TIFF... yeschecking for curl-config... not-foundconfigure: error: curl not found. If wanting to do a build without curl support (and thus without built-in networking capability), explictly disable it with --without-curl报错缺少 curl 包[root@test postgresql-14.6]# yum install curl继续安装 proj[postgres@test proj-8.2.1]# ./configure --prefix=/usr/local/proj[postgres@test proj-8.2.1]# exit[root@test postgresql-14.6]# mkdir /usr/local/proj[root@test postgresql-14.6]# chown postgres:postgres /usr/local/proj[root@test postgresql-14.6]# su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/proj-8.2.1[postgres@test ~]$ make && make install安装 gdal
1、上传安装包[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz2、解压缩[postgres@test soft]$ tar -xvf gdal-3.5.3.tar.gz3、安装[postgres@test soft]$ exit[root@test postgresql-14.6]# mkdir /usr/local/gdal[root@test postgresql-14.6]# chown postgres:postgres /usr/local/gdal[root@test postgresql-14.6]# su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/gdal-3.5.3[postgres@test gdal-3.5.3]# ./configure --prefix=/usr/local/gdal......checking for curl_global_init in -lcurl... yeschecking for SQLite3 library >= 3.0.0... disabledchecking for PROJ >= 6 library... checking for proj_create_from_wkt in -lproj... nochecking for internal_proj_create_from_wkt in -lproj... nochecking for internal_proj_create_from_wkt in -linternalproj... noconfigure: error: PROJ 6 symbols not found报错找不到 PROJ 包,添加环境变量到 /etc/profile 也不见效,选择手动指定proj安装目录的方式解决。应该再尝试在 /etc/ld.so.conf 中配置库包位置试试[postgres@test gdal-3.5.3]# ./configure --prefix=/usr/local/gdal --with-proj=/usr/local/proj/[postgres@test gdal-3.5.3]# make && make install安装 json-c
1、上传安装包[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz2、解压缩[postgres@test soft]$ tar -xvf json-c-0.10.tar.gz3、安装[postgres@test soft]$ exit[root@test postgresql-14.6]# mkdir /usr/local/jons-c[root@test postgresql-14.6]# chown postgres:postgres /usr/local/jons-c[root@test postgresql-14.6]# su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/json-c-0.10[postgres@test json-c-0.10]$ ./configure --prefix=/usr/local/json-c[postgres@test json-c-0.10]$ make && make install安装 postgis
1、上传安装包[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz2、解压缩[postgres@test soft]$ tar -xvf postgis-3.2.4.tar.gz3、安装[postgres@test postgis-3.2.4]# ./configure --prefix=/usr/local/postgis......checking libxml/xpathInternals.h usability... yeschecking libxml/xpathInternals.h presence... yeschecking for libxml/xpathInternals.h... yeschecking for xmlInitParser in -lxml2... yeschecking for geos-config... noconfigure: error: could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.[postgres@test postgis-3.2.4]# ./configure --prefix=/usr/local/postgis --with-geosconfig=/usr/local/bin/geos-config......configure: WARNING: "Could not find json-c"checking for PROTOBUFC... nolibprotobuf-c not found in pkg-configchecking protobuf-c/protobuf-c.h usability... nochecking protobuf-c/protobuf-c.h presence... nochecking for protobuf-c/protobuf-c.h... noconfigure: error: unable to find protobuf-c/protobuf-c.h using CPPFLAGS. You can disable MVT and Geobuf support using --without-protobuf报错找不到 protobuf-c 包,尝试使用 yum 安装,安装完成之后问题未解决手动下载 protobuf-c 进行安装安装 protobuf-c下载地址Releases · protobuf-c/protobuf-c · GitHub上传并安装[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz[postgres@test soft]# tar -xvf protobuf-c-1.4.1.tar.gz[postgres@test soft]$ exit[root@test postgresql-14.6]# mkdir /usr/local/protobuf-c[root@test postgresql-14.6]# chown postgres:postgres /usr/local/protobuf-c[root@test postgresql-14.6]# su - postgres[postgres@test soft]# cd /opt/postgresql/soft/protobuf-c-1.4.1[postgres@test protobuf-c-1.4.1]# ./configure --prefix=/usr/local/protobuf-c......checking whether g++ supports C++11 features with -std=c++11... yeschecking for protobuf... nochecking for protobuf... noconfigure: error: Package requirements (protobuf >= 2.6.0) were not met:No package 'protobuf' foundConsider adjusting the PKG_CONFIG_PATH environment variable if youinstalled software in a non-standard prefix.Alternatively, you may set the environment variables protobuf_CFLAGSand protobuf_LIBS to avoid the need to call pkg-config.See the pkg-config man page for more details.protobuf-c 依赖与 protobuf 包,需要先安装 protobuf 包安装 protobuf 包https://github.com/google/protobuf/releases上传并安装[postgres@test ~]$ cd /opt/postgresql/soft[postgres@test soft]$ rz[postgres@test soft]# tar -xvf protobuf-all-3.6.1.tar.gz[postgres@test soft]$ exit[root@test postgresql-14.6]# mkdir /usr/local/protobuf[root@test postgresql-14.6]# chown postgres:postgres /usr/local/protobuf[root@test postgresql-14.6]# su - postgres[postgres@test ~]$ cd /opt/postgresql/soft/protobuf-3.6.1[postgres@test protobuf-c-1.4.1]$ ./configure --prefix=/usr/local/protobuf[postgres@test protobuf-c-1.4.1]$ make && make install继续安装 protobuf-c[postgres@test protobuf-c-1.4.1]$ ./configure --prefix=/usr/local/protobuf-c[postgres@test protobuf-c-1.4.1]$ make && make install继续安装 postgis[postgres@test postgis-3.2.4]$ ./configure --prefix=/usr/local/postgis --with-geosconfig=/usr/local/bin/geos-config如果还报 protobuf-c 找不到的问题,把 protobuf-c 的库加入到环境变量中去vim /etc/profileexport LD_LIBRARY_PATH=/usr/local/protobuf/lib:$LD_LIBRARY_PATH[postgres@test postgis-3.2.4]$ make && make installpostgresql 接入 postgis 扩展
1、创建一个数据库[postgres@test ~]$ psqlgisdb=# create database gisdb;2、加载 postgis 插件gisdb=# create extension postgis;ERROR: could not load library "/usr/local/pgsql-14.6/lib/postgis-3.so": libgeos_c.so.1: cannot open shared object file: No such file or directory将所安装的软件库都加入到共享库解决上述问题[root@test ~]# vim /etc/ld.so.conf/usr/local/gdal/lib/usr/local/geos/lib/usr/local/proj/lib/usr/local/pgsql/lib/usr/local/json-c/lib/usr/local/libxml2/lib/usr/local/protobuf/lib/usr/local/protobuf-c/lib[root@test ~]# ldconfiggisdb=# create extension postgis;CREATE EXTENSION至此安装完成

http://www.ppmy.cn/news/1556533.html

相关文章

设计模式の建造者适配器桥接模式

文章目录 前言一、建造者模式二、适配器模式2.1、对象适配器2.2、接口适配器 三、桥接模式 前言 本篇是关于设计模式中建造者模式、适配器模式&#xff08;3种&#xff09;、以及桥接模式的笔记。 一、建造者模式 建造者模式是属于创建型设计模式&#xff0c;通过一步步构建一个…

【嵌入式——QT】QT多线程编程

这里介绍的是moveToThread的方式&#xff0c;继承QThread的方式可以参考我的另一篇文章【嵌入式——QT】QThread创建多线程 编程实现 首先创建一个类&#xff0c;但是这个类一定要继承QObject SerialWorker.h #ifndef SERIALWORKER_H #define SERIALWORKER_H#include <QO…

GPT 时代,精进编程思维 + 熟练 Prompt 是否是新的编程范式?

GPT时代程序员已经不用写代码了&#xff1f; 真实案例&#xff1a;我用GPT的一天 早上9点&#xff0c;我打开电脑&#xff0c;开始和GPT结对编程&#xff1a; 我&#xff1a;帮我写个并发队列 GPT&#xff1a;好的&#xff0c;这是一个线程安全的... 我&#xff1a;等等&…

226. 翻转二叉树(java)

题目描述&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1…

FFmpeg功能使用

步骤&#xff1a;1&#xff0c;安装FFmpeg Download FFmpeg 在这里点击->Windows builds from gyan.dev&#xff1b;如下图 会跳到另外的下载界面&#xff1a; 在里面下拉选择点击ffmpeg-7.1-essentials_build.zip&#xff1a; 即可下载到FFmpeg&#xff1b; 使用&#…

【高效开发工具系列】PPT批量修改字体

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

FPGA 第13讲 计数器

时间:2024.12.14 一、学习内容 1.计数器 计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字 系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功 能。 计数器在数字系统中应用广泛,如在电子计算机的控制器中对指…

Android RXjava实现子线程做耗时操作,比new Thread和handler更香

1.首先是在build.gradle里面引用下面两个库 implementation ‘io.reactivex.rxjava2:rxandroid:2.0.1’ implementation ‘io.reactivex.rxjava2:rxjava:2.0.7’ 2.创建CompositeDisposable 。CompositeDisposable是一个存放Disposable的集合,它是一个容器 CompositeDisposable…