如何切换到使用Homebrew安装的ruby 1.9.3?


Answers:


88

我建议您看看rvm。然后,您可以将其设置为默认值rvm use 1.9.3 --default

但是,如果您对自制软件感到满意。

然后只需更改目录中的优先级 PATH

这是我的/ etc / paths

# homebrews should always take precedence
/usr/local/bin

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin

这通常对于自制软件很重要,否则将使用git,ruby,pg_admin等系统版本代替brew版本。

如果您说which -a ruby会看到所有已安装的红宝石,以及PATH

例如。

$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby


更新:我现在不认为你应该改变 /etc/paths

相反,你需要检查哪.profile.bashrc.bash_login正在在你的shell加载,只需添加/usr/local/bin到您的路径。

对我来说,我只有一个.profile。如果主目录中不存在这些文件,则可以创建该文件。

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH

1
最后,我选择rbenv,以前也使用rvm。
Alexey Zakharov

凉。我还是建议您还是对/ etc / paths进行更改。我曾经遇到过奇怪的错误(例如,我会的brew upgrade git,但是版本没有改变。原来我从来没有使用过酿造版)
Matthew Rudy 2012年

29
感谢您提供实际答案,而不仅仅是说“ use rvm”。并不是每个人都可以使用RVM,并且我最讨厌的答案是告诉OP做他们不问怎么做的事情。
砖匠2012年


我在使用rvm编译ruby时遇到了问题,所以我最终选择了rbenv,因为它可以正常工作。
颗粒

70

简短答案:

通过自制软件安装ruby后,只需执行以下操作:

brew link --overwrite ruby

并重新启动或重新打开终端  


长答案

所以我使用自制软件正常安装了ruby

brew install ruby

安装好的但它仍在使用系统的默认红宝石。我通过以下方法验证了这一点:

which ruby 
#/usr/bin/ruby

因此,按照Matthew Rudy的建议,我检查了/ etc / paths的顺序,一切都很好。

然后我决定去做:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby

所以没有什么坏的。试图再次使用自制方法重新安装ruby,然后我找到了它。

自制提到:

Warning: ruby-2.3.1 already installed, it's just not linked

因此必须这样做:

brew link --overwrite ruby

13
不要忘记重新启动您的iTerm实例,否则ruby --version将显示一个过时的版本。
Dialex'8

1
您实际上需要重启吗?还是只是hash -r
dwanderson

1
仅供参考,Homebrew现在拒绝这样做。对我来说,使用Fish时,它建议:echo'set -g fish_user_paths“ / usr / local / opt / ruby​​ / bin” $ fish_user_paths'>>〜/ .config / fish / config.fish
Atem18,19年

46

如果您想使用自制软件安装1.9.3,请按照以下步骤操作:

$ brew update
$ brew install rbenv
$ brew install ruby-build

一旦安装了rbenv和ruby-build,就可以运行以下命令来安装Ruby 1.9.3。

$ rbenv install 1.9.3-p125

现在,如果您想默认使用1.9.3,则可以运行以下命令:

$ rbenv global 1.9.3-p125

源链接现在已经死了
克里斯·布朗

4
在OS X 10.11+上不起作用。系统继续使用旧版本,而不是我已经使用rbenv install 1.9.3-p125 / rbenv global 1.9.3-p125安装/设置为默认版本的系统
Andrei Konstantinov

“ rbenv global 1.9.3-p125”-此行节省了我的夜晚。谢谢!
Andrii Kovalchuk

似乎不适合我。在工作之前,我不得不在$ PATH中放置ruby exec的路径。
mr-sk

5

我也有类似情况。我使用Homebrew安装了ruby。which -a ruby给了我以下输出:

#usr/local/bin/ruby
#/usr/bin/ruby

这意味着应该使用新安装的版本,但是 ruby --version仍返回旧系统版本。

我退出终端(Cmd + Q),并在重启后ruby --version返回正确的版本。因此,请确保在安装后重新启动终端,然后再尝试其他(可能是不必要的)修补程序。


4

短: 请注意要更改的内容。

如果您使用的是OS X,并尝试将Ruby用于Jekyll之类的应用程序,则不要使用自制软件,因为这就是Apple所使用的Ruby,如果您不确定自己要使用的是什么,可能就不好用了。在做。而是使用rbenv或RVM。

更少的简短内容: 我正在尝试从默认版本切换到更新版本(从2.0版)以使用Jekyll,因为它需要Ruby 2.2.5及更高版本。我更新了它并安装了2.5版,但是当我选中“ ruby​​ -v”时,它仍然是2.0。一旦我终于能够更改默认版本,便无法安装所需的软件包,因为我没有写权限。例如,如果您遇到类似这样的问题,那么您可能会遇到相同的问题

$ gem install jekyll bundler
ERROR:  While executing gem ... (Gem::FilePermissionError)    
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

0

在OSX中,您可以使用以下方式更改路径:

须藤nano / etc / paths

然后添加路径或更改顺序。


-2

就像其他寻求答案的人一样,您可以在.bash_profile中设置别名,例如

ruby="/usr/local/bin/ruby"

这就是我解决问题的方式


是的,这样做的问题(很可能是投票失败的原因)是,这仅在您要手动调用ruby并且不让系统使用特定版本的情况下才有效
David Seek
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.