2011-06-06 51 views

回答

10

/etc/init.d/unicorn不知道去哪裏找Ruby,因爲它是通過RVM管理的。通常,您的.bashrc或類似文件被執行並設置環境;這在init腳本中不會發生(或者可能由root執行的任何其他操作)。

解決方案是使用包裝。例如,創建一個名爲system_ruby二進制文件加載了RVM的1.9.2p180環境和然後執行ruby,執行以下命令:

rvm wrapper ruby-1.9.2-p180 system ruby 

欲瞭解更多信息和更多詳細信息,請this answer of mine,它解決了類似的問題。

+0

我執行該COMAND並沒有什麼改變。 '/etc/init.d/unicorn start 啓動DPP.cz.cc應用程序:/ usr/bin/env:ruby:沒有這樣的文件或目錄unicorn.' – Kir 2011-06-08 20:32:40

+0

如果您構建一個名爲'system_ruby'的可執行文件,您需要更新你的'/ etc/init.d/unicorn'腳本來使用它來代替'ruby'。 – 2011-06-08 20:58:18

+0

只有通往unicorn.rb和獨角獸二進制文件的路徑。如何更改我的'/ etc/init.d/unicorn'?它在這裏https://gist.github.com/1010519 – Kir 2011-06-08 21:06:14

0

類型: which ruby(顯示紅寶石bin路徑),然後輸入:ln -s (change_to_ruby_path) /usr/bin/env/ruby(構建系統的正確接入)

1

符號鏈接也適用,

which ruby<your version> 
ln-s /ruby/path/ruby<your version> /ruby/path/ruby 
0

我有同樣的問題,這對我來說

rvm --default use <version> 
相關問題