2012-07-21 75 views
1

下面是顯示在瀏覽器中的黃瓜運行的結果簡單的末日應用:BACKTICK執行本地但不是適用於服務器

require 'sinatra' 

get '/' do 
    `cucumber features --format html` 
end 

get '/ls' do 
    `ls` 
end 

根路徑工作正常,並不會是我想要我的本地機器上的:它執行黃瓜並顯示結果。問題是在我的服務器上出現錯誤No such file or directory - cucumber features --format html

故障排除我已經這樣做了遠東

  • ls路線。它既可以在本地也可以在服務器上運行,並且顯示來自我期望的目錄中的結果 - 與Sinatra應用程序運行的目錄相同。
  • 從命令行通過服務器上的ssh運行cucumber features --format html。再次,它工作正常,輸出是我所期望的。

那麼,爲什麼我在使用ruby的反引號通過sinatra運行時遇到錯誤?

謝謝!

回答

1

你確定服務器上安裝了黃瓜嗎?如果是這樣,它是通過捆綁安裝,請嘗試更改命令是:

bundle exec cucumber ... 

編輯

原來黃瓜是不是在路徑。解決方案是使用黃瓜的完整路徑。

+0

正如我在op中所說的,從命令行通過ssh運行黃瓜很好,所以它必須安裝在服務器上。另外,我知道,因爲我安裝它:)它不是通過捆綁軟件安裝,而是簡單地用'gem install cucumber' – Jonah 2012-07-21 05:30:30

+0

有趣。你使用的是rvm還是rbenv,並且可能gem bin文件夾不在服務器shell的路徑中?最容易檢查的方法是從服務器打印$ PATH。 – 2012-07-21 05:38:09

+0

這是問題所在。它在我的道路上,但不在Web服務器的路徑上。謝謝Tanzeeb! – Jonah 2012-07-21 05:45:04

相關問題