问题
After I just upgrade rails from 4.1 and ruby from 2.0 to 2.1 I'm getting several load issues when I try to start rails. Many of my gems are throwing errors like this:
/Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require': cannot load such file -- jwt (LoadError)
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/oauth2-1.0.0/lib/oauth2/strategy/assertion.rb:1:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/oauth2-1.0.0/lib/oauth2.rb:8:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/omniauth-oauth2-1.2.0/lib/omniauth/strategies/oauth2.rb:1:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/omniauth-facebook-2.0.0/lib/omniauth/strategies/facebook.rb:1:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/omniauth-facebook-2.0.0/lib/omniauth/facebook.rb:2:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/omniauth-facebook-2.0.0/lib/omniauth-facebook.rb:1:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:72:in `each'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:72:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:61:in `each'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:61:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler.rb:133:in `require'
from /Users/nk/Programmering/au/au/config/application.rb:4:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:146:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:146:in `require_application_and_environment!'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands.rb:17:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
My gem file looks like this:
source 'https://rubygems.org'
# Rake and rails
gem 'rake', '10.3.2'
gem 'rails', '4.1.6'
gem 'protected_attributes'
gem 'rails-observers'
gem 'actionpack-page_caching'
gem 'actionpack-action_caching'
gem 'activerecord-deprecated_finders'
# Databases and caching
gem 'pg', '0.17.1'
gem 'apartment', '0.25.2'
gem 'redis', '~> 3.1.0'
gem 'foreigner', '1.6.1'
gem 'geocoder', '1.2.5'
gem 'dalli', '2.7.2'
gem 'hstore_accessor', '~> 0.6.0'
# Files and processing
gem 'fog', '~> 1.24.0'
gem 'rmagick', '~> 2.13.2', require: 'RMagick'
gem 'carrierwave', '~> 0.10.0'
gem 'carrierwave-meta', '~> 0.0.5'
gem 'rubyzip', '~> 1.1.2'
gem 'sitemap_generator', '~> 5.0.1'
gem 'rubyXL', '~> 3.2.3'
# Model layer
gem 'squeel', '~> 1.2.1'
gem 'ransack', '~> 1.4.0'
gem 'state_machine', '~> 1.2.0'
gem 'active_attr', '0.8.4'
gem 'omniauth-facebook', '2.0.0'
gem 'omniauth-identity', '1.1.1'
gem 'bcrypt-ruby', '~> 3.1.2', require: 'bcrypt'
gem 'redis-objects', '~> 1.0.0'
gem 'leaderboard', '~> 3.7.0'
Now if I then comment out omniauth-facebook
then i just get the following for bcrupt
instead:
/Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `require': cannot load such file -- bcrypt (LoadError)
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:72:in `each'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:72:in `block in require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:61:in `each'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler/runtime.rb:61:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@global/gems/bundler-1.7.3/lib/bundler.rb:133:in `require'
from /Users/nk/Programmering/au/au/config/application.rb:4:in `<top (required)>'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:146:in `require'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:146:in `require_application_and_environment!'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /Users/nk/.rvm/gems/ruby-2.1.3@au_rails4/gems/railties-4.1.6/lib/rails/commands.rb:17:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
And it just continues like that. Why are some of my gems suddenly causing this?
回答1:
There must be some problem in your local ruby installation.
If you are using rvm gemset then run rvm pristine
on your gemset.
If you are not using gemset then run gem pristine --all
回答2:
To me it feels like you had some gems install globally without bundler and without adding that gems to your Gemfile
. Without your Gemfile.lock
it is hard to tell, but the jwt
Gem for example is not in your Gemfile
.
I would try to add the missing gems to your Gemfile, run bundle install
again.
回答3:
Have you tried reinstalling gems with bundler to location within your application?
bundle install --path vendor/bundle
Also: if this didn't help, I would try to removing gemset within rvm and try bundle / rails c again.
回答4:
First of all, I hope you're running "bundle exec rails c" and not just "rails c" to ensure you load gems from the correct places.
if that is the case, Try running "bundle show bcrypt" and check the path, it should start with
"/Users/nk/.rvm/gems/ruby-2.1.3/"
If it doesn't, resetting bundler by deleting Gemfile.lock and running bundle install again or similar might help.
回答5:
did you runbundle update
after migrating? If not please run bundle update
and try. Before doing this remove Gemfile.lock file
回答6:
Delete your Gemfile.lock file and try to run bundle update and then bundle install again. I hope it works for you.
来源:https://stackoverflow.com/questions/26360657/many-require-cannot-load-such-file-gem-name-loaderror-after-upgrade-o