Skip to content

Instantly share code, notes, and snippets.

@IanVaughan
Created June 9, 2012 20:37
Show Gist options
  • Select an option

  • Save IanVaughan/2902499 to your computer and use it in GitHub Desktop.

Select an option

Save IanVaughan/2902499 to your computer and use it in GitHub Desktop.
Uninstall all rbenv gems
#!/usr/bin/env bash
uninstall() {
list=`gem list --no-versions`
for gem in $list; do
gem uninstall $gem -aIx
done
gem list
gem install bundler
}
#rbenv versions --bare
RBENVPATH=`rbenv root`
echo $RBENVPATH
RUBIES=`ls $RBENVPATH/versions`
for ruby in $RUBIES; do
echo '---------------------------------------'
echo $ruby
rbenv local $ruby
uninstall
done
@konstantin0s
Copy link

I am new to Ubuntu and I want to know how do you run this script. Any suggestions?

@ymsrk
Copy link

ymsrk commented Jan 14, 2018

Works Thanks! Nice Script!

@marioabreu
Copy link

cool 👍

@charlesdebarros
Copy link

You are a life-saver. Thank you.
:)

@charlesdebarros
Copy link

charlesdebarros commented Oct 22, 2018

I am new to Ubuntu and I want to know how do you run this script. Any suggestions?
@konstantin0s
I am sure you may have found the solution by now but just in case, check this:
https://askubuntu.com/questions/38661/how-do-i-run-sh-files

@jcunanan05
Copy link

Thank you!

Copy link

ghost commented Feb 4, 2019

Thanks. Saved us the trouble

@mrvincenzo
Copy link

Thanks!

@coorasse
Copy link

I elaborated a version to cleanup only old versions of the gems:

#!/bin/sh RBENVPATH=`rbenv root` echo $RBENVPATH RUBIES=`ls $RBENVPATH/versions` for ruby in $RUBIES; do echo '---------------------------------------' echo $ruby rbenv local $ruby gem cleanup done 
@hdchinh
Copy link

hdchinh commented Jun 22, 2021

I elaborated a version to cleanup only old versions of the gems:

#!/bin/sh RBENVPATH=`rbenv root` echo $RBENVPATH RUBIES=`ls $RBENVPATH/versions` for ruby in $RUBIES; do echo '---------------------------------------' echo $ruby rbenv local $ruby gem cleanup done 

nice script, thank you

@Riveascore
Copy link

Riveascore commented May 4, 2024

Updated solution needed, because of the following header:

*** LOCAL GEMS ***

*** LOCAL GEMS *** aasm (5.3.0) abbrev (default: 0.1.1) ace-rails-ap (4.3) etc...

Fix:

--no-verbose is what removes the header.
(We may need another fix in the future if things change again)

#!/bin/bash gem_remove() { gem list --no-versions --no-verbose | xargs gem uninstall -aIx gem list } gem_remove_all() { #rbenv versions --bare RBENVPATH=`rbenv root` echo $RBENVPATH RUBIES=`ls $RBENVPATH/versions` for ruby in $RUBIES; do echo '---------------------------------------' echo $ruby rbenv local $ruby gem_remove done }

I don't include gem install bundler at the end.
Many times in Rails, Gemfile.lock will include a specific bundler version, so I prefer to just install that version manually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment