【问题标题】:Rails 2.2.2 issue: undefined method `activate_bin_path' for Gem:Module (NoMethodError)Rails 2.2.2 问题:Gem:Module (NoMethodError) 的未定义方法 `activate_bin_path'
【发布时间】:2016-10-14 19:16:25
【问题描述】:

我正在开发 Rails 2.2.2 应用程序。为此,我使用 Ruby 版本 1.9.3p551 安装了 rvm。此应用程序没有 Gemfile。所以正如 environment.rb 文件中提到的,我用 rails 和 sqlite3 创建了一个 Gemfile。在运行 rake db:create 时,我遇到了以下问题。

whoami@myvm:~/Desktop/practice/store$ rake db:create
/home/whoami/.rvm/gems/ruby-1.9.3-p551/bin/rake:22:in `<main>': undefined method `activate_bin_path' for Gem:Module (NoMethodError)
    from /home/whoami/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `eval'
    from /home/whoami/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `<main>'

请帮帮我。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    对我来说,(我正在使用 RVM)它只是在运行:

    gem update --system
    gem update bundler
    

    【讨论】:

    • 谢谢!刚刚也通过 Rails 5.0.0.1 和 Ruby 2.3.1 确认。
    • 它似乎也适用于 Rails 2.3.18 和 Ruby 1.9.3。 (遗留代码万岁。:-p)
    • 我在 macOS Sierra 上试过这个,由于系统完整性保护,最后一个命令需要更改为 gem install bundler -n /usr/local/bin
    【解决方案2】:

    这些命令你试过了吗

    将 /usr/lib/ruby/site_ruby/ 重命名为 site_ruby.bak/ 运行以下命令:

    gem install rubygems-update
    enter code here
    update_rubygems
    

    如果出现错误,请尝试以下操作:

    ruby --disable-gems -S update_rubygems

    【讨论】:

    • 我正在使用 rvm 并且没有 site_ruby 文件夹/文件。
    • 你需要检查你的 ruby​​ 安装在哪里
    【解决方案3】:

    我遇到了类似的问题,在运行独立的 passenger 时,它运行良好。但是,使用 systemd 服务运行它会出现与 OP 相同的错误:

    undefined method `activate_bin_path' for Gem:Module (NoMethodError)
    

    我已经设法解决了它使用

    env | egrep 'gem|rvm|ruby' > passenger.env
    

    并使用EnvironmentFile=[...]/passenger.env将其添加到服务文件中。

    希望这对其他陷入困境的人有用。

    【讨论】:

    • 谢谢。这解决了我的问题。你知道为什么会这样吗?到目前为止,我对 systemd 的体验令人失望,我想回到暴发户。
    • 因为环境变量对systemd不可见,但我不知道根本原因是什么。
    【解决方案4】:

    当您有多个版本的 RVM 和 gem 集时,通常会发生这种情况,并且它通常适用于 ruby​​ 2.2.2,消除此错误的最佳方法是。

    首先使用以下命令更新您的系统 gems

     gem update --system   
    
     OR  
    
     update_rubygems --system
    

    然后你必须更新你的捆绑器:

     gem update bundler
    

    【讨论】:

      【解决方案5】:

      尝试通过bundle运行

      cd myapp
      gem install bundler
      bundle install
      bundle exec rake db:create
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 2013-02-27
        • 1970-01-01
        • 2013-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多