我正在将 ruby 1.9.2 添加到运行 10.6.8 的 Mac 并遇到了 rvm rubygems latest 的问题。我已经毫无问题地运行了以下命令:
$ rvm install 1.9.2
$ rvm use 1.9.2
$ ruby --version
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
然后就报错了:
$ rvm rubygems latest
Removing old Rubygems files...
Installing rubygems-1.8.10 for system ...
ERROR: Error running 'GEM_PATH=":@global" GEM_HOME="" "/usr/local/rvm/rubies//bin/ruby" "/usr/local/rvm/src/rubygems-1.8.10/setup.rb"', please read /usr/local/rvm/log/system/rubygems.install.log
WARN: Installation of rubygems did not complete successfully.
ln: /usr/local/rvm/rubies//lib/ruby/gems/: No such file or directory
这里显而易见的是 bin/ruby 和 lib/ruby 路径中的额外正斜杠。有什么想法是从哪里来的以及如何解决吗?
请注意,我的 .bash_profile 文件末尾还有以下行:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
我正在做所有这些,以便我可以运行 Octopress。我还有一个正在同一台机器上开发的 Rails 2.3.8 项目。这是我第一次处理 ruby (1.8.7) 系统版本以外的任何东西。
最佳答案
我遇到过同样的问题,虽然我没有真正完全理解为什么会这样,但针对主要症状为我解决了。
您的系统上似乎已经安装了另一个版本的 ruby。 rvm rubygems 脚本中产生错误的行是这样的:
__rvm_run "rubygems.install"\
"GEM_PATH=\"$GEM_PATH:${GEM_PATH%%@*}@global\"GEM_HOME=\"$GEM_HOME\"\"${rvm_ruby_binary}\"\"${rvm_src_path}/$rvm_gem_package_name/setup.rb\“”\
“正在为 ${rvm_ruby_string} 安装 $rvm_gem_package_name ...”
https://github.com/wayneeseguin/rvm/blob/master/scripts/rubygems#L104
我认为在内部 rvm 正在迷失自己并创建带有双斜杠的路径,可能是因为 RVM 将 RVM 本地目录附加到类似于 which ruby
(或其他任何命令)的输出rvm 正在搜索的路径可能是)。我真的不知道为什么会这样(RVM 不能在安装了 ruby 的系统中工作吗?)。
无论如何,为了在我的机器上修复这个问题,我只是运行了sudo aptitude purge ruby
(你当然会运行与之等效的 MAC),以删除与 rvm 混淆的 ruby 版本。
如果您的计算机上安装了与 ruby 相关的东西,我认为一个好主意是将它们全部删除,并使用 RVM 来管理所有与 ruby 相关的东西。
在 linux (debian/ubuntu) 上,一个好的方法是输入 dpkg -l | grep ruby
查看您的机器上安装了哪些与 ruby 相关的包,然后将它们全部清除。
之后,运行
$ rvm use 1.9.2
$ rvm rubygems latest
一切都应该像魅力一样运作。至少卸载 ruby 对我有用。
希望对您有所帮助。
关于ruby-on-rails - 执行 rvm rubygems latest 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8090499/