pg gem将0.19升级到0.20 - LoadError:不兼容的库版本

时间:2017-04-06 22:35:21

标签: ruby ruby-on-rails-4 rvm capistrano3 pg

我使用Capistrano 3来管理我在AWS上的部署,在OS X上开发并在Ubuntu上服务。

每当我升级Gemfile并捆绑时,我都会继续遇到以下问题:

  01 rake aborted!
  01 LoadError: incompatible library version - /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg_ext.so
  01 /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:4:in `require'
  01 /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:4:in `<top (required)>'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
  01 /usr/local/rvm/gems/ruby-2.3.3@global/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
  01 /var/www/<app_name>/releases/20170406223132/config/application.rb:7:in `<top (required)>'
  01 /var/www/<app_name>/releases/20170406223132/Rakefile:4:in `require'
  01 /var/www/<app_name>/releases/20170406223132/Rakefile:4:in `<top (required)>'
  01 /var/www/<app_name>/shared/bundle/ruby/2.3.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
  01 (See full trace by running task with --trace)

我甚至不知道从哪里开始排除故障。这是RVM的问题吗?这是捆绑器的问题吗?我的应用程序?

我已尝试在this RVM issue上找到的建议,但无济于事。建议好吗?

另外,如果有一种方法可以使用Capistrano来管理它,那么这是首选,因为Capistrano的目的是远程系统管理。但如果我 登录服务器,我会 - 我不知道为什么我应该这样做。

更新 - 我已经完全破坏了RVM gemset并让它尝试完全重新安装&#34;所有宝石 - 仍会产生与以下相同的错误。

1 个答案:

答案 0 :(得分:1)

这种错误通常意味着目标计算机上安装的PostgreSQL版本出现了问题 - 要么太旧,要么它们不兼容。