如何在Mac OSX Yosemite中将Ruby版本2.0.0更新到最新版本?


Answers:


709

打开终端并运行

curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable

完成此操作后,您需要重新启动终端才能使rvm命令起作用。

现在开始 rvm list known

这显示了红宝石的版本列表。

现在,运行rvm install ruby@latest以获取最新的红宝石版本。

如果输入ruby -v终端,则应看到ruby X.X.X

如果仍然显示您ruby 2.0.,请运行rvm use ruby-X.X.X --default


3
不是最新版本的Ruby 2.2.0。
乔丹(Jordan)

1
@乔丹我不好的2.3是稳定版本
Abhinay Reddy Keesara '16

71
在Mac OS本工程安装RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
捷思

7
2.4是最新的稳定版本:rvm install ruby​​-2.4.0
参阅ARMS

7
管道卷曲输出直接执行是等待发生的安全噩梦。
arp

214

仅酿造解决方案

更新:

从评论(对Maksim Luzik表示感谢),我还没有测试过,但似乎是一个更优雅的解决方案:

通过brew安装ruby之后,运行以下命令将链接更新到最新的ruby安装: brew link --overwrite ruby

原始答案:

晚会晚了,但是使用brew绰绰有余。不必安装rvm,对我而言它只是复杂的事情。

通过brew install ruby你在实际安装最新版本(V2.4.0目前)。但是,您的路径首先找到2.0.0。为了避免这种情况,只需更改优先级(source)。我通过更改~/.profile和设置来做到这一点:

export PATH=/usr/local/bin:$PATH

此后,我发现bundler gem仍在使用2.0.0版,只需重新安装即可: gem install bundler


2
正是我想要的东西,谢谢。如果我是一个红宝石开发人员,那么rvm是有意义的,但是我不是,所以这很完美。
最高

4
这项工作,安装后需要做“
source〜

9
或通过brew安装红宝石后,运行以下命令以更新到最新的红宝石安装的链接:brew link --overwrite ruby
Maksim Luzik

1
而不是overwrite红宝石版本,您可以编写brew unlink ruby && brew link ruby
Hamsternik '17

7
@MaksimLuzik的解决方案不适用于MacOS。brew link --overwrite ruby导致Warning: Refusing to link macOS-provided software: ruby
Rafael Beckel

97

我推荐rbenv * https://github.com/rbenv/rbenv

*如果这符合您的条件:https : //github.com/rbenv/rbenv/wiki/为什么使用rbenv?

rbenv 确实...

  • 提供对指定特定应用程序的Ruby版本的支持
  • 让您按用户更改全局Ruby版本
  • 允许您使用环境变量覆盖Ruby版本

与RVM相比,rbenv 不…

  • 需要加载到您的外壳中。取而代之的是,rbenv的shim方法通过向目录中添加目录来工作$PATH
  • 覆盖shell命令,例如cd或要求立即进行破解。这很危险,而且容易出错。
  • 有一个配置文件。除了要使用哪个版本的Ruby,没有其他配置。
  • 安装Ruby。您可以自己构建和安装Ruby,也可以使用ruby-build自动化该过程。
  • 管理宝石集。 Bundler是管理应用程序依赖项的更好方法。如果您有尚未使用Bundler的项目,则可以安装 rbenv-gemset插件。
  • 需要更改Ruby库以获得兼容性。rbenv的简单性意味着只要它在您的手中$PATH其他任何信息 都不需要知道。

安装

安装Homebrew http://brew.sh

然后:

$ brew更新
 $ brew install rbenv
$ brew install rbenv ruby​​-build

#将rbenv添加到bash中,以便在每次打开终端时加载
回显'如果哪个rbenv> / dev / null; 然后评估“ $(rbenv init-)”; fi'>>〜/ .bash_profile
来源〜/ .bash_profile

更新
brew install rbenv“运行”之后还有另外一个步骤,rbenv init并根据需要添加一行.bash_profile。之后,重新打开您的终端窗口[…] SGI 9月30日12:01 — https://stackoverflow.com/users/119770

$ rbenv install --list
可用版本:
 1.8.5-p113
 1.8.5-p114
 […]
 2.3.1
 2.4.0开发版
 jruby-1.5.6
 […]
$ rbenv安装2.3.1
[…]

设置全局版本:

$ rbenv全球2.3.1
$红宝石-v
红宝石2.3.1p112(2016-04-26修订版54768)[x86_64-darwin15]

通过添加.ruby-version到仓库的根目录来设置仓库的本地版本:

$ cd〜/ whatevs / projects / new_repo
$ echo“ 2.3.1”> .ruby-version

对于MacOS,请访​​问此链接


3
@ChuchaC没有问题。但是在您这样做之前,这是来自rbenv自述文件:“兼容性说明:rbenv与RVM不兼容。请确保在安装rbenv之前完全卸载RVM并从您的Shell初始化文件中删除对其的任何引用。” — github.com/rbenv/rbenv#installation
SoAwesomeMan

17
没有帮助。仍然得到标准2.0.0版ruby -vrbenv global ...
tuxSlayer

8
brew install rbenv运行后又需要执行另一步骤,rbenv init并按要求将一行添加到.bash_profile中。之后,重新打开终端窗口,执行rbenv install 2.3.1rbenv global 2.3.1 并rbenv会做的工作
SGI

6
在为我工作rbenv rehash后,可能遇到了与@tuxSlayer相同的问题的人,可能很晚了,但可供将来参考rbenv global
Sean

2
之后rbenv initruby -v输出正确的版本2.1.2,但是捆绑运行遇到这样的错误paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648。最终设法使其运行正常rbenv rehash。感谢@Sean
James James

51

打开终端:

sudo gem update --system 

有用!


3
这确实确实有效,并且比其他答案更为直接。但是,当安装一些gems(例如,监听)时,他们抱怨版本低于要求。
威廉·伊斯特

8
这是宝石不是红宝石
威廉GP


2
我也被这个答案误导了。它“起作用”的原因是当您从控制台运行它时不会产生任何错误。但是,它不会更新Ruby。它会更新Ruby Gems。按照其他答案之一来更新Ruby(使用OS X Sierra)。
informaton

41

将ruby升级到v2.4 +的快速方法

brew upgrade ruby

要么

sudo gem update --system 

4
这似乎可以做很多事情,但是升级红宝石并不是其中之一。结尾于: /usr/local/Homebrew/Library/Homebrew/brew.rb:12:in '<main>': Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
nkoren

1
这是使用brew升级红宝石版本的正确和最佳方法。
user1101733 '18

对我不起作用。ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
塞巴斯蒂安卢瓦泽尔

@SébastienLoisel您能否提供有关您的操作系统,命令等的详细信息?
fatihyildizhan

1
@fatihyildizhan似乎在小牛上的ruby / gems / etc处于半破碎状态。通过升级到卡塔琳娜州,我已经解决了我的问题。我不记得我曾经犯过的所有错误,但是有很多错误。我不记得我是否在尝试升级可可脚怪或宝石或其他东西,但是从本质上来说是绝望的。
塞巴斯蒂安卢瓦泽尔

31

您可以通过查看https://www.ruby-lang.org/en/downloads/指定红宝石的最新版本。

  1. 获取最新版本:

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

  2. 安装它:

    rvm install 2.2

  3. 默认使用它:

    rvm use 2.2 --default

或者从ruby运行最新的命令:

rvm install ruby --latest
rvm use 2.2 --default

谢谢,这对我有用。与的解决方案rbenv无效
-tuxSlayer

这也对我有用!解决方案rbenv
无法正常


2

如果有人遇到相同的错误,我会做:“要求安装失败,状态为:1。” 这是做什么的:

使用以下命令安装Homebrew(由于某些原因可能无法自动运行):

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后使用再次安装rvm

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

退出并重新打开终端,然后:

rvm install 2.2
rvm use 2.2 --default

2

brew install rbenv ruby-build

将rbenv添加到bash中,以便在每次打开终端时加载

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile

source ~/.bash_profile

安装Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

链接到源页面

0

在终端: rvm gemset use global


5
尽管此代码段可能是解决方案,但包括说明确实有助于提高帖子的质量。请记住,您将来会为读者回答这个问题,而这些人可能不知道您提出代码建议的原因。
亚当

-2

最简单的方法肯定是在终端中输入以下命令:

sudo gem update --system

--no-document如果您不想下载文档,则可以添加标志。这是运行命令后的示例输出:

sudo gem update --system
Password:
Updating rubygems-update
Fetching: rubygems-update-2.6.8.gem (100%)
Successfully installed rubygems-update-2.6.8
Parsing documentation for rubygems-update-2.6.8
Installing ri documentation for rubygems-update-2.6.8
Installing darkfish documentation for rubygems-update-2.6.8
Installing RubyGems 2.6.8
RubyGems 2.6.8 installed
Parsing documentation for rubygems-2.6.8
Installing ri documentation for rubygems-2.6.8

------------------------------------------------------------------------------

RubyGems installed the following executables:
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem

Ruby Interactive (ri) documentation was installed. ri is kind of like man 
pages for ruby libraries. You may access it like this:
  ri Classname
  ri Classname.class_method
  ri Classname#instance_method

1
这和上面答案不一样吗?我很好奇为什么这里要反对的人数多少?是因为重复的答案,还是因为人们没有很快意识到,较早的解决方案也仅适用于rubygems,而不是Ruby?
informaton
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.