2017-04-06 81 views
0

我使用Capistrano 3管理我的AWS部署,在OS X上开发并在Ubuntu上提供服务。pg gem升级0.19到0.20 - LoadError:不兼容库版本

我仍然遇到了以下问题,每当我升级我的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/[email protected]/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `require' 
    01 /usr/local/rvm/gems/[email protected]/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require' 
    01 /usr/local/rvm/gems/[email protected]/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each' 
    01 /usr/local/rvm/gems/[email protected]/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require' 
    01 /usr/local/rvm/gems/[email protected]/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each' 
    01 /usr/local/rvm/gems/[email protected]/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require' 
    01 /usr/local/rvm/gems/[email protected]/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,并试图完全“重新安装”所有宝石 - 仍导致如下相同的错误。

+1

我想说这是目标机器上PostgreSQL版本的问题。那是什么? – katafrakt

+0

@katafrakt - 赢家赢家 - 就是这样。我有一个9.6客户端的9.5服务器。 – CDub

+0

奖励积分现在:现在我越来越: 'LoadError:不兼容的库版本/共享/包/红宝石/ 2.3.0 /宝石/引入nokogiri-1.7.1/lib目录/引入nokogiri/nokogiri.so' 在Capistrano的。 再往下看,我得到: 'LoadError:无法加载这样的文件 - nokogiri/2.3/nokogiri' – CDub

回答

1

这种错误通常意味着您的目标机器上安装的PostgreSQL版本出现问题 - 要么太旧,要么它们在某种程度上不兼容。