Sinatra

Ruby のWebフレームワーク Sinatra が気になったので試してみた。

環境構築

他の方が書かれているブログ等を見ると、コマンド一発でインストールできるようだ。実際私もコマンド一発でインストールできたので、テストコードを動かしてみた。ぁらら、エラーが発生。...というわけでそのエラーを解決し、Sinatra の動作が確認できるまでの手順を記録。

テストコード

公式ページのトップに書かれている、お約束でもある Hello world!。

require 'rubygems'
require 'sinatra'
get '/' do
  'Hello world!'
end
手順

Sinatra のインストール

# gem install sinatra

テストコードの実行

% ruby hi.rb 
/usr/local/lib/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem test-spec (>= 0) (Gem::LoadError)

test-spec が見つからない、というエラー。以降も同様に RubyGem 〜 が見つからないというエラー発生。Sinatra が動作するようになるまでにインストールした RubyGem を列挙。

  • test-spec
  • camping
  • fcgi
    • fcgi のインストールには事前に libfcgi-dev パッケージがインストールるされている必要あり。
# apt-get install libfcgi-dev
  • memcache-client
  • mongrel
  • ruby-openid -v 2.0.4
    • エラー時のメッセージは "`report_activate_error': Could not find RubyGem ruby-openid (~> 2.0.0)"。"~>" は RubyGems Manuals によると、"Approximately greater than" だと。だいたい大きいってことか。最新版の 2.1.7 を入れたときはエラーが発生した。リビジョン番号(3つめの数字)以外が合っていて、そのバージョンよりも大きければいいのかな?以下、RubyGems Manuals の引用。

= Equals version
!= Not equal to version
> Greater than version< Less than version
>= Greater than or equal to<= Less than or equal to
~> Approximately greater than

http://docs.rubygems.org/read/chapter/16#page76
  • thin
  • shotgun
  • rack-test

これで Sinatra を動作させることができた。ふぅ。