0

現在、別のマシンでコードを実行しようとして少し悪夢に見舞われています。私が行っているインターンシップの一環として、Sinatra アプリを開発しています。Ruby1.9.3(RVM経由)を使用して、Ubuntu 12.04マシンで開発しています。私のスーパーバイザーは、開発サーバーである Debian Squeeze マシンでそれを実行したいと考えています。必要なすべての gem を Gemfile にリストし、最初のコミットをプッシュしました。ただし、Debian ボックスで実行することはできないようです。

Ruby1.8 が最初にインストールされましたが、上司が Ruby1.9 以降が必要であることに気付く前にインストールされました。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 Readme に示されている最小限のサンプル レイアウトは次のとおりです。

基本的な Sinatraapplication.rbファイル:

require 'sinatra'

get '/' do
  'Hello world!'
end

そしてconfig.ru

require './application'
run Sinatra::Application

これがあなたの状況に影響を与えるかどうか、またはどのように変化するかはわかりませんが、最初に頭に浮かんだのはそれでした.


PS

そういえば、WEBrick 以外のサーバーを使ってみてはいかがでしょうか。追加すると思います

gem 'thin'

Gemfile代わりに自動的に Thin を使用する必要があります。最初に再実行することを忘れないでくださいbundle install

于 2012-07-11T14:52:35.510 に答える