Bundler throws uninitialized constant Gem::SilentUI (NameError) error after upgrading to Rubygems 1.5.0
RubyRubygemsBundlerRuby Problem Overview
I ran gem update --system
to update to Rubygems 1.5.0 and after every time I run any bundle
commands I get:
rvm/gems/ruby-1.8.7-p249/gems/bundler-1.0.9/lib/bundler/ui.rb:56: uninitialized constant Gem::SilentUI (NameError)
Has anyone else had this issue?
Ruby Solutions
Solution 1 - Ruby
Update to bundler 1.0.10 or above (gem update bundler
). The issue is fixed in later versions.
Solution 2 - Ruby
If you're a bit vague on what bundler actually is and don't want to learn then the very short answer to the question is:
gem install bundler
Solution 3 - Ruby
This was posted on the issue tracker, by my count, 6 times now.
Here's the one that I've been linking everybody to: https://github.com/carlhuda/bundler/issues/issue/995
Solution 4 - Ruby
Re: "just Update to bundler 1.0.10." — Note that you can't necessarily get the new version simply by doing
sudo gem update
You'll need to fully uninstall your current bundler, ignore the warnings about the dependencies it breaks, and then re-install it. That fixed my Bundler 1.0.7 and got my system working again.
Solution 5 - Ruby
It looks like RubyGems 1.5.0, which just came out today, is incompatible with Bundler 1.0.9.
You'll probably want to downgrade back to RubyGems 1.4 until an update is released for Bundler (which will likely be very, very soon).
Update: Bundler 1.0.10 is out now.
Solution 6 - Ruby
You can also downgrade Rubygems, however this is less than ideal, but for legacy systems if you need a specific bundler version you will have to do this.
For example on the app I am working on at the moment we are using:
Ruby 1.8.6-p383 RubyGems 1.3.6 Bundler 0.9.26
Solution 7 - Ruby
Note that if you're using rvm, you may not be able to upgrade bundler yourself. You may need to upgrade rvm in order to update bundler, since rvm integrates bundler pretty tightly. I got this error, tried to upgrade bundler, couldn't, and upgrading rvm fixed my problem.