应启用pgdg官方仓库、禁用系统postgresql模块、显式安装指定主版本(如postgresql15-server),再手动初始化数据库并启用systemd服务。

在 Rocky Linux、AlmaLinux 或 RHEL 9/8 等 dnf 系统中安装 PostgreSQL,关键不是“能不能装”,而是“装哪个版本、怎么锁定、会不会被自动升级”。直接用系统默认模块(如 postgresql:10)往往装到老旧版本;而跳过官方仓库、手动下 rpm 又容易破坏依赖。最稳妥的做法是:启用 PostgreSQL 官方仓库 + 显式禁用系统模块 + 指定主版本安装。
添加官方仓库并禁用系统模块
Rocky Linux 9 自带的 postgresql 模块流默认只提供旧版(如 10 或 12),必须先切断它,再接入官方源:
- 下载并安装 PGDG 官方仓库包(注意 EL-9 对应 Rocky 9):
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm - 禁用系统自带的 postgresql 模块(这步不能省,否则 dnf 会优先选模块流):
sudo dnf -qy module disable postgresql
安装指定版本的服务端与扩展工具
官方仓库按主版本分包,例如 postgresql15-server 表示 PostgreSQL 15 主发行版。推荐同时安装 contrib(含常用函数、索引类型等):
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 安装 PostgreSQL 15:
sudo dnf install -y postgresql15-server postgresql15-contrib - 验证是否装对:
psql --version应输出类似psql (PostgreSQL) 15.10
初始化数据库集群
服务端包安装后,不会自动初始化数据目录——这是和 Ubuntu/Debian 的关键区别。必须手动执行初始化命令,路径由版本号决定:
- 运行初始化脚本:
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb - 成功后,数据目录位于
/var/lib/pgsql/15/data,配置文件、日志、WAL 全在里面 - 该命令已自动设置 SELinux 上下文和目录权限(
chmod 700),无需额外 chown
启用服务并验证运行
初始化完成后,注册为 systemd 服务,启动并确认状态:
- 启用开机自启并启动:
sudo systemctl enable postgresql-15 && sudo systemctl start postgresql-15 - 检查服务是否就绪:
sudo systemctl status postgresql-15—— 看到active (running)即可 - 快速验证数据库可连:
sudo -u postgres psql -c "SELECT version();"










