我想在只有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