我想在只有Ruby 1.8.6的基於Fedora的發行版上安裝RubyGems。我下載了RubyGems的1.6.2包,解壓縮並運行是否可以在Ruby 1.8.6上安裝RubyGems?
$ ruby setup.rb
它彈了有相當無用的錯誤消息:
./lib/rubygems/custom_require.rb:54: warning: parenthesize argument(s) for future version
./lib/rubygems/custom_require.rb:57:in `require': undefined method `end_with?' for "no such file to load -- Win32API":String (NoMethod\
Error)
from ./lib/rubygems/config_file.rb:55
from ./lib/rubygems/custom_require.rb:36:in `gem_original_require'
from ./lib/rubygems/custom_require.rb:36:in `require'
from ./lib/rubygems/gem_runner.rb:8
from ./lib/rubygems/custom_require.rb:36:in `gem_original_require'
from ./lib/rubygems/custom_require.rb:36:in `require'
from setup.rb:25
望着異常的源頭,似乎它首先嚐試:
require "etc"
Etc.sysconfdir
並且當拋出一個NoMethodError
它試圖要求Win32API
(我假定不存在在Linux)。
我猜這可能是因爲我有一箇舊版本的Ruby,但我找不到任何地方記錄的RubyGems版本要求。任何人都可以建議如何繼續這個?
我無法找到我的發行版本的rubygems。我實際上並沒有使用Fedora,而是基於它的修改版本,我不相信所有的標準軟件包都可用。無論是那個還是我都沒有把正確的魔法傳遞給yum。 – 2011-03-30 16:10:56
我同意你的意見。如果您不需要安裝多個Ruby環境,則可能不需要RVM。但即使您只使用一個Ruby版本並需要使用rubygems,RVM也可以幫助您使用[named gem sets](http://rvm.beginrescueend.com/gemsets/basics/)來保持組織的有序性。解釋器(MRI,Rubinus,JRuby等)的安裝非常簡單。如果你不想從源代碼構建東西(RVM爲你下載,構建,安裝和管理紅寶石),這可能是一個重要的事情。 – 2011-03-30 19:07:52
什麼?它與linux軟件包管理器比rubygems「更好」無關。他們完成不同的工作。 Apt,yum和朋友的目的是安裝系統當前指定的「穩定版」。 Rubygems旨在同時管理同一個gem的多個版本。當你安裝一個(比如說)rails應用程序的gem依賴項時,你不需要「穩定的版本」 - 你想要開發應用程序的確切版本。 (這就是捆綁軟件的用途。)說一個「更好」是誤解它們的互補目的。 – 2011-08-28 03:00:02