安装了两个版本的ruby,如何解决?

时间:2011-03-06 22:23:42

标签: ruby

我发现我在OSX 10.6.2上安装了两个版本的ruby如何卸载旧版本并确保一切正常,路径指向另一个?

bash-3.2$  /usr/local/bin/ruby -v 
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9.7.0]

bash-3.2$ /usr/bin/ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]


bash-3.2$ $PATH
bash: /usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec: No such file or directory

bash-3.2$ whereis ruby
/usr/bin/ruby

3 个答案:

答案 0 :(得分:3)

/usr/bin中的Ruby版本是系统安装的版本,应保留在原位。

可能会安全删除/usr/local/bin中的版本。是使用包管理器安装的(即MacPorts,Homebrew?)。如果是这样,请使用包管理器将其删除。

如果您手动编译并安装它,可以尝试从/usr/local/bin删除二进制文件,但您可能仍然有宝石和其他文件(最有可能是/usr/local/lib/ruby。)

或者,您可以将它们留在原地并通过RVM管理您的Ruby环境:http://rvm.beginrescueend.com/

答案 1 :(得分:1)

您不必卸载旧版本。或者,您可以使用别名,并将其保存在OSX目录的〜/ .profile文件中。

alias ruby​​ =“< path_to_ruby_version_that_you_want_to_use>”

那应该从你想要的正确目录中调用ruby。

或者你可以使用符号链接,就像这篇帖子在这里建议How to uninstall Ruby from /usr/local?一样。希望它有所帮助!

答案 2 :(得分:1)

您应该使用which ruby找到您正在使用的Ruby,而不是whereis ruby。我的whereis ruby输出/usr/bin/ruby,但which ruby给出/Users/BinaryMuse/.rvm/rubies/ruby-1.9.2-p136/bin/ruby,因为我使用RVM管理我的Ruby版本。由于/usr/local/bin是您PATH中的第一个,which ruby可能会返回/usr/local/bin/ruby,这似乎是您想要的。快速ruby -v也可以证实这一点。

所有这一切,我建议使用RVM来管理Ruby的版本以及RVM调用gemsets的内容,允许您拥有可以一次使用一个宝石的“桶”。它是一个非常强大且非常有用的工具。