Today while working on rails application I figured out that some of the gems are not configured/installed properly and it was creating strange problems and there older versions are also installed. So I decided to reinstall all installed gems.
But I wondered there is no way to automatically reinstall all the gems. What I have to do is first uninstall all the gems one by one then reinstall gems manually.
This manual process was too hectic, time consuming and also after this manual steps I forgot to reinstall some required gems, and when I ran my application it was giving me strange errors and as a rails newbie it took too much of my time to figure out things.
So after this painful experience I decided automize this whole process and ended up with one shell script with following commands.
gem list --no-versions | sed -e '/^(*|$)/d' > installed_gems
sudo gem uninstall --a --ignore-dependencies .+
cat installed_gems | xargs sudo gem install
1. gem list --no-versions | sed -e '/^(*|$)/d' > installed_gems
This will list down all the installed gems ignoring version number in file named "installed_gems"
2. sudo gem uninstall --a --ignore-dependencies .+
This command will uninstall all installed gems one by one ignoring the dependencies of gem.
3. cat installed_gems | xargs sudo gem install
This command will read file created at first step "installed_gem" and will install all latest version of all gems one by one.
4. rm installed_gems
After reinstalling all the gems file created in first step is of no use. This is just to cleanup this file. Put above 4 commands in one shell script and have fun....