Would 'gem update --system' make my previously installed gems incompatible? - ruby

I tried to install hoe and I encounted this:
Installing hoe (2.9.1)
/Library/Ruby/Site/1.8/rubygems/installer.rb:170:in
`install': hoe requires RubyGems
version >= 1.4. Try 'gem update
--system' to update RubyGems itself. (Gem::InstallError)
I am now worried the update might corrupt my previous installed gems...

gem update --system will only update rubygems itself.
Previously installed gems are not affected and should run just like before.
Or is there a specific gem or situation you are worried about?

Upgrading RubyGems won't affect previously installed Gems.

Related

How do I upgrade Rubygems in Bluemix?

How do I upgrade Rubygems in Bluemix? I'm getting this message:
Rubygems 2.0.14.1 is not threadsafe, so your gems must be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
and since I have a lot of gems, I'd really like to use this feature.
I'm using Ruby buildpack version 1.6.7 and Ruby 2.0.0.
gem install rubygems-update
update_rubygems
# gem update --system # in fact, you are done on the previous step
Use gem update --system as stated here
Solved by using newer Ruby version 2.2.2 in newer buildpack.

How to upgrade rubygems

I need to upgrade gems to 1.8 i tried installing the respective debian packages but it seems its not getting upgraded
anujm#test:~$ dpkg -l |grep -i rubygem
ii rubygems 1.3.5-1ubuntu2 package management framework for Ruby libraries/applications
ii rubygems-lwes 0.8.2-1323277262 LWES rubygems
ii rubygems1.8 1.3.5-1ubuntu2 package management framework for Ruby libraries/applications
ii rubygems1.9 1.3.5-1ubuntu2 package management framework for Ruby libraries/applications
anujm#test:~$
anujm#test:~$ gem
gem gem1.8 gem1.9
anujm#test:~$ sudo gem1.8 install serve
ERROR: Error installing serve:
multi_json requires RubyGems version >= 1.3.6
anujm#test:~$
Install rubygems-update
gem install rubygems-update
update_rubygems
gem update --system
run this commands as root or use sudo.
You can update all gems by just performing:
sudo gem update
Or:
gem update `gem outdated | cut -d ' ' -f 1`
I found other answers to be inaccurate/outdated. Best is to refer to the actual documentation.
Short version: in most cases gem update --system will suffice.
You should not blindly use sudo. In fact if you're not required to do so you most likely should not use it.
You can update gem to any specific version like this,
gem update --system 'version'
gem update --system '2.3.0'
For me it sufficed to simply run
gem update
I wouldn't use the debian packages, have a look at RVM or Rbenv.
To update just one gem (and it's dependencies), do:
bundle update gem-name
But to update just the gem alone (without updating it's dependencies), do:
bundle update --source gem-name
If you're using RVM, the command below helped me a lot when upgrading from a very very old rubygems (eg 1.3.7) that defies the more current update commands mentioned in the other responses in this thread.
rvm rubygems <version>

Is it necessary to uninstall rubygems-update?

I was reading the Agile Web Development with Rails book the other day. The author issues the following command to update rubygems:
gem update --system
gem uninstall rubygems-update
Why is it necessary/good-practice to uninstall rubygems-update after updating rubygems?
It's definitely not necessary to uninstall rubygems-update, as your rubygems functionality will function fine with it still installed. It's optional/nice to do because it is only used for updating rubygems, and thus after rubygems has been updated the rubygems-update gem is simply an extra file and takes up space on your computer and shows up when you run gem list unnecessarily.

dev_appserver.rb cannot start after rubygems update on Ubuntu 10.04

I had rubygems 1.3.5 (or 1.3.6?) installed and then made a sudo gem update after a long while again. Some gems complained they needed a newer gems version. Because sudo gem update --system is deactivated on Ubuntu I followed these steps: How can I get RubyGems 1.3.6 on Ubuntu 10.4
But now I cannot start the dev_appserver.rb anymore, it says:
=> Bundling gems
ERROR: While executing gem ... (RuntimeError)
Unknown command bundle
I also tried to do sudo gem update and sudo gem update --system again a few times but everything is up-to-date now. Here is a list of my gems: http://pastebin.com/cFaTCyF5
It's a bit of a hack around but I can't really tell what's going on properly from what you sent but I know a few people have been having problems after running gem update --system lately. Find out what version you've just installed with
gem list
Look for the update, should look something like this: rubygems-update-1.5.0
Then try rolling back your rubygems version
sudo gem uninstall rubygems-update -v 1.5.0
sudo gem install rubygems-update -v 1.4.2 <-- try a different version
gem install --system 1.3.7 worked in my case

RubyGems - my system can't seem to find any remote gems to install

Trying to install the 'less' gem. I type sudo gem install less as instructed at http://lesscss.org/, and I get the following error:
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find less (> 0) in any repository
Alright, so I figure maybe I just need to update RubyGems. Trying 'gem update --system' gets me
Updating RubyGems...
Attempting remote update of rubygems-update
ERROR: While executing gem ... (Gem::InstallError)
rubygems-update requires builder >= 0
Arrgh. Alright, then let's try 'sudo gem install builder':
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find builder (> 0) in any repository
Seems that no matter what gem I try to install, it can't be found in any repository. I check my environment, and rubyforge is listed:
RubyGems Environment:
- VERSION: 0.9.4 (0.9.4)
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
- GEM PATH:
- /usr/local/lib/ruby/gems/1.8
- REMOTE SOURCES:
- http://gems.rubyforge.org
Any idea what's going on? I'm on OSX 10.4, and I installed Ruby 1.8.6 before this.
I think rubygems 1.3.x requires ruby 1.8.7 so you might install that first. Then update rubygems to 1.3.7. via gem update --system
The version of rubygems bundled in osx uses gemforge as its offical source of gems - this has since been replaced with gemcutter. You should be able to do
sudo gem update --system
To upgrade to update the latest version of ruby gems, which will then use gemcutter as the sources link
That's a really old version of rubygems! How did you install this?
Is it a manual install? If so, perhaps you could try a manual upgrade the same way.
Do the following:
sudo gem update --system
to update your install of RubyGems. Then, add the Github gem repository to your sources. I suggest github because you'll find a lot of useful things there:
sudo gem sources -a http://gems.github.com

Resources