Pages

2011年9月24日土曜日

rvm で ruby 1.9.2 + Rails3 を実現

そろそろRails3をやらなければ、と思っているうちに Version 3.1になっていた。
Rails3を渋っていた理由は様々あるが、大きいのは ruby 1.9。ruby 1.9は後方互換が結構厳しい。
Rails自身はRubygemsでしっかり管理されていて他のバージョンとの共存が可能だが、rubyは難しいと躊躇していたら、なんと rvmなるものがあるではないか。
rvm -- ruby version manager. 様々なrubyを切り替えて利用することができる
詳しくはここ。
http://beginrescueend.com/rvm/

gemでインストールする方法もあるが、今回狙っている環境は
* さくらVPS
* 特定の開発ユーザだけが、ruby 1.9を使う。通常は 1.8.7
* gem も同様
* virtual hostを利用して、1.9ベースのWebApplicationと1.8.7(rails2)を共存させる
よって、rvmサイトの指示(single user)通り、ソースからインストールすることにした。
http://beginrescueend.com/rvm/install/

rvm インストール

開発用ユーザを追加し、切り替わって
# ソースからインストール (curlが必要)
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
# bash_profileに環境を追加
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
$ source ~/.bashrc
# インストール出来たかテスト "rvm is a function"と表示されれば、OK 
$ type rvm | head -1
rvm is a function
それにしても、スクリプトの作成が素晴らしい。これぐらい、さらさら書きたいものだ。
ruby 1.9.2 をインストールしてみる。
$ rvm install 1.9.2
$ ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
$ rvm use 1.9.2  # 切り替える
Using /home/bokunenjin/.rvm/gems/ruby-1.9.2-p290
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
なるほど。ruby1.9 以外に、yaml rubygems もインストールさせるのか。
rvm use xxxx で他のrubyに切り替え。OSに導入している1.8.7が初期なので、ログアウトすると元に戻る。いつも1.9.2を使いたい場合は $ rvm use 1.9.2 --default でOK。


Rail3を試す

ruby 1.9.2 環境が用意できたので、早速 Rails3をインストール。
gemコマンドの実行は、カレントユーザで行う。(sudoしない。)

 $ gem update
 $ gem install rails
 $ rais new NewApp   # このあたりから、もう違う :-p
 Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem
is installed.
 $ cd NewApp
 $ rails server
プロジェクト作成時点でも、必要なgemが bundleの形で追加インストールされるのか。

sqlite3_native.so: undefined symbol エラー

sqlite3のプロジェクトを作成したときに、以下のようなエラーが出た。
sqlite3_native.so: undefined symbol: sqlite3_initialize
調べてみると、LD_LIBRARY_PATHの問題だととのことで、以下を.bashrcファイル等に追加。
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

Rails3 (3.1.0) 気になること

* JavaScript runtimeにNode.js(V8)が使われている。
* 今回は ActiveResorceを使いこなしてみたい
* すこし、軽くなったような気がする
* MiddlewareのRackについて、詳細を知りたい
* 謎のファイル config.ru , Gemfile (Gemfile.lock)

Casein3のインストール

私は、最近のRails開発では、caseinばかり使っている。caseinは、コンパクトな CMSで、認証機能や管理者画面と、ちょっと小粋なscaffoldを持っているため開発の土台として、とても重宝している。

Rails3の場合は、専用のgemがあるので試したみた。
手順だけ、さっと書く。詳細は https://github.com/spoiledmilk/casein3をみてください。

 $ cd NewApp/
 $ vim Gemfile    # gem "casein" を追加
 $ bundle install  # caseinが必要とするgemはすべて、ここで入る。sudoしない。rvm配下なので。
 $ vim config/initializers/setup_mail.rb    # ユーザ管理用のメールを送る設定
 $ rails g casein:install       # g = generate ?
 $ rails g casein:update     # public/casein内に必要なcss, javascriptなどが配置される
 $ rake db:migrate             # ユーザ管理テーブル作成
 $ rake casein:users:create_admin email=xxxxxxxxx  # 管理者ユーザ登録
 $ rails server -d
見た目は、あんまり変わらないなあ。

0 件のコメント:

コメントを投稿