pandazx's blog

Hadoop, データ分析など雑多な技術ブログ

開発環境構築

まずはheroku+rails+twitter bootstrap railsを試してみよう。
以下のサイトの手順を参考にする。
macを買って、今すぐherokuでruby1.9.3 + rails3.2しよう! - ppworks blog


ここで最初にインストールを促されるiTerm2はテキストエディタだ。
mac標準のterminalよりも高機能らしい
【コラム】新・OS X ハッキング! (5) 強力無比のターミナルエミュレータ「iTerm2」 | パソコン | マイナビニュース


次のXcodeの後にHomebrewをインストールするのだが、
以下を参考にして事前準備を整える。
Java Developer Updateをインストールした)
Mac デ Homebrew ノススメ | CaCi - Takahiro's Kitchen


Xcodeだが、Lionじゃないとcommand line toolはインストールできないようだ。
自分はSnow LeopardなのでApple DeveloperからXcode 3.2.6をダウンロードしてインストールした。(4.1GB)
macのinstall DVDにもXcodeがあったが、3.2で、
この後のHomebrewのbrew doctorを実行したところ、
3.2.6を要求されたのでインストールし直した。
参考:Installing Xcode for Mac OS X


次のHomebrewはパッケージ管理ツールだ。MacPortsは使わないらしい。
両社の違いは以下の参考を参照。インストール場所が/usr/local になるなど。
参考:http://tech.caph.jp/2011/04/06/homebrew%E3%81%AE%E5%B0%8E%E5%85%A5%E3%81%A8%E4%BD%BF%E3%81%84%E6%96%B9/


Homebrewインストール後に確認コマンドのbrew doctorを実行したところ、エラーが出た

Error: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
/usr/local/lib/libatk-1.0.0.dylib
/usr/local/lib/libboost_signals-xgcc40-mt-1_38.dylib
/usr/local/lib/libcairo.2.dylib
/usr/local/lib/libcurl.4.dylib
/usr/local/lib/libfontconfig.1.dylib
/usr/local/lib/libfreetype.6.dylib
/usr/local/lib/libgdk-x11-2.0.0.dylib
/usr/local/lib/libgdk_pixbuf-2.0.0.dylib
/usr/local/lib/libgio-2.0.0.dylib
/usr/local/lib/libglib-2.0.0.dylib
/usr/local/lib/libgmodule-2.0.0.dylib
/usr/local/lib/libgobject-2.0.0.dylib
/usr/local/lib/libgtk-x11-2.0.0.dylib
/usr/local/lib/libicudata.42.0.1.dylib
/usr/local/lib/libicudata.42.dylib
/usr/local/lib/libicuuc.42.dylib
/usr/local/lib/libintl.8.dylib
/usr/local/lib/libpango-1.0.0.dylib
/usr/local/lib/libpangocairo-1.0.0.dylib
/usr/local/lib/libpangoft2-1.0.0.dylib
/usr/local/lib/libpixman-1.0.dylib
/usr/local/lib/libpng12.0.dylib
/usr/local/lib/libxml2.2.dylib

一旦、このエラーはペンディングにして、
上記サイトの手順にしたがって、zsh, gitのインストール。
今まではbashを使ってきたので、zshはお初。もちろん、gitも


rvmを使ったrubyのインストールでエラーが2つ発生

clang: error: unsupported option '--with-libyaml'
(省略)
Error running 'make ', please read /Users/pandazx/.rvm/log/ruby-1.9.3-p125/make.log
There has been an error while running make. Halting the installation.
ls: /Users/pandazx/.rvm/rubies/*/bin/ruby: No such file or directory


rvm requirements すると、

For Ruby 1.9.3: Install libksba # If using Homebrew, 'brew install libksba'

とあるので、libksba をインストールする。
しかし、まだ同じエラーが出た。


Issue #885: RVM's patch for ruby 1.9.3 is broken · wayneeseguin/rvm · GitHub
これによると、diffを消して、再インストールすればうまくいくとのこと。

rm ~/.rvm/patches/ruby/1.9.3/p125/xcode-debugopt-fix-r34840.diff
rvm reinstall 1.9.3

これにしたがって、インストールしたら上手くいった。
ただ、versionが1.9.3-p194。


herokuがこのバージョンでも大丈夫なのか調べたところ、以下のチュートリアルがあるので大丈夫そう。
(と思ったら、大丈夫じゃなかったのでやり直すことになる。rvm install 1.9.3-p125とすること)
Ruby1.9.3-p194インストール - I can't change the world.
Rails Heroku Tutorial · RailsApps

注意

本ブログは最後まで出来ていない。rubyまでインストールできて、手っ取り早く構築したい人は以下を参照
Rails3.2とRuby1.9.3-p125でheroku - ものごとの調査記録


ローカルではsqliteを使うのでいらないかもしれないが、Postgresqlもインストールしておくといいかも

brew install postgresql

続き

しかし、herokuのドキュメントにはgeneral supportのruby version は 1.9.2とある。
このドキュメントが古いのかなんなのかは不明。
Heroku Ruby Support | Heroku Dev Center
(上記の問題は1.9.3を使うためにheroku-labsを使ってユーザ環境でコンパイルさせるという公式なやり方ではないことが理由と思われる)


次に、RailsMySQLを使う場合は以下のコマンドでサンプルアプリを作成する前に準備が必要

rails new heroku-sample

準備ができたら、以下のコマンドでサンプルアプリを作成

gem install mysql2
rails new heroku-sample -d mysql


捕捉
heroku login以降で一度、ターミナルを閉じてしまったら、
以下のコマンドで再ログインする

rvm use 1.9.3-p194@heroku-sample
heroku login


bundlerというコマンドがよく出てくるが、
これは環境ごとにインストールするgemを管理するためのツール
gem管理の新標準ツール"Bundler"のTips - 昼メシ物語
しかし、bundle install vendor/bundler と実行したらエラーが出て、
bundle install でやれと言われてしまったので、そちらで実行した。


ちなみに、mysqlを使うので、参考にしている手順サイトで用意されているGemfileは使わずに
そのまま、bundle install とした。


次に、git push heroku master を実行したら、
そのruby のversionは使えないと言われたので
ruby 1.9.3-p125のインストールからやり直す。


ブログが長くなったので、一度、ここで切る。