Uninstall old versions of Ruby gems

I have several versions of a Ruby gem:

$ gem list rjb (1.3.4, 1.3.3, 1.1.9) 

How can I remove old versions but keep the most recent?

0

7 Answers

# remove all old versions of the gem gem cleanup rjb # choose which ones you want to remove gem uninstall rjb # remove version 1.1.9 only gem uninstall rjb --version 1.1.9 # remove all versions less than 1.3.4 gem uninstall rjb --version '<1.3.4' 
1

For removing older versions of all installed gems, following 2 commands are useful:

 gem cleanup --dryrun 

Above command will preview what gems are going to be removed.

 gem cleanup 

Above command will actually remove them.

3

Way to clean out any old versions of gems.

sudo gem cleanup 

If you just want to see a list of what would be removed you can use:

sudo gem cleanup -d 

You can also cleanup just a specific gem by specifying its name:

sudo gem cleanup gemname 

for remove specific version like 1.1.9 only

gem uninstall gemname --version 1.1.9 

If you still facing some exception to install gem, like:

invalid gem: package is corrupt, exception while verifying: undefined method `size' for nil:NilClass (NoMethodError) in /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem

the, you can remove it from cache:

rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem 

For more detail:

1

Try something like gem uninstall rjb --version 1.3.4.

1

gem cleanup uses system commands. Installed gems are just directories in the filesystem. If you want to batch delete, use rm -R.

  1. gem environment and note the value of GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R
1

You might need to set GEM_HOME for the cleanup to work. You can check what paths exist for gemfiles by running:

gem env 

Take note of the GEM PATHS section.

In my case, for example, with gems installed in my user home:

export GEM_HOME="~/.gem/ruby/2.4.0" gem cleanup 
bundler clean 

Stopped the message showing for me, as a last step after I tried all of the above.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like