Ruby 3.0.4搭配Postgres 14执行rake db:create触发段错误求助
解决Rake db:create时PostgreSQL连接段错误问题
环境配置
Ruby 3.0.4 Rails 6.1.7 pg 1.4.5 postgresql 14.6
database.yml配置
development: adapter: postgresql encoding: utf8 database: olio_development username: postgres password: password pool: 5 host: 127.0.0.1 port: 5432 gssencmode: disable
问题详情
执行rake db:create时触发段错误:
/home/usr/.rvm/gems/ruby-3.0.4/gems/pg-1.4.5/lib/pg/connection.rb:626: [BUG] Segmentation fault at 0x00007fd79729a140 ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x86_64-linux] -- Control frame information ----------------------------------------------- c:0050 p:---- s:0275 e:000274 CFUNC :connect_poll c:0049 p:0543 s:0271 e:000270 METHOD /home/suganya/.rvm/gems/ruby-3.0.4/gems/pg-1.4.5/lib/pg/connection.rb:626
已确认PostgreSQL服务在127.0.0.1:5432正常运行。
解决方案建议
重新编译pg gem:段错误多因pg gem编译时关联的PostgreSQL库与当前系统安装版本不匹配。先卸载现有pg gem:
gem uninstall pg找到PostgreSQL 14的
pg_config路径(通常为/usr/pgsql-14/bin/pg_config或/usr/bin/pg_config),重新安装指定版本的pg gem并指定该路径:gem install pg -v 1.4.5 -- --with-pg-config=/path/to/pg_config安装PostgreSQL开发依赖:确保系统安装了PostgreSQL 14的开发包,否则pg gem无法正确编译:
- Ubuntu/Debian系统:
sudo apt-get install postgresql-14-dev - CentOS/RHEL系统:
sudo yum install postgresql14-devel
安装完成后重新执行pg gem的卸载和安装步骤。
- Ubuntu/Debian系统:
升级pg gem版本:检查Ruby 3.0.4与pg 1.4.5的兼容性,尝试升级到适配的pg版本(如1.5.x及以上):
bundle update pg重置Ruby环境:RVM管理的Ruby环境可能存在库冲突,尝试重新安装Ruby 3.0.4:
rvm reinstall 3.0.4重新安装后执行
bundle install重新加载所有依赖。
内容的提问来源于stack exchange,提问作者Suganya Selvarajan
相关产品推荐
相关产品推荐

