2014-01-13 30 views
1

在生產環境中嘗試在rails控制檯中進行系統調用時,出現了一些煩人的錯誤。在Rails生產環境中進行系統調用時沒有這樣的文件或目錄env

Loading production environment (Rails 4.0.2) 
2.0.0 :001 > `hostname` 
bin/rails: No such file or directory - hostname 
=> nil 

它工作正常irb

$ irb 
2.0.0-p353 :001 > `hostname` 
=> "app-1\n" 

同樣的事情發生在我的本地機器上。 rails c很好,但rails c production給出了上述錯誤。

ruby -v輸出ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]

rails --version輸出Rails 4.0.2

我真的不知道從哪裏開始調試這使任何建議,歡迎!我試着運行rake rails:update:bin,根據"bin/rails: No such file or directory" w/ Ruby 2 & Rails 4 on Heroku,但它似乎沒有什麼區別。有任何想法嗎?

+0

我懷疑軌道環境做一些你的路徑。 ENV ['PATH']在兩者中的輸出是什麼? –

+0

他們非常不同!見http://pastebin.com/m6A22kcY –

回答

1

PATH中的差異是問題所在。您需要查看代碼或託管環境以瞭解如何在Rails應用程序中設置PATH。它可能在應用程序本身,或任何應用程序服務器啓動應用程序 - 細節可能會大不相同。

你的Rails控制檯輸出:

"$HOME/.rvm/gems/ruby-1.9.3-p429/bin:$HOME/.rvm/bin:$PATH" 

表明,一些試圖添加到路徑,但它插入文字美元符號,而不是擴大現有的環境變量。例如,在設置路徑的shell腳本中,如果您使用了錯誤的引號符號,您會看到類似於您所擁有的內容。

export PATH="$HOME/.rvm/gems/ruby-1.9.3-p429/bin:$HOME/.rvm/bin:$PATH" # right 
export PATH='$HOME/.rvm/gems/ruby-1.9.3-p429/bin:$HOME/.rvm/bin:$PATH' # wrong 

我希望這點你在正確的方向:)

+0

是的,這有幫助!我發現env變量被設置在代碼庫的某個地方,不知道爲什麼特別是因爲我們不再使用Ruby 1.9。謝謝你的幫助 :) –

相關問題