You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 16是否兼容Oracle Linux 7.9?安装失败求助

在Oracle Linux 7.9安装PostgreSQL 16的解决方案

PostgreSQL官方从16版本开始,停止了对RHEL7/CentOS7/Oracle Linux7系列发行版的官方RPM包支持,这是你找不到安装包的核心原因。以下是两种可行的安装方式:

方法一:源码编译安装(推荐,稳定可控)

1. 安装编译依赖

执行以下命令安装编译所需的工具和依赖库:

sudo yum install -y gcc make zlib-devel readline-devel openssl-devel libxml2-devel libxslt-devel perl-devel python3-devel

2. 下载并解压源码包

下载PostgreSQL 16的源码包(以16.3版本为例),解压后进入目录:

wget https://ftp.postgresql.org/pub/source/v16.3/postgresql-16.3.tar.gz
tar zxf postgresql-16.3.tar.gz
cd postgresql-16.3

3. 配置编译参数

指定安装路径并启用常用功能(可根据需求调整参数):

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-libxslt --with-python

4. 编译并安装

用多线程加速编译,然后完成安装:

make -j$(nproc)
sudo make install

5. 初始化数据库与配置服务

  • 创建postgres用户(若系统中不存在):
    sudo useradd -m postgres
    sudo chown -R postgres:postgres /usr/local/pgsql
    
  • 初始化数据库实例:
    sudo -u postgres /usr/local/pgsql/bin/initdb -D /var/lib/pgsql/16/data
    
  • 创建systemd服务文件/etc/systemd/system/postgresql-16.service,内容如下:
    [Unit]
    Description=PostgreSQL 16 database server
    After=network.target
    
    [Service]
    Type=forking
    User=postgres
    Group=postgres
    ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /var/lib/pgsql/16/data -s -o "-p 5432"
    ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /var/lib/pgsql/16/data -s -m fast
    ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D /var/lib/pgsql/16/data -s
    Restart=on-failure
    RestartSec=3
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动服务并设置开机自启:
    sudo systemctl daemon-reload
    sudo systemctl start postgresql-16
    sudo systemctl enable postgresql-16
    

6. 配置环境变量

添加全局环境变量,方便直接调用PostgreSQL命令:

echo 'export PATH=/usr/local/pgsql/bin:$PATH' | sudo tee -a /etc/profile.d/postgresql-16.sh
sudo -u postgres echo 'export PATH=/usr/local/pgsql/bin:$PATH' >> ~postgres/.bashrc
source /etc/profile.d/postgresql-16.sh

方法二:尝试第三方兼容RPM包

部分社区维护的源可能提供针对Oracle Linux7的PostgreSQL16兼容包,可尝试添加以下repo文件(注意:官方源已停止更新EL7的16版本包,此方法可能失效):
创建/etc/yum.repos.d/pgsql16-el7.repo:

[pgsql16-el7]
name=PostgreSQL 16 for EL7
baseurl=https://yum.postgresql.org/16/redhat/rhel-7-x86_64/
enabled=1
gpgcheck=1
gpgkey=https://www.postgresql.org/media/keys/ACCC4CF8.asc

添加后执行yum install postgresql16-server尝试安装,若提示无包则回到方法一。

内容的提问来源于stack exchange,提问作者jun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:03:20