Search code examples
rubyrubygemsbundler

Can't install JSON gem


I need to install json because I get this error:

Could not find json-1.4.6 in any of the sources

I ran gem install json and bundle install but I was only able to install json-1.5.1 when I need json-1.4.6

I have gem 'json', '1.4.6' in my gemfile, so I'm not sure what's going on...

UPDATE

I get this error:

Installing json (1.4.6) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:1216:in `chmod': Operation not permitted - /Library/Ruby/Gems/1.8/gems/json-1.4.6/CHANGES (Errno::EPERM)


Solution

  • Why did you run gem install json at all? Bundler takes care of that for you and will ensure that the correct version of each gem is installed (since sometimes dependencies require an older version). Run

    gem uninstall json
    bundle install
    

    Also ensure you have source 'https://rubygems.org' at the top of your Gemfile.

    As for the permissions info, you may have to run gem and bundle commands with sudo.

    By the way, I highly recommend taking a look at and using RVM, particularly the gemsets feature. It will make your life infinitely better when developing Ruby apps. If you decide to do so, I'd also suggest trashing all the gems you've install using the system Ruby by running sudo rm -rf /Library/Ruby/Gems/1.8/. It's also important that when using RVM you don't have to use sudo when running gem (or bundle), which is not only safer but less typing too.