CentOS 7环境下无法安装PostgreSQL 9.5/PostGIS 2.3求助
问题分析与解决方案
一、关于rpm安装提示的说明
你看到的package pgdg-centos95-9.5-3.noarch (which is newer than pgdg-centos95-9.5-2.noarch) is already installed是正常提示,不是错误。这说明你的系统里已经预先安装了更新版本的PostgreSQL YUM仓库配置包(9.5-3版),比教程里的9.5-2版更晚,所以不需要重复安装旧版本的仓库包,这一步其实已经完成了仓库配置。
二、为什么yum list | grep pgdg95结果不符合教程?
你用grep pgdg95的搜索逻辑有问题:
- 这个命令只会显示已经从pgdg95仓库安装的包,而你此时还没安装PostgreSQL和PostGIS相关组件,自然看不到对应的包。
- 教程里第三步应该是查看仓库中可用的PostgreSQL包,正确的命令应该是:
这样就能看到pgdg95仓库里所有待安装的PostgreSQL 9.5相关包了。yum list available | grep postgresql95
三、正确安装PostgreSQL 9.5 + PostGIS 2.3的步骤
既然仓库已经配置完成,直接按以下步骤安装即可:
1. 确认pgdg95仓库已启用
先检查仓库状态,确保它在可用列表里:
sudo yum repolist enabled | grep pgdg
如果能看到pgdg95相关的仓库条目,说明配置正常。
2. 安装PostgreSQL 9.5
# 安装服务器和客户端核心包 sudo yum install postgresql95-server postgresql95 # 初始化数据库 sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb # 设置开机自启并启动服务 sudo systemctl enable postgresql-9.5 sudo systemctl start postgresql-9.5
3. 安装PostGIS 2.3
PostGIS 2.3对应PostgreSQL 9.5的包名是postgis23_95,直接安装即可:
sudo yum install postgis23_95
4. 启用PostGIS扩展
安装完成后,进入PostgreSQL数据库启用PostGIS:
# 切换到postgres用户 sudo -u postgres psql # 在目标数据库中创建PostGIS扩展(比如默认的postgres数据库) CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; # 验证安装成功 SELECT postgis_version();
如果返回PostGIS 2.3的版本信息,就说明安装完成了。
四、如果遇到仓库找不到包的情况
如果执行安装命令时提示包不存在,可以先清理缓存并更新仓库:
sudo yum clean all sudo yum makecache
再重新尝试安装。
内容的提问来源于stack exchange,提问作者khajlk
相关产品推荐
相关产品推荐

