2014-09-29 43 views
0

乘客報告無法找到gem json的錯誤。雖然其他寶石可以找到,因爲它們安裝在bundle install。不過,json是由ruby 2.1.1默認安裝的。捆綁無法在nginx/passenger中找到全局共享gem

它是捆綁顯示JSON已被刪除。

$ bundle show json 
The gem json has been deleted. It was installed at: 
/home/canoe/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/json-1.8.1 

但是寶石仍然可以在系統上找到它。
$寶石列表JSON
JSON(1.8.1)

和JSON被安裝在該位置/home/canoe/.rbenv/versions/2.1.1/lib/ruby/2.1.0/json.rb 。

我在部署rails4.1應用程序時不使用cap,所以這個solution不適用於我。

我不想將所有東西都打包到某個地方,而是使用gemsets中所有當前安裝的gem。

那麼,如何使綁定在nginx乘客中使用系統默認的gem?

+0

乘客應該已經打印了一個錯誤頁面,其中包含環境變量的轉儲。你能仔細檢查像GEM_PATH這樣的重要環境變量是否正確? – Hongli 2014-09-29 15:57:15

+0

是的,我已經將GEM_PATH和GEM_HOME設置爲'bundle env'顯示的值。所以,這就是爲什麼其他非系統寶石在乘客中可見的原因。 – canoe 2014-09-30 00:53:32

回答

-1

我遇到了同樣的問題,但下面的帖子幫我:fusion passenger issue with json gem when running on nginx

也許您還使用了一些紅寶石版本控制工具。正如我使用RVM。 根據上述帖子中的評論。需要將passenger_ruby指向RVM包裝文件夾。

例如:

passenger_ruby /usr/local/rvm/wrappers/ruby-2.0.0-p481/ruby;