-
-
Save IanVaughan/2902499 to your computer and use it in GitHub Desktop.
#!/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 |
I wrote an updated version that addresses the .ruby-version
issue and also allows you to specify a list of ruby versions whose gems should be installed as command line args:
The above link doesn't seem to work :(
Sorry about that, I had changed my GitHub username. It should be fixed now.
Works great for me. Thanks!!
Legal! Cool!
Amazing script. Thanks!
+99
Works great!! Thanks a lot!
This is a great script. However, there's a minor hiccup: I got
ERROR: While executing gem ... (Gem::InstallError)
gem "bigdecimal" cannot be uninstalled because it is a default gem
Is there a fork that addresses this?
Nice one! I just wanted to remove one gem prefix for all ruby versions and was easy with this.
Just modified
list=`gem list --no-versions`
to
list=`gem list my_stupid_gem_prefix --no-versions`
Works great, thanks!
this== greatness
Wow, thanks for this script!
I am new to Ubuntu and I want to know how do you run this script. Any suggestions?
Works Thanks! Nice Script!
cool 👍
You are a life-saver. Thank you.
:)
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
Thank you!
Thanks. Saved us the trouble
Thanks!
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
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
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.
Perfect, thx!