0

目前尝试在另一台机器上运行代码有点噩梦。作为我正在做的实习的一部分,我一直在开发 Sinatra 应用程序。我正在使用 ruby​​1.9.3(通过 RVM)在 Ubuntu 12.04 机器上进行开发。我的主管想在他的 Debian Squeeze 机器(开发服务器)上运行它。我在 Gemfile 中列出了所有必要的 gem,并推送了初始提交。然而,我们似乎无法让它在 Debian 机器上运行。

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

注意:不建议切换到 RVM。我的主管坚持我们只使用官方包,所以这超出了我的控制范围。

4

1 回答 1

0

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

Sinatra 自述文件中显示的最小示例布局如下。

一个基本的 Sinatraapplication.rb文件:

require 'sinatra'

get '/' do
  'Hello world!'
end

config.ru

require './application'
run Sinatra::Application

我真的不知道这是否或如何改变你的情况,但这是我首先想到的。


附言

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

gem 'thin'

对你Gemfile来说,它应该自动使用 Thin 代替。记得先重新运行bundle install

于 2012-07-11T14:52:35.510 回答