RVM Saves the Day for Octopress15 Jul 2013
Octopress is a lean blogging engine that happens to power RayHightower.com. Earlier today, after a quick update to the blog, I encountered the following:
$ rake generate /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/bundler-1.2.4/lib/bundler/rubygems_integration.rb:187:in `stub_source_index170': uninitialized constant Gem::SourceIndex (NameError) from /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/bundler-1.2.4/lib/bundler/rubygems_integration.rb:353:in `stub_rubygems' from /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/bundler-1.2.4/lib/bundler/rubygems_integration.rb:250:in `replace_entrypoints' from /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/bundler-1.2.4/lib/bundler/runtime.rb:14:in `setup' from /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/bundler-1.2.4/lib/bundler.rb:116:in `setup' from /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/rubygems-bundler-1.1.0/lib/rubygems-bundler/noexec.rb:77:in `setup' from /Users/rth/.rvm/gems/ruby-1.9.3-p448@global/gems/rubygems-bundler-1.1.0/lib/rubygems-bundler/noexec.rb:89:in `<top (required)>' from /Users/rth/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:116:in `require' from /Users/rth/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:116:in `rescue in require' from /Users/rth/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:122:in `require' from /Users/rth/.rvm/gems/ruby-1.9.3-p448@octopress/bin/ruby_noexec_wrapper:9:in `<main>' $
Not good. What happened?
From the error message, it appeared that my current version of Bundler was incompatible with Octopress. Googling for the error message (a favorite trick) was unhelpful. Had to try a different line of attack.
The Solution: Roll Back
Fortunately, I use RVM. Currently installed versions of Ruby:
~$ rvm list rvm rubies jruby-1.7.3 [ x86_64 ] macruby-0.12 [ i686 ] ruby-1.8.7-p334 [ i686 ] ruby-1.9.2-p290 [ x86_64 ] ruby-1.9.3-p448 [ x86_64 ] =* ruby-2.0.0-p247 [ x86_64 ] # => - current # =* - current && default # * - default
$ rake deploy last worked with Ruby 1.9.2 on my machine, I decided to roll back to that point.
$ rvm use ruby-1.9.2-p290
Next, I built another
octopress gemset to work with this version of Ruby, pointed to the gemset, and used Bundler to add the necessary gems.
$ rvm gemset create octopress $ rvm gemset use octopress $ bundle install
$ rake generate works as required.
$ rake generate ## Generating Site with Jekyll identical source/stylesheets/screen.css Configuration from /Users/rth/Code/Ruby/apps/rayhightower/_config.yml Building site: source -> public Successfully generated site: source -> public
RVM Saves the Day
Once again, RVM lets me recover quickly by shifting to an earlier version of Ruby. What’s the root cause of the problem? I don’t know at this point. But for now, the blog is up & running!