Ruby-on-rails – Error on starting application Bundler::GemNotFound

bundlergemrackrack-powruby-on-rails

I have just started a new app but am getting this error when I click the 'about your application's environment' link on the Welcome aboard page.

Error starting application Your Rack app raised an exception when Pow
tried to run it.

Bundler::GemNotFound: Could not find activesupport-3.2.6 in any of the
sources

My app is running:

  • Rails 3.2.6
  • Ruby 1.9.3p194
  • Rubygems 1.8.24
  • RVM 1.14.5
  • POW 0.4.0

I found similar questions where the problem was to do wit husing passenger, but I'm not using that.

When I run gem list I get:

* LOCAL GEMS *

actionmailer (3.2.6) actionpack (3.2.6) activemodel (3.2.6)
activerecord (3.2.6) activeresource (3.2.6) activesupport (3.2.6) arel
(3.0.2) builder (3.0.0) bundler (1.1.4) coffee-rails (3.2.2)
coffee-script (2.2.0) coffee-script-source (1.3.3) daemon_controller
(1.0.0) erubis (2.7.0) execjs (1.4.0) fastthread (1.0.7) hike (1.2.1)
i18n (0.6.0) journey (1.0.4) jquery-rails (2.0.2) json (1.7.3) mail
(2.4.4) mime-types (1.19) multi_json (1.3.6) passenger (3.0.13)
polyglot (0.3.3) rack (1.4.1) rack-cache (1.2) rack-ssl (1.3.2)
rack-test (0.6.1) rails (3.2.6) railties (3.2.6) rake (0.9.2.2) rdoc
(3.12) rubygems-bundler (1.0.3) rvm (1.11.3.4) sass (3.1.20)
sass-rails (3.2.5) sprockets (2.4.3, 2.1.3) sqlite3 (1.3.6) thor
(0.15.4, 0.15.3) tilt (1.3.3) treetop (1.4.10) tzinfo (0.3.33)
uglifier (1.2.6)

Any help would be much appreciated, thanks.

update

source 'https://rubygems.org'

gem 'rails', '3.2.6'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (3.2.6)
      actionpack (= 3.2.6)
      mail (~> 2.4.4)
    actionpack (3.2.6)
      activemodel (= 3.2.6)
      activesupport (= 3.2.6)
      builder (~> 3.0.0)
      erubis (~> 2.7.0)
      journey (~> 1.0.1)
      rack (~> 1.4.0)
      rack-cache (~> 1.2)
      rack-test (~> 0.6.1)
      sprockets (~> 2.1.3)
    activemodel (3.2.6)
      activesupport (= 3.2.6)
      builder (~> 3.0.0)
    activerecord (3.2.6)
      activemodel (= 3.2.6)
      activesupport (= 3.2.6)
      arel (~> 3.0.2)
      tzinfo (~> 0.3.29)
    activeresource (3.2.6)
      activemodel (= 3.2.6)
      activesupport (= 3.2.6)
    activesupport (3.2.6)
      i18n (~> 0.6)
      multi_json (~> 1.0)
    arel (3.0.2)
    builder (3.0.0)
    coffee-rails (3.2.2)
      coffee-script (>= 2.2.0)
      railties (~> 3.2.0)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.3.3)
    erubis (2.7.0)
    execjs (1.4.0)
      multi_json (~> 1.0)
    hike (1.2.1)
    i18n (0.6.0)
    journey (1.0.4)
    jquery-rails (2.0.2)
      railties (>= 3.2.0, < 5.0)
      thor (~> 0.14)
    json (1.7.3)
    mail (2.4.4)
      i18n (>= 0.4.0)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.19)
    multi_json (1.3.6)
    polyglot (0.3.3)
    rack (1.4.1)
    rack-cache (1.2)
      rack (>= 0.4)
    rack-ssl (1.3.2)
      rack
    rack-test (0.6.1)
      rack (>= 1.0)
    rails (3.2.6)
      actionmailer (= 3.2.6)
      actionpack (= 3.2.6)
      activerecord (= 3.2.6)
      activeresource (= 3.2.6)
      activesupport (= 3.2.6)
      bundler (~> 1.0)
      railties (= 3.2.6)
    railties (3.2.6)
      actionpack (= 3.2.6)
      activesupport (= 3.2.6)
      rack-ssl (~> 1.3.2)
      rake (>= 0.8.7)
      rdoc (~> 3.4)
      thor (>= 0.14.6, < 2.0)
    rake (0.9.2.2)
    rdoc (3.12)
      json (~> 1.4)
    sass (3.1.20)
    sass-rails (3.2.5)
      railties (~> 3.2.0)
      sass (>= 3.1.10)
      tilt (~> 1.3)
    sprockets (2.1.3)
      hike (~> 1.2)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sqlite3 (1.3.6)
    thor (0.15.4)
    tilt (1.3.3)
    treetop (1.4.10)
      polyglot
      polyglot (>= 0.3.1)
    tzinfo (0.3.33)
    uglifier (1.2.6)
      execjs (>= 0.3.0)
      multi_json (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  coffee-rails (~> 3.2.1)
  jquery-rails
  rails (= 3.2.6)
  sass-rails (~> 3.2.3)
  sqlite3
  uglifier (>= 1.0.3)

I have run bundle install which completed fine. However, if I run sudo bundle install I get:

/Users/dave/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
    from /Users/dave/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /Users/dave/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
    from /Users/dave/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle:18:in `<main>'
    from /Users/dave/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
    from /Users/dave/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'

Best Answer

Pow is probably trying to start your app with the "bundle exec" prefix. That means that your app will only see the gem which are in the Gemfile (and more precisely, only the gems which are in the groups of your current environment).

This is great because it enables you to have multiple apps using the same gem in different version : You might have an app using Rails 2 and another one using Rails 3, both are installed on your system but your first app says it depend on Rails 2 in its Gemfile and the other one specify Rails 3 as a dependency.

Long story short : You must declare each of your dependency in the Gemfile and run "bundle install" before accessing your app.

One more advice : Don't forget to specify the version of rake and even bundler you use, that might save your life when you upgrade those gems on your dev system but not on your prod server

Related Topic