Redhat 5.5 上的问题 运行 RubyGems

Trouble running RubyGems on Redhat 5.5

我正在尝试在 RedHat 5.5 机器上安装 Ruby 和 RubyGems。我通过 运行 执行以下两个命令得到了它们:

sudo yum install ruby
sudo yum install rubygems

两个都安装好了。但是,当我尝试 运行 gem 时,出现以下错误:

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in require': undefined methodend_with?' for "no such file to load -- Win32API":String (NoMethodError) from /usr/lib/ruby/site_ruby/1.8/rubygems/config_file.rb:55 from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:inrequire' from /usr/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:8 from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:inrequire' from /usr/bin/gem:9

不管我运行是什么命令,它都会抛出那个。 (我试过gem -vgem update

Ruby 的版本似乎是 1.8 但我无法确定 RubyGems 版本。我会 vi 进入 rubygems.rb 并在顶部将版本统计为 1.5.

尝试通过运行建议的降级命令来修复here,但它也会抛出同样的错误。

对解决这个问题有什么帮助吗?只想得到这个 运行ning 以便我可以 运行 RoR 应用程序..

这里可疑的是 yum 安装了 ruby 1.8,这是一个非常过时的版本,看起来你的系统上现在有两个版本的 ruby 并且 gem 试图使用旧的一.

检查最近安装的包的版本并尝试强制rubygems使用新版本(通过删除旧的ruby或链接到返回的路径which ruby)

RedHat 5 附带 Ruby 1.8.5 和一个同样古老的 rubygems。 rubygems 和 ruby 版本都太旧了,无法再被 OS 基础包之外的任何东西支持。即使在 OS 包中,由于整个系统的年龄,他们可能不会自行更改任何内容。

如果你真的 want/have 在 Red Hat 5 上使用 Ruby,你可能需要为它获取另一个来源,即 OS 提供的 RPM,例如rbenv / ruby-build or ruby-install or even rvm。您应该使用较新的 Ruby 版本,即 2.1 或 2.2 版本。语言开发人员现在不支持所有 Ruby 版本 < 2.0。

或者,您应该尝试使用较新版本的 RedHat,即不需要支持 8 年旧软件的 RedHat 7...