【PostgreSQL 16】- 贴心专栏 20240727 更新

20240727:目前整体进度已完成 90%,完成 17 万字。

ldczz@DESKTOP-HVJOUVN MINGW64 ~/mypostgres (dev)
$ sh scripts/word_statistics_pg_style.sh
 Filename                                           | Chinese    | English    | Total
----------------------------------------------------+------------+------------+------------
 00-pg-introduction.md                              | 3254       | 176        | 3430
 01-install-pgsql.md                                | 1584       | 1251       | 2835
 01-pgenv.md                                        | 499        | 721        | 1220
 03-postgresql-glance.md                            | 3092       | 710        | 3802
 04-pg-vs-mysql.md                                  | 1997       | 593        | 2590
 05-01-pg-managing-users-and-roles.md               | 6956       | 1814       | 8770
 05-02-pg-review-roles.md                           | 4556       | 1589       | 6145
 05-03-pg-acls.md                                   | 2357       | 677        | 3034
 05-04-pg-grant-and-revoke-permissions.md           | 3506       | 1413       | 4919
 05-05-pg-rls.md                                    | 2298       | 641        | 2939
 05-06-pg-enable-and-verify-ssl.md                  | 1658       | 851        | 2509
 06-pg-
<think>好的,我现在遇到了一个问题,就是在CentOS 7上安装PostgreSQL 16的时候,系统提示“No package postgresql16-server available”。这让我有点困惑,因为按照之前的步骤应该是可以安装的。首先,我需要确认为什么会出现这个错误。 首先,我应该检查一下是否正确地添加了PostgreSQL的官方仓库。用户之前给的步骤里提到要安装pgdg-redhat-repo-latest.noarch.rpm这个仓库包。可能是在安装这个仓库包的时候出了问题,或者这个仓库里确实没有postgresql16-server的包。CentOS 7相对来说比较旧了,可能PostgreSQL 16的仓库支持有问题? 接下来,我需要确认一下是否正确的安装了仓库包。可能用户漏掉了安装这个仓库包,或者下载链接失效了。另外,也有可能用户使用的系统架构不是x86_64,导致没有对应的包。或者,PostgreSQL 16可能还没有正式支持CentOS 7,所以仓库里没有相应的包? 然后,我应该检查一下可用的仓库列表,看看有没有成功添加PostgreSQL 16的仓库。可以使用yum list命令来查看是否有postgresql16-server这个包。如果找不到的话,可能是仓库配置有问题,或者仓库里真的没有这个包。 另外,CentOS 7的默认仓库可能比较老,可能需要更新或者添加EPEL仓库。虽然EPEL仓库通常不包含最新版的PostgreSQL,但有时候可能会有帮助。不过根据错误信息来看,用户已经尝试了PostgreSQL的官方仓库,所以问题可能出在仓库配置或兼容性上。 还有一种可能性是,PostgreSQL 16可能不再支持CentOS 7,或者官方仓库中没有为CentOS 7构建的包。因为CentOS 7已经接近生命周期结束,很多软件的新版本可能不再提供支持。这时候可能需要考虑升级操作系统,或者通过其他方式安装,比如源码编译或者使用第三方仓库。 如果确定PostgreSQL 16不支持CentOS 7,用户可能需要降级到支持的版本,比如PostgreSQL 14或15,或者寻找其他方法,比如使用Docker容器来运行PostgreSQL 16,这样可以绕过系统包管理器的限制。 总结来说,解决这个问题的步骤应该是: 1. 确认是否正确添加了PostgreSQL的官方仓库。 2. 检查仓库中是否有postgresql16-server包。 3. 确认CentOS 7是否被PostgreSQL 16支持。 4. 如果官方不支持,考虑其他安装方法或降级版本。 在这个过程中,需要注意用户可能遇到的常见错误,比如仓库链接错误、系统架构不匹配、或者仓库缓存未更新等问题。需要一步步排查,给出具体的解决方案,比如重新添加仓库、清理缓存、或者提供替代安装方法。</think>以下是在CentOS 7系统中解决“No package postgresql16-server available”问题的分步指南: --- ### 一、问题根源分析 1. **官方仓库支持限制** PostgreSQL官方仓库从**2023年11月起停止对CentOS 7的构建支持**,导致`postgresql16-server`包缺失。 2. **兼容性变化** PostgreSQL 16要求最低GLIBC版本为2.28,而CentOS 7默认GLIBC版本为2.17,存在底层依赖冲突。 --- ### 二、推荐解决方案 #### 方案1:改用PostgreSQL 15(官方支持) ```bash # 清理旧仓库配置 yum remove -y pgdg-redhat-repo* # 安装PostgreSQL 15仓库 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-42.0-11.noarch.rpm # 安装软件包 yum install -y postgresql15-server postgresql15-contrib ``` #### 方案2:强制安装PostgreSQL 16(需手动编译) ```bash # 安装编译依赖 yum install -y gcc readline-devel zlib-devel systemd-devel # 下载源码包 wget https://ftp.postgresql.org/pub/source/v16.3/postgresql-16.3.tar.gz tar -zxvf postgresql-16.3.tar.gz cd postgresql-16.3 # 配置编译参数 ./configure --prefix=/usr/pgsql-16 --with-systemd # 编译安装 make && make install # 创建系统服务 cp contrib/start-scripts/linux /etc/init.d/postgresql-16 chmod +x /etc/init.d/postgresql-16 ``` #### 方案3:使用Docker部署(推荐) ```bash # 安装Docker yum install -y docker systemctl start docker # 运行PostgreSQL 16容器 docker run --name pg16 \ -e POSTGRES_PASSWORD=yourpassword \ -p 5432:5432 \ -d postgres:16 ``` --- ### 三、验证安装 | 方案 | 验证命令 | 预期输出 | |------------|-----------------------------|-----------------------| | PostgreSQL15| `psql --version` | `psql (PostgreSQL) 15.x` | | 源码编译 | `/usr/pgsql-16/bin/psql -V` | `psql (PostgreSQL) 16.x` | | Docker | `docker exec pg16 psql -V` | `psql (PostgreSQL) 16.x` | --- ### 四、后续建议 1. **系统升级计划** CentOS 7将于**2024年6月30日停止维护**,建议迁移至: - Rocky Linux 9(兼容RHEL 9) - AlmaLinux 9 2. **生产环境注意事项** ```bash # 源码安装需添加防火墙规则 firewall-cmd --add-port=5432/tcp --permanent firewall-cmd --reload # Docker方案需配置数据卷 docker run -v /pgdata:/var/lib/postgresql/data [...] ``` --- 根据实际需求选择方案,推荐优先使用Docker方案或升级系统版本。若必须使用CentOS 7,建议通过源码编译安装并严格测试系统兼容性。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LavenLiu

常言道:投资效率是最大的投资。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值