我已经成功安装了 ruby1.9.1,但在下载提供的 .tgz 存档后这里并做
sudo ruby1.9.1 setup.rb
我明白了:
/home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems/source_index.rb:62:in `installed_spec_directories': undefined method `path' for Gem:Module (NoMethodError)
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems/source_index.rb:52:in `from_installed_gems'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems.rb:914:in `source_index'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems/gem_path_searcher.rb:98:in `init_gemspecs'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems/gem_path_searcher.rb:13:in `initialize'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems.rb:873:in `new'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems.rb:873:in `searcher'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems.rb:495:in `find_files'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems.rb:1034:in `load_plugins'
from /home/elliot/Downloads/rubygems-1.4.1 (2)/lib/rubygems/gem_runner.rb:84:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from setup.rb:25:in `<main>'
为什么使用 Ruby1.9.1 安装 RubyGems 如此痛苦?我该如何正确安装它?提前谢谢,ell。
答案1
就像 Python(和 Java)一样,如果你在基于 Debian 的系统上使用默认安装,就会遇到很多问题。每种语言似乎都想大张旗鼓地拥有一个自动化的安装系统,而不是使用现有的系统。
真正的解决方案是通过 apt 安装 ruby 和 rubygems,如果包不存在,则创建包并将它们托管在 ppa 中以供其他人安装。
答案2
$ sudo apt-get 安装 ruby1.9.1 gem1.9.1
我个人建议使用 ruby 1.9.2p94 或更高版本,因为 1.9.2p0 有套接字库错误。
注意,$ sudo apt-get install ruby1.9.2 gem1.9.2
安装的是二进制 ruby1.9.1,但是运行时ruby1.9.1 -v
它会显示 ruby 1.9.2。我向 ubuntu 提交了一个错误,他们关闭了它,说他们不在乎。
答案3
如果你有兴趣使用最新版本的 Ruby(我建议使用 1.9.2,因为它是最新稳定版本),那么我见过的实现此目的的最佳方法是使用虚拟机。