2016-05-13 149 views
12

我目前的Ruby版本是2.2.3,我想升级到2.3.0。如何从红宝石2.2.3升级到红宝石2.3.0

我用rbenv使用本指南:gorails.com/setup/ubuntu/16.04

如何升级我的Ruby版本?当我升级时,它会影响我需要注意的任何事情吗?

+0

2.3.0是越野车。没有理由使用它。你为什么想要那个版本? – sawa

+0

真的吗?我只是认为最新的版本更好。 –

+0

不是。不总是。尽管最新版本是目前最好的版本。 – sawa

回答

13

此答案已被写入地址原始问题,该问题未指定rbenv作为首选方法。虽然在回答完成后问题发生了变化,但答案仍保留下来,以帮助可能使用RVM升级/管理其Ruby安装的用户。

有关使用rbenv用于相同目的的详细信息,请参阅rbenv answer


使用RVM或另一个Ruby版本管理器。在大多数情况下,这远远优于安装新的系统Ruby。

如果你升级你的系统红宝石,你有一些事情要记住:

  • 什么其他的依赖关系存在对Ruby的版本?
  • 所有的宝石升级后都可以使用吗?
  • 哪些应用程序正在使用现有的Ruby版本以及升级后会有什么/可能会中断?
  • 有没有其他用户使用现有的Ruby需要知道(并准备)的变化?

使用Ruby版本管理器,可以消除大多数这些问题。您可以在同一台计算机上运行多个Ruby版本,这使您可以测试向前和向后兼容性。它还允许您尝试更新的Ruby版本,以确保它们完全稳定以供使用。

您可以使用此方法从任何bash shell中安装RVM:

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

,或者使用其更新到最新的稳定版本:

rvm get stable 

一旦安装RVM(或更新) ,您可以安装您选择的任何Ruby版本,通过执行以下操作:

rvm install 2.3.0 

或升级一个版本到另一个版本:

rvm upgrade 2.2.3 2.3.0 

可以看到哪些Ruby版本都可以使用此安装:

rvm list 

您还可以查看使用这里面的Ruby版本,你可以安装在RVM命令:

rvm list known 

切换到一个特定的安装了Ruby版本通过使用use命令:

rvm use 2.3.0 

,然后再切换回旧版本,当你需要:

rvm use 2.2.3 

退房的RVM documentation更多的功能。您会惊讶于RVM的实际用处。除此之外,还有更多其他内容。

+0

另外,如果你已经在RVM下,'rvm变得稳定; rvm升级2.3.0 2.3.1'非常整齐。 – Amadan

+0

@Michael OP想升级到2.3.0。 – sawa

+0

糟糕,'rvm upgrade 2.2.3 2.3.1' – Amadan

7

要使用rbenv升级您的Ruby版本,您可以使用这些步骤。有些只会根据您的环境需要。如果你有任何安装,Plugins是这方面的一个重要方面。

更新rbenbv

首先,你要确保你的rbenv版本更新。如果您已经安装了update plugin,你可以使用一个命令更新rbenv和所有已安装的插件:

rbenv update 

使用update插件,强烈推荐。不过,如果你使用的不是update插件,您可以手动在这种方式更新rbenv

cd ~/.rbenv 
git pull 

更新插件

如果手动更新rbenv,你还需要手动更新插件,以及。确保按照每个插件的更新说明进行操作。

在这一点上更新非常重要的一个插件(如果已安装它)是ruby-build plugin,它提供了在rbenv下的Ruby构建支持。这可能会改善在下一步中安装新的Ruby版本的体验。

安装Ruby版本

你已经更新rbenv后,您可以安装新的Ruby版本:

rbenv install -v 2.3.0 

删除的Ruby版本

rbenv将允许你管理和使用多个Ruby版本在一台机器上。这是一个巨大的好处。不过,如果你不再需要安装上了年纪的Ruby版本,你可以像这样删除它:

rbenv uninstall 2.2.3 

请注意,您可以随时将其卸载后重新安装了Ruby版本,并使用rbenv单独管理版本。在处理多个项目时,这是一个很好的做法。

+2

如果你正在为rbenv使用'ruby-build'插件,你需要在安装Ruby之前更新它,以便能够获得最新版本。 'cd〜/ .rbenv/plugins/ruby​​-build; git pull' –

+0

@SunilD。伟大的建议,谢谢!根据你的评论,我继续添加更多关于插件的信息,特别是你提到的'ruby-build',以及'update'插件。好东西补充,并感谢提示! –