mountain lion でrvm使ってruby1.9.3インストールしようとしてはまった。さらにbundle使ってたらはまった。
MacのMountain Lionでrvmをインストールして、ruby1.9.3を入れようと思ったらハマったのでメモ。
ちなみにXcodeのバージョンは4.5.2で、Command Line Toolsはインストール済み。
rvm install 1.9.3とやると以下の文章がでてきた。
Ruby (and needed base gems) for your selection will be installed shortly.
Before it happens, please read and execute the instructions below.
Please use a separate terminal to execute any additional commands.Notes for Mac OS X 10.8.2, Xcode 4.5.2.
For JRuby: Install the JDK. See http://developer.apple.com/java/download/ # Current Java version "1.6.0_26"
For IronRuby: Install Mono >= 2.6
For Ruby 1.9.3: Install libksba # If using Homebrew, 'brew install libksba'
For Opal: Install Nodejs with NPM. See http://nodejs.org/download/To use an RVM installed Ruby as default, instead of the system ruby:
rvm install 1.8.7 # installs patch 357: closest supported version
rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system.gems # migrate your gems
rvm alias create default 1.8.7And reopen your terminal windows.
Right now Ruby requires gcc to compile, but Xcode 4.2 and later no longer ship with gcc. Instead they ship with llvm-gcc (to which gcc is a symlink) and clang, neither of which are supported for building Ruby. Xcode 4.1 was the last version to ship gcc, which was /usr/bin/gcc-4.2.
Xcode 4.1 and earlier:
- Ruby will build fine.
Xcode 4.2 and later (including Command Line Tools for Xcode):
- If you have gcc-4.2 (and friends) from an earlier Xcode version, Ruby will build fine.
- If you don't have gcc-4.2, you have two options to get it:
* Install apple-gcc42 from Homebrew
* Install osx-gcc-installerHomebrew:
If you are using Homebrew, you can install the apple-gcc42 and required libraries from homebrew/dupes:
brew update
brew tap homebrew/dupes
brew install autoconf automake apple-gcc42
rvm pkg install opensslXcode 4.2+ install or/and Command Line Tools for Xcode is required to provide make and other tools.
osx-gcc-installer:
If you don't use Homebrew, you can download and install osx-gcc-installer: https://github.com/kennethreitz/osx-gcc-installer.
Warning: Installing osx-gcc-installer on top of a recent Xcode is known to cause problems, so you must uninstall Xcode before installing osx-gcc-installer. Afterwards you may install Xcode 4.2+ or Command Line Tools for Xcode if you desire.
** NOTE: Currently, Node.js is having issues building with osx-gcc-installer. The only fix is to install Xcode over osx-gcc-installer.
Press 'q' to continue.
libksba のインストール
普通に、brew install libksba とやるとパーミッションのエラーが出たので、sudoでやろうとしたらhomebrewはsudoが使えない。
なので、mkdir /usr/local/opt して、一時的にパーミッションを777にしたらうまくいった。
libksbaとlibgpg-errorが入った。
apple-gcc42 のインストール
手順通り
ruby 1.9.3のインストール
[sagaraya: manga_log] 543 $ rvm install 1.9.3
https://rvm.io/binaries/osx/10.8/x86_64/ruby-1.9.3-p327.tar.bz2 - #configure
ruby-1.9.3-p327 - #download
ruby-1.9.3-p327 - #extract
ruby-1.9.3-p327 - #validate
ruby-1.9.3-p327 - #setup
sed: RE error: illegal byte sequence
Saving wrappers to '/Users/sagaraya/.rvm/bin'.
ruby-1.9.3-p327 - #importing default gemsets (/Users/sagaraya/.rvm/gemsets/), this may take time ...[sagaraya: manga_log] 544 $ rvm list
rvm rubies
=* /Users/sagaraya/.rvm/scripts/list: line 321: /Users/sagaraya/.rvm/rubies/ruby-1.9.3-p327/config: No such file or directory
ruby-1.9.3-p327 [ ]# => - current
# =* - current && default
# * - default
うまくいかず。
これはrvmのバグらしく、(参考:http://stackoverflow.com/questions/13224930/rvm-config-no-such-file-or-directory)
rvm get stable
rvm get head
rvm reinstall 1.9.3
したらうまくはいった!
ruby 1.9.3をデフォルトで使うものに設定
[sagaraya: manga_log] 549 $ rvm use 1.9.3 --default
Using /Users/sagaraya/.rvm/gems/ruby-1.9.3-p327
[sagaraya: manga_log] 550 $ ruby -v
ruby 1.9.3p327 (2012-11-10) [x86_64-darwin12.2.0]
以下の1.8.7を1.9.3に置き換えて設定
rvm install 1.8.7 # installs patch 357: closest supported version
rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system.gems # migrate your gems
rvm alias create default 1.8.7
bundle
bundle exec rackupとやったら、
Library not loaded: @executable_path/../lib/libruby.1.9.1.dylib (LoadError)
というエラーがでて色々調べたけど結局解決できず、
いったん
rm -rf vendor/bundle/ruby
bundle install --path vendor/bundle
したらうまくいった!