【问题标题】:Bundler::GemRequireError when trying to run a rails app尝试运行 Rails 应用程序时出现 Bundler::GemRequireError
【发布时间】:2016-06-13 10:58:43
【问题描述】:

在尝试运行 rails 应用程序时,我收到以下错误

rails s -p 5000
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant Net::SMTPSession
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: previous definition of SMTPSession was here
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: already initialized constant Net::POP
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: previous definition of POP was here
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: already initialized constant Net::POPSession
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: previous definition of POPSession was here
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: already initialized constant Net::POP3Session
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: previous definition of POP3Session was here
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant Net::APOPSession
    /home/user/.rvm/gems/ruby-2.1.6/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: previous definition of APOPSession was here
    /home/user/.rvm/gems/ruby-2.1.6/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'activeadmin'. (Bundler::GemRequireError)

是什么导致打包器中出现 Gem Require 错误?

【问题讨论】:

  • 似乎某些依赖项被加载了两次。你能告诉我们你正在使用的 Gemfile 吗?
  • 你如何在 gem 文件中声明它?

标签: ruby-on-rails bundler


【解决方案1】:

我希望它尝试加载 activeadmin

可能是activeadmin中的问题

检查 gemfile 和安装

  gem 'activeadmin'

使用它来安装activeadmin:Active admin install with Rails 4

【讨论】:

    【解决方案2】:

    您似乎有多个版本的 gem tlsmail 正在安装/加载。这就是原因,您会收到已初始化的警告。你可以做的是运行:

     gem list --local | grep 'tlsmail'
    

    这将返回已安装 gem 的版本列表。然后您可以删除其中一个版本(根据您的项目的依赖项)并查看它是否有效。

    gem uninstall tlsmail -v <version> 
    

    您可能还想检查 Gemfile 中是否有不同版本的相同 gem。

    希望有帮助!

    【讨论】:

    • tlsmail只有一个版本
    【解决方案3】:

    你初始化你的 gemset 了吗? (因为您使用的是 RVM)

    在运行服务器之前按如下方式初始化您的 gemset,

    rvm use ruby-2.3.0@rails425
    

    将 ruby​​ 的版本和 gemset 的名称替换为您的 ruby​​ 版本和 gemset 的名称。

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 2016-03-28
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多