Rails:缺少 gem roxml

Rails:缺少 gem roxml

我正在尝试在 Ubuntu 机器上设置 Rails 应用程序,但该应用程序总是失败并出现错误:

Missing these required gems: roxml

宝石安装后,会出现在 中gem list。该应用程序需要许多其他 gem,我都顺利安装了,但不知为何,它无法识别 roxml。

我尝试清除整个 ruby​​/rails/gem 设置并重新开始使用 rvm,但是完成该过程并安装所有必需的 gem(包括 roxml)后,我再次遇到同样的错误。

完整的错误信息是:

Missing these required gems: roxml You're running: ruby 1.8.7.334 at /home/tim/.rvm/rubies/ree-1.8.7-2011.03/bin/ruby rubygems 1.6.2 at /home/tim/.rvm/gems/ree-1.8.7-2011.03, /home/tim/.rvm/gems/ree-1.8.7-2011.03@global 

(注意:我现在正在使用带有 rvm 的 ruby​​ 企业版,但是在使用 rvm 之前,我遇到了与从 Ubuntu 存储库安装的普通 ruby​​ 1.8.7 和 ruby​​gems 相同的问题。)

我在另一台 Ubuntu 机器上运行着同样的应用程序,所有东西的版本都一样,所以这台机器上的某个地方出了问题,但我不知道该去哪里找。任何帮助都非常感谢!

答案1

我会检查两件事。第一,roxml 是否安装在 RVM 中,而不是作为通用系统上的 gem?您可以通过运行来检查/home/$user/.rvm/bin/rvm gem list

另一个问题是,gem listRVM 将列出所有已安装 Ruby 版本的 gem,而不仅仅是默认或活动的 Ruby。确保您已将 roxml 实际安装到您正在使用的 Ruby 中。

答案2

我可以通过将一些 active_support 负载包装在条件中来解决这个问题:

在:/home/tim/.rvm/gems/ree-1.8.7-2011.03/lib/ruby/gems/1.8/gems/roxml-3.1.6将第一个 active_support 部分更改为:

require 'active_support'
if Gem.loaded_specs['activesupport'].version >= Gem::Version.new('3')
    require 'active_support/inflector/inflections'
    require 'active_support/core_ext/object/duplicable'
    require 'active_support/core_ext/module/delegation'
    require 'active_support/core_ext/array/extract_options'
    require 'active_support/core_ext/hash'
    require 'active_support/core_ext/string/starts_ends_with'
end

相关内容