【初心者向け】Mac OSX10.8(Mountain Lion)で Ruby on Railsを動かすための5ステップ

2012年6月に書いた「【初心者向け】Mac(OSX Lion)でRuby on Railsを動かすための5ステップ」ですが、公開から半年程経過し、手順も少し変わっていたのでアップデートしました。

Mac OSX10.8(Mountain Lion)で Ruby on Railsを動かすための5ステップ

クリーンインストール直後のMacOSX 10.8(Mountain Lion)での作業手順です。
特に問題が起きなければ、1時間もかからず終わると思います。

  1. Command Line Tools for Xcode インストール
  2. Homebrew インストール
  3. rbenvとruby-build インストール
  4. Ruby(1.9.3-p327) インストール
  5. Ruby on Rails(3.2.9) インストール

おまけもあります。
せっかく環境構築できたら、何か作ってみたくなりますよね。

  • 【おまけ1】簡単なRailsアプリケーション「1人Twitter」を作ってみよう
  • 【おまけ2】Sqaleに「1人Twitter」を公開してみよう

1. Command Line Tools for Xcode インストール

それではやっていきましょう。

Command Line Tools for Xcode(115MB) をインストールしましょう。
Command Line Tools for Xcode は、Apple Developerからダウンロードできますので、インストールしましょう。



▲Command Line Tools (OSX Mountain Lion) for Xcode をダウンロードします

2. Homebrew インストール

パッケージ管理ツールの Homebrew をいれましょう。
このページの下部、「Install Homebrew」のコマンドをターミナルにコピペします。

ターミナルを起動します。


この画面に、以下のコマンドをコピペして実行します。

$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

※ 実際にコピペするのは↑の先頭にある「 $(と半角スペース)」を除いた部分になります(ターミナルを見ると $ が出てますよね。なので不要です)。

enterキーを押せだとか、ログインパスワード入力しろと言われますので従いましょう。

1分もかからずインストールが終わるはずです。インストールが終わると brew コマンドが使えるようになります。
以下をターミナルに入力してみましょう。

$ brew -v
0.9.3

※ $がついた行が入力する部分です。
ここにある「0.9.3」の部分はコマンドの実行結果です。

今インストールしたHomebrewのバージョン「0.9.3」が表示されますね。
Homebrewのインストールはこれで終わりです。

ステップ2 が無事終了した時のターミナルのログ
https://gist.github.com/4183350

3. rbenvとruby-build インストール

Ruby on Rails を動かすためには、Rubyが必要です。

デフォルトで入ってるRubyは、1.8.7と古いので、新しいRubyをインストールする必要があります。
ここではrbenvとruby-build というのを使って、新しいバージョンのRubyをインストールします。

rbenv と ruby-build を使うと、複数のバージョンのrubyを簡単に切り替えて利用できるようになります。

先程インストールしたHomebrewを使って、rbenvとruby-buildをインストールできます。
以下のコマンド($以降の部分)を一行ずつコピペしてenterしてください。

$ brew update
$ brew install rbenv
$ brew install ruby-build

homebrew をインストールした直後なら、brew updateは不要かもしれません。
updateするものがなければ、already up-to-date と表示されるだけなので、一応やっときましょう。

これで、rbenvとruby-buildをインストールは完了です。
終わったら以下のコマンドをコピペしてください。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

「$PATH を通す」という作業で、これをやると rbenvコマンドが使えるようになります。
コピペしてenterしても特に反応はありませんが、うまくいってるはずです。

$ . ~/.bash_profile

.bash_profileという設定ファイルを再読みしましょう。
こちらも実行しても特に反応はないですが、おまじないみたいなもんです。

$ rbenv

を実行して、rbenvのコマンド一覧が表示されたら成功です。

ステップ3 が無事終了した時のターミナルのログ
https://gist.github.com/4186602

4. Ruby(1.9.3-p327) インストール

先程インストールしたrbenvを使って、Rubyをインストールします。

以下のコマンドを実行すると、インストール可能なRubyのリストを表示します。

$ rbenv install -l

ずらずらっとリストが出てくるけど怖くありません。表示されてるだけです。

Ruby 2.0もリストにありますが、Ruby 1.9.3系が主流なのでこちらを入れときましょう。
-pの番号が大きいものを入れとけば大丈夫でしょう。

この記事を書いてる時点では、1.9.3-p327が新しいみたいですね。インストールは以下のようにやります。

$ rbenv install 1.9.3-p327

これまでのコマンド実行と比べ、完了までに結構時間がかかります。

5分前後はかかりますので不安にならず待ちましょう。

終わったら

$ rbenv global 1.9.3-p327

をして 今インストールした「 1.9.3-p327 のRubyをこのMacで使うぜ 」って宣言します。

ちゃんと宣言が反映されたかどうか見てみましょう。

$ ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]

こんな感じで、rubyのバージョンが宣言通り(1.9.3p327)になってれば完了です。

5. Ruby on Rails(3.2.9) インストール

Railsをインストールする前に gem update しておきましょう。

$ gem update

いよいよ、Railsのインストールです。
Railsは、インストール時に大量のドキュメントがダウンロードされるため時間がかかります。
ドキュメントをインストールしないオプション(–no-ri –no-rdoc)をつけて Ruby on Rails をインストールしましょう。

$ gem install rails --no-ri --no-rdoc

無事、終わったら、おまじないを実行。

$ rbenv rehash

Rails がインストールされたかどうか確認してみましょう。

$ rails -v
Rails 3.2.9

と表示されたら成功です。
これで、Rails アプリ作成の準備は最低限ですが整いました。

【おまけ1】簡単なRailsアプリケーション「1人Twitter」を作ってみよう

ということで何か作ってみましょう。RailsにはScaffoldという動くモックを作成できる便利機能があります。
以下の5つのコマンドを実行すれば、なんと

ものすごく簡素なtwitter(のようなもの) ができます!



▲こんなのが出来ます。

すごく簡単なので、試しにやってみましょう。

$ rails new twitter
$ cd twitter
$ rails generate scaffold Tweet message:string
$ rake db:migrate
$ rails server

最後のrails server をすると、webサーバーが起動して、今つくったアプリケーションがブラウザで見れるようになります。

http://localhost:3000 でアクセスできます。



Welcome aboard なる画面が表示されたら成功です。

さらに・・・以下のURLへアクセスしてみましょう。

http://localhost:3000/tweets



こんな画面が表示されましたか?
New Tweet というリンクがありますね。押してみると フォームが出てくるので、何か書いてみましょう。
投稿出来たら、Backで戻ってみましょう。

コマンド以外プログラムは一行も書いてないのに、投稿・削除・編集ができる立派なwebアプリケーションができちゃいました!

ちょっと気になるのが、今は localhost:3000 でWelcome画面が出てますけど、/tweetsの内容を表示したいですよね。やってみましょう。

まず、config/routes.rb を編集します。

# root :to => 'welcome#index'

となっているところを、

root :to => 'tweets#index'

コメントアウトの#を外し、welcome を tweets に変更します。

次に Welcome画面のファイルである public/index.html を削除してください。
普通にfinderから削除してもいいですが、コマンドで削除する場合は以下のようにします。

rm public/index.html

これで localhost:3000 にアクセスすると /tweet と同じ内容が表示されるようになります。

ひとしきり「一人Twitter」を楽しんだら、そろそろ寂しさがこみ上げてくるとおもうので、ターミナルの画面に戻り、controlキーを押しながら c を押してください。
そうすると、サーバーを終了させることができます。

このステップ が無事終了した時のターミナルのログ
https://gist.github.com/4204500

【おまけ2】Sqaleに「1人Twitter」を公開してみよう

ここまで来たら、手元で動かすだけじゃなくて、外部サーバーで公開しちゃいましょう!
Ruby on Rails 対応のホスティングサービス 「Sqale(スケール)」に今つくった「1人twitter」を公開してみます。

ユーザー登録

まず、Sqaleユーザー登録(無料) を済ませましょう。
1分もかからないと思います。

登録が完了すると、ダッシュボードが表示されます。
Sqaleに「1人Twitter」を公開するためには、git コマンドを使って行います(SFTPも使えます)。

公開鍵の登録

その前準備として、ダッシュボードで「公開鍵の設定」を行います。

ターミナルから公開鍵を生成しましょう。

$ cd

で、いったんホームディレクトリに戻って、

$ ssh-keygen

で、鍵を生成します。いくつか質問されますが、全てenterで大丈夫です。

$ cat .ssh/id_rsa.pub | pbcopy

で、クリップボードの鍵情報がコピーされますので、「公開鍵の設定」の「公開鍵」のフィールドに貼り付けて登録します。



こんな感じで一覧に表示されたら完了です。

アプリケーションの作成(15日間無料)

では、「1人Twitter」を公開する場所を作りましょう。
ダッシュボードの「新しいアプリケーションを作成」ボタンから作成します。
アプリケーション名は twitter にでもしておきましょう。

「1人Twitter」をSqaleで動かすために、手元のいくつかファイルを修正します。

config/database.ymlの修正

手元の環境では、データベースにSQliteを使っていますが、Sqaleでは MySQLを使います。
config/database.ymlを修正して、Sqaleのデータベース接続情報を設定しましょう。

データベース情報はSqaleのアプリケーションの詳細ページから確認できます。
「Rails の database.yml 形式でコピー」の横にあるアイコンをクリックすると、クリップボードに接続情報がコピーされるので、

config/database.yml の、

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

となっている箇所を、コピーした情報で上書きします。
production というのが本番環境(Sqale)の接続設定となります。

Gemfileの修正

次に アプリケーションディレクトリ直下にある Gemfile を開き、以下を追記します。

group :production do
  gem 'mysql2'
end

本番環境(Sqale)では、mysql2 というgem が必要なためです。
終わったらターミナルで bundle install を実行します。

$ bundle install 

以上でファイルの修正は完了です。
念のため今の状態で「1人Twitter」が動いているかどうかを確認しておきましょう。

git の設定

ここまで来ればあと少しです。

git の設定を行いましょう。アプリケーションディレクトリ直下で以下を実行します。

$ git init 
$ git add .
$ git ci -m "initial commit"

次に、git remote で Sqaleを登録します。

ダッシュボードから、GitのSSH情報をクリップボードにコピーしておきます。
ターミナルの画面に戻って、以下を実行します。

$ git remote add sqale 【コピーした情報をここにペースト】

僕の環境だと、

$ git remote add sqale ssh://sqale@gateway.sqale.jp:2222/pplog/twitter.git

という感じです。

いざ、公開!

$ git push sqale master 

Sqaleのダッシュボードのアクティビティに、処理状況が表示されます。

こんな感じで、デプロイが完了するのを待ちましょう。
完了したら、アプリケーションのURLにアクセスしてみましょう。

すると、エラーメッセージが表示されたかと思います。
初めての公開なので、db:migrate が必要です。

db:migrate はブラウザからも実行出来るので、「アプリケーションの操作」から行います。

db:migrate ボタンを実行後、1分程待って再度アプリケーションのURLにアクセスすると、localhost:3000 で見たのと同じような画面が表示されるはずです。

初回はいくつか準備が必要ですが、その後は修正が入っても、

$ git add .
$ git ci -m "変更内容のメモ"
$ git push sqale master 

とするだけなので楽ちんです。

以上、ずいぶんと長くなってしまいましたが、

  • Rails 環境を作って
  • アプリケーションを作って
  • Sqale に公開

という流れをご紹介しました。

Rails デビューのお役に立てれば幸いです。

“【初心者向け】Mac OSX10.8(Mountain Lion)で Ruby on Railsを動かすための5ステップ” への9件の返信

  1. 個人的にタイムリーで面白かったです。マックエアを買って、Ruby学ぼうと思ってググっていて、このブログに偶々出くわし、一人ツイッターまで全部やってみました。こういうので遊んでいると、学びも早そうですね。Rubyだけじゃなくて、Ruby on Railsも学んじゃおうかな♬そんな風に思いました。キッカケを与えてくれて、どうもありがとうございます!

    1. そういっていただけるとすごく嬉しいです!

      自分1人で何か動くものを作れると世界が広がりそうですよね。
      お互いがんばりましょう!

  2. ピンバック: one by one
  3. Ruby(1.9.3-p327) インストールでこけてしまいます(泣)
    ——以下、そのときのLOG——–

    Downloading yaml-0.1.4.tar.gz…
    -> http://dqw8nmjcqpjn7.cloudfront.net/36c852831d02cf90508c29852361d01b
    Installing yaml-0.1.4…

    BUILD FAILED

    Inspect or clean up the working tree at /var/folders/31/1vznfb7n4ws1vd7cksr6gmq80000gn/T/ruby-build.20130211170127.4908
    Results logged to /var/folders/31/1vznfb7n4ws1vd7cksr6gmq80000gn/T/ruby-build.20130211170127.4908.log

    Last 10 log lines:
    checking for gawk… no
    checking for mawk… no
    checking for nawk… no
    checking for awk… awk
    checking whether make sets $(MAKE)… no
    checking for gcc… cc
    checking whether the C compiler works… no
    configure: error: in `/var/folders/31/1vznfb7n4ws1vd7cksr6gmq80000gn/T/ruby-build.20130211170127.4908/yaml-0.1.4′:
    configure: error: C compiler cannot create executables
    See `config.log’ for more details
    shins-MacBook-Air-2:~ supercpu$ ruby-build
    ruby-build 20130208
    usage: ruby-build [-k|–keep] [-v|–verbose] definition prefix
    ruby-build –definitions
    ——-ここまで———

    よくわからずに、動かしているので・・・
    もしよろしければご教示願います。

pplog へ返信するコメントをキャンセル

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