9

I'm trying to install bundler gem on Mac OS Yosmite

~/code/hello gem install bundler
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

I've done the following:

  • Install zlib through homebrew
  • Upgrade Rubygems
  • Reinstall RVM and Ruby 2.2.2
  • Switched to Rbenv and Ruby 2.2.2

This is really doing my head in. Ruby 2.2.1 works fine but 2.2.2 causes this issue whenever I try to install a gem.

Anyone got any ideas?

stephenmurdoch
  • 34,024
  • 29
  • 114
  • 189

2 Answers2

10

The following worked for me:

brew install homebrew/dupes/zlib
rvm reinstall 2.2.2 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8

Hope this helps anyone else who runs into it.

stephenmurdoch
  • 34,024
  • 29
  • 114
  • 189
  • 3
    This works very well. Thankyou @stephenmurdoch! I would add a comment though to check if zlib is already installed with `brew info zlib`. For me, the directory was the same, but I think it would be good to have that information to help prevent a complete copy and paste and get the user thinking a bit :) – BenMorganIO Mar 23 '17 at 17:44
4

Try rvm pkg install zlib (from this question)

RVM pkg docs: https://rvm.io/packages


It also looks like RVM has a more up to date way of managing packages called autolibs. Check rvm autolibs show, which I hope will be default(enabled) since you just installed. If it's not, rvm autolibs enable, or you can even tell it to use Homebrew instead of its own manager with rvm autolibs homebrew.

RVM autolibs docs: https://rvm.io/rvm/autolibs

Kristján
  • 18,165
  • 5
  • 50
  • 62