Railsをインストールしてherokuにdeploy

前回はlokkaをherokuにアップロードしてみたので、今回は自分でrailsのプロジェクトを作ってもう1つのherokuアプリとしてアップロードしてみます。

ちなみに私が試した環境はMac OS X Mountain Lionです。

私の場合、rubyとgemは入っているがrailsは入ってないので、まずはそこから入れます。

$ ruby -v
ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.2.1]
$ gem -v
1.8.23
$ gem install rails
...
Installing ri documentation for rails-3.2.12...
file 'lib' not found
Installing RDoc documentation for rails-3.2.12...
file 'lib' not found

…が、なんかドキュメントが一部インストールできていないっぽいです。

さくっとググったところ、解決策発見。rdocをインストールすれば良いようです。その後再びrailsインストールコマンドを叩く。

$ gem install rdoc
$ gem install rails
1 gem installed
Installing ri documentation for rails-3.2.12...
Installing RDoc documentation for rails-3.2.12...

これで入ったか!よし、ではrailsアプリを作りましょう。ちなみにタワーディフェンスのミニゲームを作ろうとしているのでこんな名前にしてます。

$ rails new tower-defence
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

ぐはっ、一体何が…。しかし確かにさっきのgem intall railsrailsは入ったはず。一体どこを見ているのだろうか?

$ which ruby
/usr/local/bin/ruby
$ which gem
/usr/local/bin/gem
$ which rails
/usr/bin/rails

ちなみにrubyやgemはhomebrewからインストールしたので/usr/local/binにあるわけですが、何故かrailsは/usr/binにある…。これは恐らく/usr/binに入ってるのはデフォルトのrailsで、さっきのgemでインストールした実行ファイルはどっかに迷子になったかな?というわけで力技でrailsの実行ファイルを探してみる。

$ cd /
$ find . -type f -name 'rails'
./usr/bin/rails
./usr/local/Cellar/ruby/1.9.3-p374/bin/rails
./usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/bin/rails
./usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/guides/code/getting_started/script/rails
./usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/generators/rails/app/templates/script/rails

発見した。なるほどCellarの中には入ってたんですね。とりあえず無理やりシンボリックリンク貼ってみる。

$ ln -s /usr/local/Cellar/ruby/1.9.3-p327/bin/rails /usr/local/bin/rails
$ source ~/.zshrc
$ which rails
/usr/local/bin/rails

OK。あ、ちなみにPATHは/usr/local/binの方が/usr/binより前に来るように設定しています。

これで再度railsアプリ作成してみる。

$ rails new tower-defence
$ cd tower-defence

続いて、HerokuはPostgreSQLなので、Gemfileのsqlite3の記述を削除しないと動かないそうなのでコメントアウトします。

$ vi Gemfile
- gem 'sqlite3'
+ group :production do
+  gem 'pg'
+ end
+ group :development, :test do
+  gem 'sqlite3'
+ end

次に、依存関係のあるgemライブラリを入れるbundleというコマンドを実行しておいた方が良いようなので、これまたgemインストールから始めます。

railsと同じく/usr/local/libにシンボリックリンクが来なかったので、自力で張ります。

$ gem install bundle
$ bundle install
$ ln -s /usr/local/Cellar/ruby/1.9.3-p374/bin/rails /usr/local/bin/rails

gemでインストールしたら必ずシンボリックリンク張らないといかんのか〜。面倒…

と、思ってググったらありました!brewbygemsを入れれば良いそうです!

あとでやっておこう…。

で、gitの初期化もそろそろしときましょう。

$ git init
$ git add .
$ git commit

これであとはherokuにdeployするのですが、その前にrailsがローカルで動くかテスト

$ rails s

localhost:3000にアクセスしてRailsのindexページが表示されることを確認!

ではherokuにデプロイしましょう!herokuへの登録は前回の記事で既にやってあるのでそこは省略。まずはログイン

$ heroku login

EmailとPasswordを求められるので入力。次にHeroku上に新しくアプリを作る。そしてremoteへpush

$ heroku create tower-defence
$ git push heroku master

最後に開く。完了!!

$ heroku open