2012-07-21 56 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

相关问题