Ubuntu

Rails:缺少寶石 roxml

  • March 25, 2011

我正在嘗試在 Ubuntu 機器上設置 Rails 應用程序,但該應用程序總是失敗並出現錯誤:

Missing these required gems: roxml

gem安裝,並出現在gem list. 該應用程序需要許多其他gem,我安裝了所有這些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​​ 企業版,但我在使用 ruby​​ 1.8.7 和 ruby​​gems 之前的 rvm 之前遇到了同樣的問題,它們都是從 Ubuntu 儲存庫安裝的。)

我有相同的應用程序在另一個具有相同版本的所有內容的 Ubuntu 機器上執行,所以在這台機器上的某個地方出現了一些問題,但我不確定在哪裡看。任何幫助表示讚賞!

我可以通過在條件中包裝一些 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

我會檢查兩件事。第一個是將 roxml 安裝到 RVM 中,而不是作為通用系統上的 gem?您可以通過執行檢查/home/$user/.rvm/bin/rvm gem list

另一個問題是,gem list在 RVM 中,將列出所有已安裝 Ruby 版本的 gem,而不僅僅是預設或活動的 Ruby。確保您已將 roxml 實際安裝到您正在使用的 Ruby 中。

引用自:https://serverfault.com/questions/251567