【问题标题】:RVM, Ruby 1.9.2, Rails 3, Passenger 3.0.2 (Bundler::GemNotFound)RVM、Ruby 1.9.2、Rails 3、Passenger 3.0.2 (Bundler::GemNotFound)
【发布时间】:2011-01-25 20:48:58
【问题描述】:

我正在使用为 Nginx 配置的 RVM、Ruby 1.9.2、Rails 3、Passenger 3.0.2, 我正确设置了服务器配置。另一个应用程序目前正在运行。

但是对于新应用,在启动服务器时

http://myapp.local(它配置了主机到 Nginx conf 上的点服务器绑定) 它返回 (Bundler::GemNotFound) 错误。如何解决这个问题?

谢谢。

【问题讨论】:

  • 请包含错误的堆栈跟踪,以便我们更深入地了解它。
  • 这是来自Passenger shorttext.com/w485coz56bs的回溯
  • 它说“在任何源中都找不到 activemerchant-1.10.0 (Bundler::GemNotFound)”,但它找不到任何 gem。与活跃商家无关。 (通过重新配置 Gemfile 进行测试)

标签: ruby-on-rails ruby ruby-on-rails-3 nginx passenger


【解决方案1】:

信不信由你,这是大多数 Rails 开发人员都会遇到的一个非常常见的问题。看看这篇文章,其中详细说明了我认为您正在寻找的修复程序。祝你好运。 http://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-rails-2-and-rails-3-apps

【讨论】:

【解决方案2】:

如需更清晰和最新的解决方案,请查看using RVM rubies with Passenger 上的官方文档页面。

关于它的要点,添加

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    gems_path = ENV['MY_RUBY_HOME'].split(/@/)[0].sub(/rubies/,'gems')
    ENV['GEM_PATH'] = "#{gems_path}:#{gems_path}@global"
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    raise "RVM gem is currently unavailable."
  end
end

# If you're not using Bundler at all, remove lines bellow
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'

致您的<rails-app-path>/config/setup_load_paths.rb

【讨论】:

    【解决方案3】:

    对于基于 rvm 的应用程序和乘客,您可以参考这些文档:

    https://rvm.io/integration/passenger http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerRuby

    我的特殊问题是我没有在当前 gemset 中安装乘客 gem:

    $ gem list --local |grep passenger # returns nothing
    

    为了安装插件和 Apache 模块,我执行了以下命令序列:

    $ gem install passenger # for a specific version use the '--version' flag
    $ gem list --local |grep passenger
    passenger (4.0.18)
    $ passenger-install-apache2-module
    

    安装后,脚本会打印说明如何在 Apache 的配置中设置PassengerDefaultRuby 变量。瞧! - 没有额外的脚本和 LOAD_PATH 操作 ;)

    【讨论】:

      【解决方案4】:

      我不知道为什么,但是我在 Global Gemset 中安装了缺少的 Gem,它可以工作!

      【讨论】:

      • 因为你安装在全局 gem 集中。全球...明白了吗?
      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 2011-07-20
      • 2011-07-24
      • 1970-01-01
      • 2011-06-13
      • 2012-04-20
      • 2011-02-22
      • 2011-07-03
      相关资源
      最近更新 更多