Lion(10.7)にRVM入れてRailsの環境を作る

LionにRVM入れて Railsの環境を作るときのメモを残しておく。
rbenv+ruby-buildってのがイケてるらしい(こことかこことか参考)ので試してみたいのだけれど、環境作ってばかりで写経が進まないとか本末転倒なのでしばらくはRVMで。

  1. xcode入れる
    MacAppStoreから落としてきてインストール
  2. RVMのインストール
    ターミナルで、このコマンドを実行する。

    $ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
    
  3. パスを通す
    ターミナル開いて、.bash_profile をつくって(あれば追記)

    if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi
    

    を書いて保存して、ターミナル再起動。そしたらrvmコマンドが使えるようになる。

  4. インストールできる環境一覧
    $ rvm list known

    で表示。

  5. rubyのインストール
    $ rvm install ruby-1.9.2

    してみる。

    Install of ruby-1.9.2-p290 - #complete 

    5分くらいでインストールがおわった。(1.9.3を入れようとしたらエラーになったのでそうそうに諦めた)

  6. RVMのrubyを利用する
    $ ruby -v

    すると、今は

    ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]

    となるけど、

    $ rvm use 1.9.2

    とすると、

    $ ruby -v
    ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]
    

    1.9.2になる。さらに、

    $ rvm use 1.9.2 --default

    これをデフォルトにしておけば、毎回指定しなおす必要がない。

  7. gemset ってのを作る
    rails30ってgemsetをつくる(Rails3.0系って意味で)

    $ rvm gemset create rails30
    

    先ほどインストールしたruby1.9.2とrails30の組み合わせをデフォルトにする

    $ rvm 1.9.2@rails30 --default
    

    確認

    $ rvm gemset list
       global
    => rails30
    
  8. railsのインストール
    $ gem install rails -v 3.0.10

    参考書のバージョンが3.0系なのでバージョン指定で。
    インストールはじまるまでに5分くらい無反応で心配になったけど、無事完了。

  9. 動作確認
  10. 適当なアプリケーションをscaffoldで作ってみて動作確認

    $ rails new test
    $ cd test
    $ rails g scaffold Post title:string body:text
    

    scaffoldしようとしたら、

    Could not find gem 'sqlite3 (>= 0) ruby' in any of the gem sources listed in your Gemfile.
    Run `bundle install` to install missing gems.
    

    っていわれたので

    $ bundle install

    いろいろインストールされた

    もういっかい

    $ rails g scaffold Post title:string body:text

    今度はscaffoldできた。

    最後にmigrateして、サーバー起動

    $ rake db:migrate
    $ rails s
    

    で、localhost:3000/posts にアクセスして動作してれば完了。

    おわり。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください