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 件のコメント:
コメントを投稿