osxにてrbenvを使ってインストールしたrubyのアーキテクチャーがまちまちに、、、
気づくのに結構時間がかかった、、、、、。
shell$ rbenv shell 1.9.2-p180 shell$ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.8.0] shell$ rbenv shell 1.9.2-p290 shell$ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [i386-darwin10.8.0] shell$ rbenv shell 1.9.3-p0 shell$ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-darwin10.8.0]
私の環境の場合(SnowLeopard) rbenv install RUBY で各バージョンをインストールした所、1.9.2p180のみx86_64でインストールされていた。このバージョンのみrequie_gccの設定が入っていないのがその理由っぽい(xcodeでコンパイルするのかな?)。こいつのおかげで色々面倒になる。できればそろえたい。本当はx86_64でそろえるのが良いのかな?とも思ったんだけど色々な手間を考えてi386でそろえる事にした(前のエントリーでもmysqlをi386で入れてみたし)。
shell$ rm -rf ~/.rbenv/versions/1.9.2-p180 shell$ export CONFIGURE_OPTS="--with-arch=i386" shell$ ruby-build 1.9.2-p180 ~/.rbenv/versions/1.9.2-p180 --with-gcc
ちなみに--with-gccオプションが本当に必要なのかは知らない
追記
以下な感じのエラーが出る場合は(1.8.7をインストールする際に発現)
Last 10 log lines: ld: warning: directory not found for option '-L/Users/webadmin/.rbenv/versions/1.8.7-p352/lib' ld: warning: ignoring file cparse.o, file was built for i386 which is not the architecture being linked (x86_64) compiling readline /usr/bin/gcc-4.0 -I. -I../.. -I../../. -I../.././ext/readline -DHAVE_READLINE_READLINE_H -DHAVE_READLINE_HISTORY_H -DHAVE_RL_FILENAME_COMPLETION_FUNCTION -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_DEPREP_TERM_FUNCTION -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_BASIC_WORD_BREAK_CHARACTERS -DHAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS -DHAVE_RL_BASIC_QUOTE_CHARACTERS -DHAVE_RL_COMPLETER_QUOTE_CHARACTERS -DHAVE_RL_FILENAME_QUOTE_CHARACTERS -DHAVE_RL_ATTEMPTED_COMPLETION_OVER -DHAVE_RL_LIBRARY_VERSION -DHAVE_RL_EVENT_HOOK -DHAVE_RL_CLEANUP_AFTER_SIGNAL -DHAVE_REPLACE_HISTORY_ENTRY -DHAVE_REMOVE_HISTORY -I'/Users/webadmin/.rbenv/versions/1.8.7-p352/include' -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I'/Users/webadmin/.rbenv/versions/1.8.7-p352/include' -fno-common -g -O2 -pipe -fno-common -c readline.c readline.c: In function ‘username_completion_proc_call’: readline.c:730: error: ‘username_completion_function’ undeclared (first use in this function) readline.c:730: error: (Each undeclared identifier is reported only once readline.c:730: error: for each function it appears in.) make[1]: *** [readline.o] Error 1 make: *** [all] Error 1
export CONFIGURE_OPTS="--with-arch=i386"
↓↓↓↓↓↓↓
export CONFIGURE_OPTS="--with-arch=i386 --with-readline-dir=/usr/local/Cellar/readline/6.2.1" CFLAGS="-arch i386" LDFLAGS="-arch i386"
に変えてトライしてみて(readlineはHomebrewでインストールした場合ね)