2012-07-11 64 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