2012-07-11 65 views
0

当前有一点噩梦试图在另一台机器上运行代码。我一直在开发Sinatra应用程序,作为我正在进行的实习的一部分。我正在使用ruby1.9.3(通过RVM)在Ubuntu 12.04机器上开发。我的主管想要在他的Debian Squeeze机器上运行它,它是开发服务器。我列出了Gemfile中所有必需的宝石,并推出了最初的提交。但是,我们似乎无法使其在Debian框上运行。Ruby 1.9.1在Debian上的安装

最初安装了Ruby1.8之前,我的主管知道我们需要Ruby1.9及更高版本。已安装Ruby1.9.1完整的debian软件包,但试图运行Sinatra应用程序ruby1.9.1 application.rb什么都不做。我添加了一些打印语句来调试它,并且ruby解释器到达文件的末尾 - 问题在于它没有启动WEBrick。这个完全相同的代码在我的机器上运行没有问题,为什么它在Debian上存在问题?

注意:不建议切换到RVM。我的主管坚持我们只使用官方软件包,所以这是我无法控制的。

回答

0

我有我的Sinatra应用程序配置有点不同。也就是说,我不用ruby application.rb运行它们,而是我有一个config.ru文件,指示Rack中间件。当我想运行我的应用时,我只需运行rackup,服务器就会启动。

in the Sinatra Readme所示的最小示例布局如下。

基本西纳特拉application.rb文件:

require 'sinatra' 

get '/' do 
    'Hello world!' 
end 

config.ru

require './application' 
run Sinatra::Application 

我真的不知道是否或如何这将使你的情况有差别,但它是第一件想到的事情。


P.S.

现在我想到了,您可以尝试的另一件事是使用另一台服务器而不是WEBrick。我想如果你添加

gem 'thin' 

Gemfile它应该自动使用薄代替。记得先重新运行bundle install