2017-04-06 86 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版本出現問題 - 要麼太舊,要麼它們在某種程度上不兼容。