AWS EC2 Linux服务器安装pg 0.17.1 gem失败求助
解决AWS EC2 Linux上安装pg gem(0.17.1)的编译错误
嘿,这个问题我碰到过好多次了——你遇到的是pg gem编译时缺少PostgreSQL开发依赖的经典问题,错误日志里的找不到pg_config和libpq-fe.h header就是最直接的线索。别慌,按下面的步骤来就能搞定:
第一步:安装PostgreSQL开发依赖包
你的EC2服务器是Linux系统(从环境来看是Amazon Linux/RHEL系),直接用yum安装PostgreSQL的开发工具包就行,这个包里包含了编译pg gem必需的头文件和配置工具:
sudo yum install postgresql-devel
如果你的EC2是Ubuntu/Debian系(虽然你用rbenv+Ruby2.3.1更偏向Amazon Linux),就换成apt命令:
sudo apt-get install libpq-dev
第二步:安装指定版本的pg gem
依赖装完后,直接安装你需要的0.17.1版本,记得明确指定版本号(避免默认装成最新版):
gem install pg -v '0.17.1'
如果之前尝试安装失败残留了旧版本文件,可以先卸载清理:
gem uninstall pg -v '0.21.0'
万一还是不行?手动指定pg_config路径
如果安装时还是提示找不到pg_config,先定位它的实际位置:
which pg_config
然后用这个路径手动指定配置参数安装:
gem install pg -v '0.17.1' --with-pg-config=/usr/bin/pg_config
(把路径换成你which pg_config得到的实际结果)
为啥会出这个问题?
pg是Ruby的原生扩展,编译它需要PostgreSQL提供的libpq-fe.h头文件和pg_config配置工具,这些组件默认不会包含在EC2的基础镜像里,必须手动安装开发依赖包才行。另外你的Ruby2.3.1和pg 0.17.1版本是完全兼容的,不用担心版本匹配问题。
内容的提问来源于stack exchange,提问作者DanielsV
相关产品推荐
相关产品推荐

