MacBookProへRubyとRailsをきっちりセットアップ
起業にともない、使用していたPCが新しくなりました。
MacBookProであるという点は変わらずです。
そのためRubyやRailsなどをセットアップしなおすことになったので、きっちりやってみた流れをご紹介します。
MaxOSX10.6には標準でRuby1.8.7とRails2.3.5がインストールされているのですが、今回はRuby Version Manager (RVM)をインストールしてRuby1.8系とRuby1.9系のどちらも使える状態を作りました。
流れとしては
- Xcodeのインストール
- MacPortsのインストール
- 必要なライブラリなどをインストール
- rvmのインストール
- Ruby1.9.2-p180のインストール
- Rails3.0.5のインストール
- ついでにSinatra1.2.1のインストール
となっております。
1,Xcodeのインストール
様々なライブラリ等をインストールするためMacPortsを利用します。MacPortsをインストールするためには、ローカルにコンパイル出来る環境が必要です。
ということで、Appleが提供してる「Xcode」という開発環境をセットアップします。
Xcodeは2011年3月24日にXcode4がリリースされています。
iPhoneのDeveloperLicenseをおもちの方は、無料でXcode4のダウンロードが可能です。
しかし、それ以外の方は有償となっております。(AppStoreで$4.99となってました。)
ここでは、無償で提供されているXcode3.2.6を使います。
私は手元にXcode3.2.6のdmgファイルがあったので、そちらを使いましたが、お持ちでない場合は以下の流れで入手することができます。
準備するもの: AppleID
iPhoneをご利用の場合、アプリをインストールするときに聞かれるIDです。
もし持っていなくても、無料で取得できます。
- http://developer.apple.com/devcenter/mac/index.action
- AppleIDを持っていない場合は「Register」を、持っていれば「Login」
- ログインが行えたら、画面中ほどの「Xcode 3.2.6 and iOS SDK 4.3」というリンクをクリック
これでXcode3.2.6がダウンロードされます。
ファイルサイズが4.1GBもあるので、お気をつけ下さい。
ダウンロード後、dmgファイルをダブルクリックし、中にあるパッケージをダブルクリック。
出てきた画面は特に変更しないで、進めていけばセットアップできます。
ダウンロード同様、インストールもかなり時間がかかるのでご注意を。
2,MacPortsのインストール
http://www.macports.org/install.php
こちらからMacPortsをダウンロードします。OSのバージョンに合わせたものを取得して下さい。
3,確認
もし、ターミナルで
sudo port
という、この後の作業がエラーで行えない場合は、自動で行われるパス設定が失敗している可能性があります。私はzshを使用していたため、パスが通っていませんでした。
もしMacPortsのインストール前に、シェルをbash以外に変更していた場合はご自分でパスを追加して下さい。私の場合は.zshrcの一番最後に
export PATH=$PATH:/opt/local/bin
と加えました。
4,必要なライブラリのインストール
Rubyで必要となるライブラリのreadlineをインストールします。また、RVMのためにgitも入れておきます。
$ sudo port install readline
これで、あとは待つだけです。なお、readlineを入れると同時に
- ncurses
- ncursesw
もインストールされました。
次に、gitです。パッケージ名は「git-core」です。
$ sudo port install git-core
を行います。git-coreを入れると
curl curl-ca-bundle perl5 perl5.12 libidn gettext expat libiconv gperf openssl zlib pkgconfig p5-error python27 bzip2 db46 gdbm sqlite3 rsync popt
がインストールされます。(ちょうど必要なCurlとOpenSSLも入ってしまう。)
なお、git-coreのインストールは同時にインストールされるものが多いこともあり、かなり時間がかかりますので、お急ぎの時には実行しないようご注意を。
なお、readlineとopensslについては、MacPortsで入れないでRVMから入れることも可能です。
その場合は、こちらの方のブログをご参照のこと。
http://g86.dbcls.jp/~yag/wordpress/archives/1301
5,RVMのインストール
以下のコマンドを実行します。
mkdir tmp cd tmp git clone --depth 1 git://github.com/wayneeseguin/rvm.git
これでrvmというディレクトリが出来ますので、
cd rvm ./install
でインストールされます。
インストール後、.bashrc(私は.zshrc)の一番最後に
source ~/.rvm/scripts/rvm
を追加しておきます。
ここで一度ターミナルを閉じて下さい。その後、もう一度ターミナルを開きます。
ls -a
で.rvm/と.rvmrcがあればOKです。
6,Ruby1.9.2を入れる
2011/3/29時点で最新版のRuby1.9系は1.9.2-p180です。
rvmを使ってインストールを行います。
$ rvm install 1.9.2 --patch ~/.rvm/patches/ruby/1.9.2/p180/gcdata.patch -C --with-openssl-dir=/opt/local --with-readline-dir=/opt/local --with--enable-readline-v6
あとは待っていると終わります。
ターミナルで、
ruby -v
とすると、まだ1.8.7と出ます。
rvm use 1.9.2
とうち、再び
ruby -v
を実行すると、バージョンが1.9.2と表示されると思います。
なお、rvm installのあとにバージョンを書くと、そのバージョンがインストールされます。
7,Rails3.0.5のインストール
ターミナルで
gem install rails
を行って下さい。(sudoは付けなくてよい。~/.rvmの中にインストールされるので)
あと、
gem install sqlite3
も行っておいて下さい。
では、動作確認
$ mkdir ~/rails $ cd ~/rails $ rails g testapp $ cd testapp $ rails s
http://localhost:3000/にアクセスをしてみて下さい。
では、もう少し。
$ rails g scaffold Book title:string price:integer $ db:migrate $ rails s
次は http://localhost:3000/books/にアクセスします。
動いてますか?
8,おまけ Sinatra1.2.1もセットアップ
$ gem install sinatra $ vi app.rb
で、以下のように打ちます。
require 'rubygems' require 'sinatra' get '/' do 'コニチワー' end
もう一つ、config.ruを作ります。
require './app.rb' run Sinatra::Application
では、実行。
ruby app.rb
あれれ。エラー。
エラーは以下の通り。
app.rb:5: invalid multibyte char (US-ASCII) app.rb:5: invalid multibyte char (US-ASCII) app.rb:5: syntax error, unexpected $end, expecting keyword_end 'コニチワー'
あー。ちゃんと文字コードを指定しなければ。
ruby -Ku app.rb
次に、ブラウザで
http://localhost:4567/
画面に"コニチワー"と表示されましたか?
番外編 readlineのおかげで、本当に文字化けしていないか確認
一応、irbで文字化けを起こしていないか確認。
先ほどSinatra用に作ったapp.rbのファイルを、1行1行画面に表示させる処理を実行してみます。
/ruby/sinatra/testapp% irb :001 > f = open("app.rb") => #<File:app.rb> :002 > f.each_line do |l| p l end "require 'rubygems'\n" "require 'sinatra'\n" "\n" "get '/' do\n" " 'コニチワー'\n" "end\n" "\n" => #<File:app.rb>
大丈夫ですね。
ということで、これでセットアップ完了です。