很多:`require’:无法加载这样的文件 – 升级ruby / rails后的“gem_name”(LoadError)

在我刚刚从4.1升级rails并将ruby从2.0升级到2.1之后,当我尝试启动rails时,我遇到了几个加载问题。 我的很多gem都抛出这样的错误:

/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 `' 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 `' 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 `' 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 `' 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 `' 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 `' 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 `' 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 `' from script/rails:6:in `require' from script/rails:6:in `' 

我的gem文件如下所示:

 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' 

现在,如果我然后评论omniauth-facebook然后我只是得到以下的bcrupt

 /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 `' 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 `' from script/rails:6:in `require' from script/rails:6:in `' 

它就这样继续下去。 为什么我的一些gem会突然造成这种情况?

您的本地ruby安装必定存在一些问题。

如果您使用的是rvm gemset,则在您的gemset上运行rvm pristine 。 如果你没有使用gemset,那么运行gem pristine --all

对我而言,感觉就像你在没有捆绑器的情况下全局安装了一些gem而没有将这些gem添加到你的Gemfile 。 没有你的Gemfile.lock很难说,但例如jwt Gem不在你的Gemfile

我会尝试将缺少的gem添加到您的Gemfile中,再次运行bundle install

您是否尝试将捆绑包中的gem重新安装到应用程序中的位置?

 bundle install --path vendor/bundle 

另外:如果这没有帮助,我会尝试删除rvm中的gemset并再次尝试bundle / rails c。

首先,我希望你运行“bundle exec rails c”而不仅仅是“rails c”来确保你从正确的位置加载gem。

如果是这种情况,尝试运行“bundle show bcrypt”并检查路径,它应该以

 "/Users/nk/.rvm/gems/ruby-2.1.3/" 

如果没有,通过删除Gemfile.lock重新启动bundler并再次运行bundle install或类似可能会有所帮助。

迁移后你是否运行了bundle update ? 如果没有,请运行bundle update并尝试。 在此之前删除Gemfile.lock文件

删除Gemfile.lock文件并尝试运行bundle update ,然后再次捆绑安装 。 我希望这个对你有用。