我在Mac上创建了一个新的用户帐户,并且尝试从雪豹默认值1.8.7更新到它的当前版本的ruby(1.9.2)。有人可以指出我的教程或解释将Mac上的Ruby从1.8更新到1.9.2的最佳方法吗?谢谢
我在Mac上创建了一个新的用户帐户,并且尝试从雪豹默认值1.8.7更新到它的当前版本的ruby(1.9.2)。有人可以指出我的教程或解释将Mac上的Ruby从1.8更新到1.9.2的最佳方法吗?谢谢
Answers:
正如Tin Man所建议的那样(上方)RVM(Ruby 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/以获得所需的gems(RSpec),这反过来又会迫使您安装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版本?解决方案。
我知道这是一篇较旧的文章,但我想补充一些其他信息。首先,我认为rvm
做很棒,但并不是从我的系统(MAC OS Yosemite)中更新红宝石。
什么rvm
是这样做的:安装到另一个位置,并有建立的路径,我的环境变量...我是有点无聊,因为我在我的系统现在有两个红宝石。
因此,为了解决此问题,我卸载了rvm
,然后使用了可用的Homebrew软件包管理器此处并通过安装了ruby throw terminal命令brew install ruby
。
然后,一切都运转良好!我系统中的红宝石已更新!希望它将对下一个冒险家有所帮助!
rvm
或brew
。这会有所帮助。谢谢
我在这里不同意《锡人》。我认为rbenv比RVM更可取。rbenv
不会像RVM那样严重干扰您的外壳,它使您可以在可以直接检查的普通文件夹中添加单独的Ruby安装。它允许您自己编译Ruby。这里的差异的好轮廓:https : //github.com/sstephenson/rbenv/wiki/Why-rbenv%3F
我在这里提供有关为rbenv编译Ruby 1.9的说明。进一步,更详细的信息这里有。我在雪豹,狮子和山狮上成功使用了此技术。
丹·本杰明(Den Benjamin)在Hivelogic上发表的文章“ 在Snow Leopard上安装Ruby,RubyGems和Rails”是推荐的选择,尽管该文章是针对1.8版本的,因此这里是在Snow Leopard上特定于Ruby 1.9的安装。提防64位问题...要么全部使用64位'fat'(例如-OS X上的Apache,这可能会导致32位库出现问题),或者检查您可能会遇到的问题用于确保它们适用于64位。
如前所述,捆绑器版本对于您的rails版本可能太高了。
我在使用Rails 3.0.1时遇到了同样的问题,它需要Bundler v1.0.0-v1.0.22
使用以下方法检查您的捆绑器版本: gem list bundler
如果您的捆绑软件版本不在适当的范围内,我发现此解决方案可以工作: rvm @global do gem uninstall bundler
注意:此解决方案需要rvm ...另一种情况,为什么您首先应该使用rvm。