昨日のDuostackでHello world記事で、初出時に間違って「DuostackはRuby 1.8系しか使えない」と書いてしまったけど、その後Duostackのドキュメントを見てたらバージョンを変更する方法の記述を見つけて、試してみたらちゃんとRuby 1.9.2も使えた。今回は備忘録がてらその方法を記事に。これまたHerokuでRubyのバージョンを変更する手順と良く似てるけど、微妙に違う。
Duostackで使用するRubyのバージョンを変更する
まず、Duostackアプリで現在使用しているRubyのバージョンを調べるには、duostack config stack
コマンドを実行する。デフォルトでは下記の通りautodetect
が選択されていて、自動判別されるっぽい? 何を元に自動判別をするかはわからない。
$ duostack config stack
* autodetect
ruby-ree-1.8.7
ruby-mri-1.9.2
node-0.2.5
node-0.4.0
node-0.4.2
明示的に使用するRubyのバージョンを変更するには、duostack config stack
コマンドの後ろに、変更したいバージョンの文字列を指定する。今回は1.9.2にするので、ruby-mri-1.9.2
を指定する。
$ duostack config stack ruby-mri-1.9.2
App will be migrated to ruby-mri-1.9.2 during next Git push.
$ duostack config stack
autodetect
ruby-ree-1.8.7
* ruby-mri-1.9.2
node-0.2.5
node-0.4.0
node-0.4.2
この時点ではバージョン変更の予約がされた状態で、実際に変更されるのは次にgit push
した時になる。試しに、昨日使ったHello worldのコードに追加して、1.9.2を使うようにしてみる。app.rb
を以下のように修正して、git push
する。
# coding: utf-8
get '/' do
'DuostackでSinatraを使ってHello world!'
end
get '/ruby_version' do
"RUBY_VERSION = #{RUBY_VERSION}"
end
利用しているRubyのバージョンを返す組み込み定数を表示するためのパスを追加する。これでデプロイして、http://duohelloworld.duostack.net/ruby_versionにアクセスすると、1.9.2にちゃんと変わっているのがわかる。
Duostack · Docs: Configuration Options Herokuそっくり!DuostackでSinatraを使ってHello worldする