64bit Linuxマシーンで32bit rubyを使う際のgem trouble

Post date: 2013/03/19 1:59:09

Add Star

に詳しく書かれている

私の場合、32bit版のruby で、gem install chefしたところ、実行時に以下のエラーが発生:

/home/anagix/anagix_tools/lib/ruby/gems/1.8/gems/yajl-ruby-1.1.0/lib/yajl/yajl.so: wrong ELF class: ELFCL\

ASS64 - /home/anagix/anagix_tools/lib/ruby/gems/1.8/gems/yajl-ruby-1.1.0/lib/yajl/yajl.so

/home/anagix/anagix_tools/lib/ruby/gems/1.8/gems/yajl-ruby-1.1.0/lib/yajl/yajl.so

これは、yajl.soが64bitにコンパイルされたのが原因。対策は、上記のサイトの通り、

# yum install glibc-devel.i386

$ env CONFIGURE_ARGS="--with-cflags='-m32' --with-ldflags='-m32'" gem install chef --no-ri --no-rdoc

これまでは、32bit OS上で、gem をnative installし、コピーしていたから問題が顕在化しなかった!