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
相关产品推荐
相关产品推荐

