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

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的卸载和安装步骤。

  • 升级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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:30:39