How to fix the iconv require error in Ruby 1.9

So you’re trying out the pre-release version of Rails 3.0 with Ruby 1.9 and you keep on getting the following error:

activesupport-3.0.pre/lib/active_support/inflector/transliterate.rb:2:in `require’: no such file to load – iconv (LoadError)

If you are using rvm to install and switch between different versions of ruby then follow the following steps:

  1. Install readline using rvm: rvm install readline rvm package install readline
  2. Now install iconv by executing: rvm install iconv rvm package install iconv
  3. if you already have a version of Ruby 1.9 installed, we need to remove it by executing: rvm remove 1.9.1/1.9.2
  4. The final step is to re-install the version of ruby: rvm install –trace 1.9.2 -C –with-iconv-dir=$HOME/.rvm/us
    (If you are having problems with the command, use the pastie that Glenn Rempe posted in the comments. Thanks Glenn)

Now to test that it worked:

  1. Change to the ruby version you installed: rvm use 1.9.1/1.9.2
  2. Check you are on the right version of ruby: ruby -v #=> ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.2.0]
  3. Start a new irb session
  4. Now you should be able to require ‘iconv’ and get a ‘true’ result

    irb(main):001:0> require ‘iconv’

Now you should be good to go!


Leave a comment

  1. Hi Glenn,

    Yes, i’ve seen the lighthouse ticket. This solution is out there, I just wanted to bring all the info together for the less experienced rails developer. Thanks for pointing out the command gets destroyed by wordpress. I’ve posted late last night while fighting with the exact problem.

    Cheers,
    Marcus

  2. Thanks for this. I think you mean “rvm package install readline” and “rvm package install iconv”…

  3. If you’ve installed RVM as root, don’t forget to update the path to libiconv – it’ll be shown in the output of rvm package install iconv and is likely /usr/local/rvm/usr, which means you’d run:

    rvm install --trace 1.9.1 -C --with-iconv-dir=/usr/local/rvm/usr

  4. Pingback: How to fix the iconv require error in Ruby 1.9 and RVM « notes from a coder

  5. On HPUX at least I found the error to be related to the path ruby was looking for shared libs. Since libiconv.so comes from the HPUX Porting Center as a depot, the /etc/SHLIB_PATH was not updated to point to the /usr/local/lib/hpux32 location for the libiconv.so files. Once SHLIB_PATH was setup the issue we resolved without recompiling or rebuilding Ruby.