RockyLinux8 & RockyLinux9安装postgresql16-devel开发包

本文详细描述了如何在RockyLinux8和9系统中安装PostgreSQL16服务器,包括创建用户、添加pgdg仓库、安装必要的开发包、启用扩展和开发环境,以及设置服务初始化和启动。

1、PG的插件扩展有些需要自行编译,需要安装PG开发包

2、RockyLinux8安装

#创建用户先
useradd postgres

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql16-server
#安装开发包依赖
sudo dnf install epel-release -y 
sudo dnf --enablerepo=powertools install perl-IPC-Run -y

dnf install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib zlib-devel perl python36 tcl openssl ncurses-devel openldap pam perl-IPC-Run libicu-devel

#安装扩展
sudo dnf install -y postgresql16-contrib
#安装开发包
sudo dnf install -y postgresql16-devel

sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

3、RockyLinux9安装

#创建用户先
useradd postgres

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql16-server
#安装开发包依赖 
sudo dnf install epel-release -y 
#Powertools is known as crb under RL9. dnf config-manager --enable crb
sudo dnf config-manager --set-enabled crb

dnf install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib zlib-devel perl python36 tcl openssl ncurses-devel openldap pam perl-IPC-Run libicu-devel

#安装扩展
sudo dnf install -y postgresql16-contrib
#安装开发包
sudo dnf install -y postgresql16-devel

sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

<think>嗯,用户现在的问题是关于在AlmaLinux9安装pg_partman4.6.7时缺少postgresql16-devel包的解决方法。之前已经给出过安装步骤,现在用户更具体地询问如何解决缺少这个包的问题,可能是在安装过程中遇到了错误。首先,我需要确认postgresql16-devel包的作用。这个包通常包含PostgreSQL的开发头文件和库文件,编译pg_partman这样的扩展时需要这些文件。如果缺少,会导致编译失败,比如出现找不到pg_config或者某些头文件的错误。接下来,用户可能已经按照之前的步骤尝试安装,但系统提示找不到postgresql16-devel包。这可能是因为默认的仓库中没有这个包,或者用户没有启用正确的仓库。AlmaLinux属于RHEL系,可能需要添加EPEL仓库或者PostgreSQL的官方仓库。 解决方法应该包括检查仓库配置,添加正确的仓库,然后安装。可能需要提到使用dnf命令启用PowerTools或CRB,以及从PostgreSQL官网下载repo配置。另外,如果包确实不存在,可能需要手动安装rpm包或者从源码编译,但这种情况较少,应该优先推荐通过仓库安装。 另外,用户可能需要验证安装后的结果,比如检查包是否安装成功,或者尝试重新编译pg_partman。可能还需要提醒用户以正确的用户权限执行安装步骤,比如使用sudo,或者确保postgres用户有足够的权限。最后,生成相关问题需要考虑用户接下来可能遇到的问题,比如依赖关系、编译错误处理、仓库配置等。</think>### AlmaLinux 9 安装 pg_partman 4.6.7 时缺少 postgresql16-devel 包的解决方法 #### 一、问题原因分析 1. **依赖关系** pg_partman 是 PostgreSQL 的扩展模块,其编译过程需要访问 PostgreSQL 的 C 语言头文件(如`postgres.h`)和动态链接库[^1]。这些文件包含在`postgresql16-devel`包中,其数学表达式可表示为: $$ \text{编译成功} \iff \exists \text{postgresql16-devel} \land \text{其他依赖项} $$ 若未安装该包,将触发`pg_config not found`或`头文件缺失`错误。 2. **系统仓库配置** AlmaLinux 9 默认仓库可能未包含 PostgreSQL 16开发包,需手动启用特定仓库[^2]。 --- #### 二、解决方法 1. **检查仓库配置** 确认已启用 PostgreSQL 官方仓库和 EPEL 仓库: ```bash sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo dnf config-manager --set-enabled crb # 启用 CodeReady Builder 仓库 sudo dnf install epel-release ``` 2. **安装开发包** 强制指定仓库安装: ```bash sudo dnf install postgresql16-devel --enablerepo=pgdg16,crb,epel ``` 3. **验证安装** ```bash rpm -ql postgresql16-devel | grep pg_config # 应输出路径如/usr/pgsql-16/bin/pg_config ``` 4. **编译环境修复(可选)** 若仍提示头文件缺失,手动添加头文件路径: ```bash export C_INCLUDE_PATH=/usr/pgsql-16/include/server/ make PG_CONFIG=/usr/pgsql-16/bin/pg_config ``` --- #### 三、深度技术解析 - **动态链接库依赖** `postgresql16-devel`包含符号链接库`libpq.so`,其版本需满足: $$ \text{libpq.so.5.16} \geq \text{pg_partman 4.6.7 要求的最低版本} $$ 可通过`ldd /usr/pgsql-16/bin/postgres`验证链接完整性[^3]。 - **编译器兼容性** GCC 编译器版本需支持 C11 标准,AlmaLinux 9 默认 GCC 11.2.1 满足要求,验证命令: $$ gcc --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' $$ ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值