Installing Rails gem fails with “undefined method `spec’ for nil:NilClass” error15 Apr 2011
Today, while installing Rails 3, my computer suffered a power outage. This does not happen very often, in fact, this was actually due to the computer overheating! After pouring cold water over the keyboard, I restarted the computer and continuing the Rails 3 installation the process, but to my shock and horror, it failed with this message:
ERROR: While executing gem ... (NoMethodError) undefined method `spec' for nil:NilClass
I’ll be honest with you, I was kind of expecting problems to happen since the computer did abruptly shut off during an installation process – but now what do I do!? Well, after a little Googling, the problem was solved. I found out that it’s due to the gem install cache folder which (due to the power interruption) now contained corrupted / empty gem files. My solution was to clear this cache and run the install again, as follows:
- Find out the location of your cache using:
- List all the gems in that cache, using, for example:
ls -l /usr/lib/ruby/gems/1.8/cache/
- Compare with successfully installed gems using
- Remove the gems from the cache list that are missing from the gem list using the
- Continue the installation, for example.
sudo gem install -v=3.0.6 rails --no-rdoc --no-ri
So now if you have a power outage or any other external failure during a gem installation process you don’t need to panic. Just clear the cache and continue where you left off before you were rudely interrupted!