如何在Mac上将Ruby更新到1.9.x?


107

我在Mac上创建了一个新的用户帐户,并且尝试从雪豹默认值1.8.7更新到它的当前版本的ruby(1.9.2)。有人可以指出我的教程或解释将Mac上的Ruby从1.8更新到1.9.2的最佳方法吗?谢谢

Answers:


66

我对rvm提出强烈建议。

这是管理多个红宝石和宝石集而不与系统版本冲突的好方法。


我现在要补充一点(2013年4月2日),我经常使用rbenv,因为我的需求很简单。RVM很棒,但是它具有很多我从未需要的功能,因此我在某些计算机上拥有它,在台式机和笔记本电脑上具有rbenv。两者都值得一试,看看哪种最适合您的需求。


同意 即使多个版本都不成问题(ha!),rvm还是找出缺少哪些本机库的好方法。几乎是必不可少的。
艾萨克·拉比诺维奇

198

正如Tin Man所建议的那样(上方)RVMRuby Version Manager)是在OSX上升级Ruby安装的标准https : //rvm.io

首先,请打开“ 终端窗口”并发出以下命令:

\curl -L https://get.rvm.io | bash -s stable --ruby

(你需要信任的RVM Dev Team的命令是没有恶意的 -如果你是一个偏执的企鹅像我一样,你可以随时去阅读https://github.com/wayneeseguin/rvm)当它完成您需要重新启动终端才能使rvm命令生效。

rvm list known

(向您显示Ruby 的最新可用版本

rvm install ruby-2.3.1

对于特定版本,其后是

rvm use ruby-2.3.1

或者,如果您只想要最新(当前)版本:

rvm install current && rvm use current

(安装当前的稳定版本-在编写ruby-2.3.1时-请在发布新版本时更新此Wiki)

关于编译Ruby的注意事项:就我而言,我还必须安装Homebrew http://mxcl.github.com/homebrew/以获得所需的gemsRSpec),这反过来又会迫使您安装Xcode(如果尚未安装Xcode的话) )https://itunes.apple.com/us/app/xcode/id497799835 和/或从以下网址安装GCC软件包:https : //github.com/kennethreitz/osx-gcc-installer以避免运行“ make ”时出错。

编辑:Mavericks开始,您可以选择仅安装Xcode命令行工具,而不安装整个Xcode软件包,该软件包随附gcc以及构建软件包可能需要的许多其他功能。可以通过运行xcode-select --install并按照屏幕上的提示进行安装。

关于erros的说明:如果在尝试此命令时收到错误“ RVM不是函数 ”,请访问:如何使用RVM更改Ruby版本?解决方案。


将所有这些设置在Mountain Lion上需要很大的耐心。如果您遇到错误“运行'env GEM_PATH = / Users / ...时出错”,这不是您的路径,并且您会在日志中看到openssl(可能已安装)在RVM中被破坏,并且它们提供了上的页面rvm.io/packages/openssl
Dylan Valade

4
我真的很讨厌Ruby。乱七八糟。但是,这个答案使我走上了正确的道路,为此我真的非常感谢!
伊恩·刘易斯

1
在导致我遇到其他问题的帖子之间徘徊,我发现这一点非常有用,因为它说明了如何使用RVM,而不仅仅是使用它。
赫克托·奥多涅斯

19

对于brew来说,这是一个单线:

(假设您使用自制软件/版本,可以通过运行来完成brew tap homebrew/versions

brew install ruby193

在OS X 10.8.4上为我开箱即用。或者如果您想要2.0,您只需brew install ruby

更一般地,brew search ruby向您显示可用的不同存储库,如果您想变得非常具体,可以使用brew versions ruby并签出特定版本。


1
伟大的单线安装特定版本的红宝石!在
Brew的

4

我知道这是一篇较旧的文章,但我想补充一些其他信息。首先,我认为rvm做很棒,并不是从我的系统(MAC OS Yosemite)中更新红宝石。

什么rvm是这样做的:安装到另一个位置,并有建立的路径,我的环境变量...我是有点无聊,因为我在我的系统现在有两个红宝石。

因此,为了解决此问题,我卸载了rvm,然后使用了可用的Homebrew软件包管理器此处并通过安装了ruby throw terminal命令brew install ruby

然后,一切都运转良好!我系统中的红宝石已更新!希望它将对下一个冒险家有所帮助!


1
我正在努力决定是否应该使用rvmbrew。这会有所帮助。谢谢
unifreak 17-6-29

酿造也做同样的事情吗?
匿名

3

我在这里不同意《锡人》。我认为rbenv比RVM更可取。rbenv不会像RVM那样严重干扰您的外壳,它使您可以在可以直接检查的普通文件夹中添加单独的Ruby安装。它允许您自己编译Ruby。这里的差异的好轮廓:https : //github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

在这里提供有关为rbenv编译Ruby 1.9的说明。进一步,更详细的信息这里有。我在雪豹,狮子和山狮上成功使用了此技术。


1
在最初提出这个问题时,rbenv并不是一个选择。时代在变化,代码也在变化。RVM仍然是一个不错的选择,但与rbenv相比,它是重量级的。我在不同的机器上都使用它们,因为它们在不同的方式上都有用。
Tin Man


2

该命令实际上有效

\curl -L https://get.rvm.io | bash -s stable --ruby


0

如前所述,捆绑器版本对于您的rails版本可能太高了。

我在使用Rails 3.0.1时遇到了同样的问题,它需要Bundler v1.0.0-v1.0.22

使用以下方法检查您的捆绑器版本: gem list bundler

如果您的捆绑软件版本不在适当的范围内,我发现此解决方案可以工作: rvm @global do gem uninstall bundler

注意:此解决方案需要rvm ...另一种情况,为什么您首先应该使用rvm。


0

还有其他一些版本管理器需要考虑,请查看一些示例,还有一个未列出的示例,我将尽快尝试使用ch-ruby。我尝试过rbenv,但问题太多。RVM是我的主要支柱,尽管有时会遇到一些奇怪的问题(因此我希望在有机会时尝试使用ch-ruby)。我不会接触Ruby系统,因为其他事物可能依赖于它。

我应该补充一点,我也已经多次编译了自己的Ruby,如果您采用这种方法,那么使用Hivelogic的文章(如Dave Everitt的建议)是一个好主意。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.