唐突ですが、Macユーザ(Leopard or Tiger)がRuby on Railsの開発環境をゼロからセットアップしてHello Worldするまでの最短・最小の手順を書いてみたいと思います。
書いてある通りに実行するだけで超簡単なので、Macユーザは今すぐやってみましょう。Macを持ってない人は・・・Macを買うといいですよ。:)
MacPortsとは、Macで開発をするなら欠かせないパッケージ管理システムです。
これさえ入っていれば、開発に必要な道具をインストールするのが圧倒的に楽になります。OSのバージョンに合わせてインストーラをダウンロードし、インストールが終わったら、ターミナルから
$ sudo port -v selfupdate
を実行してMacPortsそのものを最新状態へとアップデートします。
インストールが成功していれば、
$ echo $PATH
とやれば「/opt/local/bin」が先頭に追加されているはずです。なお、MacPortsでは /opt/local 以下にインストールしたパッケージが格納されます。
UPDATE:
あと、Macに付属のインストーラDVDからXcodeもインストールしておきましょう。
UPDATE:
Leopardでは標準でRubyGemsがインストールされているのでこの手順は必要ありません。
では早速MacPortsを使ってインストールしましょう。これまた超便利なRubyのライブラリを管理してくれるツール「RubyGems」を入れましょう。
$ sudo port install rb-rubygems
同時にRubyGemsが必要とするライブラリを色々とインストールしてくれるはずです。たぶんRuby本体も1.8.6へと更新されるはず。
TigerユーザはOS標準のRubyが壊れているので、以下のコマンドでRubyのバージョンが新しくなっていることを確認してください。
$ ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.11.1]
UPDATE:
Leopardでは標準でRailsがインストールされているのでこの手順は必要ありません。
さて、RubyGemsがインストールされたら、あとは簡単です。gemコマンドを使ってrailsをインストールしましょう。
$ sudo gem install rails --include-dependencies
これでRailsのインストール完了です。
さて、あなたの最初のwebアプリを作成する場所を決めましょう。たとえば [Your_home]/Documents/rails-demo/ にするとします。
$ cd ~/Documents/ $ rails rails-demo create app/controllers create app/helpers create app/models (中略) create log/production.log create log/development.log create log/test.log $ cd rails-demo $ pwd /Users/[Username]/Documents/rails-demo
うまくいきましたか?これでrailsの基本となるディレクトリツリーがrails-demoの中に生成されたはずです。この「rails」コマンドを使えば、railsアプリケーションをいくらでも作ることができます。
さて、以後の作業は全て「~/Documents/rails-demo」をカレントディレクトリとしてここから行うものとし、相対パスで表記します。つまり、「log/development.log」といえば、「~/Documents/rails-demo/log/development.log」を指すものとします。
さて、ここまでの時点で全てがうまくいっているかを確認してみましょう。
$ script/server
ブラウザを開き、「localhost:3000」へとアクセスしてみましょう。
これで、以下のような画面になりましたか?
もし表示されたなら、railsのセットアップは成功です。ターミナルに戻り、Ctrl + Cを押して server を停止しましょう。
今回は最短というコンセプトなのでDBを使いません。よって、DBを使わないという宣言をしてやる必要があります。
テキストエディタで「config/environment.rb」を開き、
config.frameworks -= [ :active_record ]
という一行をRails::Initializerの中、つまり最後の行にある「end」の手前に記述します。
UPDATE:
Rails 2.0.2以降では SQLite3 が標準になったため、この手順は必要なくなりました。
さて、再びターミナルに戻り、以下のコマンドを入力します。
$ script/generate controller Hello exists app/controllers/ exists app/helpers/ create app/views/hello exists test/functional/ create app/controllers/hello_controller.rb create test/functional/hello_controller_test.rb create app/helpers/hello_helper.rb
このように、hello_controller.rbとそれに関連するファイルが生成されますので、いま生成された「app/controllers/hello_controller.rb」をテキストエディタで開いてみましょう。
class HelloController < ApplicationController end
という2行だけがあるはずです。これを、以下のように編集してください。
class HelloController < ApplicationController def world render(:text => 'Hello World!') end end
さて、いよいよです。ターミナルから
$ script/server
を実行し、サーバを立ち上げておいてからブラウザで
http://localhost:3000/hello/world
へとアクセスしてみてください。
「Hello World!」と表示されたら、成功です!
ここまでの手順でいろいろと疑問が出てきた人もいるでしょう。そういう人は、RailsによるアジャイルWebアプリケーション開発などで勉強する方向に進めばよいと思います。
意外と初心者向けのチュートリアルで軽視されがちですが、大切なのが定期メンテナンスの方法です。以下の一連のコマンドを気が向いたときに実行すればよいでしょう。
$ sudo port -d selfupdate ... MacPorts本体とカタログを更新します $ sudo port upgrade installed ... MacPortsでインストールされているパッケージを全て最新版にします $ sudo gem update --system ... RubyGems本体を更新します $ sudo gem update ... RubyGemsでインストールされているRuby関連パッケージを全て最新版にします
UPDATE:
port syncによるパッケージカタログの更新はselfupdateに含まれるようなのでport syncを削除しました。
以上で最低限の環境構築・メンテナンスの方法は習得できたことになります。
さて、今回唐突にこういう話をしたのは、次回、ここでセットアップしたRailsを使って簡単なfacebookアプリケーションを作ってみようと思ったからです。
お楽しみに。
♪ Patrice Rushen / Forget Me Nots
※このエントリは CNET Japan ブロガーにより投稿されたものです。シーネットネットワークスジャパン および CNET Japan 編集部の見解・意向を示すものではありません。
アナリストが語る、サイトのユーザーエクスペリエンスを向上させる10個のカギ
原宿で野宿を含む15時間 - iPhone行列完全ドキュメント
「失われた10年」からの回復は、どういう課題を残したか?
Joomla CMSをカスタマイズするには・・・テンプレートが第一優先
最適なマウスの移動速度は?
パブリックコメントは国民に知られていなかった( 2 )
Google ツールバーの PageRank、数日以内に更新予定
Google Lively試してみました(クリボウの部屋へ行く)。
iPhoneの影で馬鹿売れしているみたい
動画配信の影響なのかインターネット部門が「終了」
Googleというネットの巨大なメディアに支配される脅威みんなのお題では、ブロガー同士で質問を出し合いそれに対する回答や意見を集めています。今日はどんな話題が盛り上がっているでしょう?
DELLが掲げる「新・仮想化アセスメントサービス」CNET Japan ブログネットワークは、元はCNET Japanの一読者であった読者ブロガーと、編集部の依頼により執筆されているアルファブロガーたちが、ブログを通じてオンタイムに批評や意見を発信する場である「オピニオンプレイス」、また、オピニオンを交換するブロガーたちが集うソサエティです。
広い視野と鋭い目を持ったブロガーたちが、今日のIT業界や製品に対するビジョンや見解について日々熱く語っています。
CNET Japanやその他サイトが提供するITニュースやコンテンツへの意見や分析、 ビジネスやテクノロジーに対するビジョンや見解について語っていただける方を 募集しています。ご応募はこちらから
ブログの投稿はこちらから(※ブロガー専用)
今年最も活躍したブロガーを表彰します。詳細はこちらから
これは、CNET Japan 編集部の依頼に基づいて執筆されているCNET Japan アルファブロガーによるブログの印です。
CNET Japan ブログネットワーク内で拍手の代わりに使用する機能です。ブログを読んで、感激した・役に立ったなど、うれしいと思ったときにクリックしてください。多くGood!を獲得した記事は、より多くの人に読まれるように表示されます。
[レビュー]高い信頼性を普通に使う地球に優しい電源ユニット--Antec EarthWattsシリーズ EA-650
オンリーワンの個性を極めた超薄型テレビ--日立 Wooo UTシリーズ
[レビュー]“この手があったか”と思わせるパワーユーザーも納得のPCオンデマンド--「VALUESTAR G タイプR Luiモデル」+「Lui RN」詳細レビュー
今週の新製品総チェック:ドコモ、au夏モデルが続々店頭へ、ビデオカメラは新機種ラッシュ
[レビュー]テレビを持ち歩ける最強ツール--ソニー、Blu-rayレコーダー「BDZ-A70」
[レビュー]ネットワーク対応の高機能デジタルフォトフレーム--ソニー「Canvas Online CP1」
15時間の行列で手に入れたiPhone 3Gファーストインプレッション--ソフトバンクモバイル「iPhone 3G」
北京を見逃すな!--2008年夏、今買うべき「薄型テレビ」
[レビュー]通勤鞄に忍ばせたい軽さと装着感--マクセルのノイキャンヘッドホン「HP-NC15」