Xcode4.3環境でRails起動エラー

2012/04/23

Lavishという Rails製のデザインフレームワークを試そうと思ったら Rails3 でscript/rails server できずにハマリしました。

どうやらXcodeのバージョンで、Ruby on Railsの挙動が異なるみたいです。

/Users/yoo/src/lavish/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end (SyntaxError)

そもそも、Rails3 x Ruby1.9.2 のちゃんと構築をしていないので怒られながらメモ

rvmのインストール

rvm(Rubyバージョン管理)が入っていなかったのでインストール

$ sudo gem install rvm

でうまくいかないので、

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

.bash_profile に書き込み

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

確認したらbashの読み込み

source ~/.bash_profile

※複数ターミナルを起動していると誤動作するので、全てのターミナルで再ログインが安全

※追記 MBAでやったら上記の方法でうまくいかなかったので、一旦Homebrewを削除、再インストールして「Installing RVM」を参照にした。

$ curl -L get.rvm.io | bash -s stable $ source ~/.rvm/scripts/'rvm'

rvmの環境確認・構築

とりあえず rvmの環境確認をする。

rvm requirements

どうやらXcode4.3 は根本的にruby 1.9.3が必要みたいです。

Xcode 4.3+ users - please be warned - only ruby-1.9.3-p125+ is partially supported - in case of any compilation issues: * downgrade to Xcode 4.1 * uninstall Xcode and install osx-gcc-installer

$ rvm get latest $ rvm pkg install readline $ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr

Rubyのバージョン確認

$ ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]

ImageMagickのインストール

bundle install をしようとしたら「ImageMagick」でコケます。

$ bundle install An error occured while installing rmagick (2.13.1), and Bundler cannot continue. Make sure that `gem install rmagick -v '2.13.1'` succeeds before bundling.

rmagick がないのか?と思いきや、

$ gem install rmagick

してもエラーになる。

どうやらHomebrewを利用しているので、ImageMagickをインストールするがうまくいかないようです。 ネットで「RMagick のインストールでコケる問題」や「MacでImageMagick+RMagickを使う」などを参考にゴニョゴニョしてみる。

brew の問題確認

$ brew doctor Warning: Your compilers are different from the standard versions for your Xcode. If you have Xcode 4.3 or newer, you should install the Command Line Tools for Xcode from within Xcode's Download preferences. Otherwise, you should reinstall Xcode. Warning: Your Xcode is configured with an invalid path. You should change it to the correct path. Please note that there is no correct path at this time if you have *only* installed the Command Line Tools for Xcode. If your Xcode is pre-4.3 or you installed the whole of Xcode 4.3 then one of these is (probably) what you want: sudo xcode-select -switch /Developer sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Xcode4.3で Developerが削除されたとかの関係(?)、そして gemsのパスも変わっているみたいです。 念のため、Xcode4.3 の仕様どおりのパスにした。

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

また、rvm/gemsのパスも異なる模様。

/Users/ユーザ名/.rvm/gems/

以上の事から、imagemagickの再インストールをしてみる。

$ brew uninstall little-cms $ brew install little-cms $ brew uninstall imagemagick $ brew install -f imagemagick --disable-openmp

1番のポイントは「-f imagemagick --disable-openmp」とすることでした(多分)。

あとは、rmagickのパーミッションやオーナーの問題(権限がない場合)もありました。

sudo chown -R ユーザ名 rmagick-2.13.1

そんなこんなで、rmagick をインストール

$ gem install rmagick $ bundle install

できた!ってことで「Lavish」でBootstrapをつくってみた。 Lavish

このブログもデザイン含めてGWに作り直したいと思いますが、時間あるかなぁ。。