如何切换到使用自制软件安装的ruby 1.9.3?

如何切换到使用自制软件安装的ruby 1.9.3?,ruby,macos,osx-lion,homebrew,Ruby,Macos,Osx Lion,Homebrew,我已经使用 brew安装ruby 但仍使用默认的1.8.7。如何将osx切换为使用1.9.3作为默认ruby?我建议您看看。 然后,您可以使用rvm use 1.9.3--default将其设置为默认值 但如果您对自己的自制软件安装感到满意 然后只需更改路径中目录的优先级 这是我的/etc/路径 # homebrews should always take precedence /usr/local/bin # the default stack /usr/bin /bin /usr/sbin

我已经使用

brew安装ruby


但仍使用默认的1.8.7。如何将osx切换为使用1.9.3作为默认ruby?

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

但如果您对自己的自制软件安装感到满意

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

这是我的/etc/路径

# 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
,您将看到所有已安装的ruby,以及
路径中的优先级

例如


更新:我现在不认为您应该更改
/etc/path

相反,您需要检查shell中加载了
.profile
.bashrc
.bash\u login
中的哪一个,然后只需将
/usr/local/bin
添加到您的路径中即可

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

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

如果要使用自制软件安装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

作为其他任何人寻找答案的替代方法,您可以在.bash_配置文件中设置别名,例如

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

这就是我如何避开这个问题的原因。

简短回答:

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

brew link --overwrite ruby
然后重新启动或重新打开终端


长答案

所以我用自制软件进行了ruby的正常安装

brew install ruby
虽然安装得很好,但它仍然使用系统默认的ruby。 我通过以下方式验证了这一点:

which ruby 
#/usr/bin/ruby
因此,根据Matthew Rudy的建议,我检查了/etc/路径的顺序,一切都很好

然后我决定:

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

我也有类似的情况。我用自制软件安装了ruby<代码>它-一个ruby
给了我以下输出:

#usr/local/bin/ruby
#/usr/bin/ruby
这意味着应该使用新安装的版本,但是
ruby--version
仍然返回旧的系统版本


我退出了终端(Cmd+Q),重新启动后
ruby--version
返回了正确的版本。因此,在尝试任何其他(可能不必要的)修复之前,请确保在安装后重新启动终端。

在OSX中,您可以使用以下命令更改路径:

sudo nano/etc/path

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

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin
然后添加路径或更改顺序。

SHORT: 请记下您要更改它的目的

如果你在OSX上尝试使用Ruby来实现Jekyll之类的功能,那么就不要使用自制软件,因为这正是苹果用于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.

Ruby由自制软件安装在
/usr/local/opt/Ruby
。因此,我们需要将此路径添加到
bash
Zsh

# Type this to find out which shell you're using (e.g., bash, Zsh)
echo $SHELL

# If you're using Bash (e.g., echo $SHELL returns /bin/bash)
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile

# If you're using Zsh
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
然后,找到文件的源代码

# E.g., if you're using bash
source ~/.bash_profile
最后,验证ruby的版本

ruby -v

最后我选择了rbenv,以前也用过rvm.cool。不过,我建议您还是对/etc/路径进行更改。我曾经遇到过奇怪的错误(例如,我想
brew升级git
,但版本没有改变。原来我从未使用过brew版本)感谢您提供了一个实际的答案,而不仅仅是说“使用rvm”。不是每个人都可以使用RVM,我讨厌上面的答案只是告诉OP去做一些他们没有要求如何做的事情。这就解决了问题:我在使用RVM编译ruby时遇到了问题,所以我最终选择了rbenv,因为它可以正常工作。源链接现在已经失效,在OS X 10.11+上不起作用。该系统继续使用旧版本,而不是我安装/设置为rbenv install 1.9.3-p125/rbenv global 1.9.3-p125“rbenv global 1.9.3-p125”的默认版本-这一行节省了我的时间。感谢似乎对我不起作用。在ruby exec开始工作之前,我必须将它的路径放在我的$path中。别忘了重新启动您的iTerm实例,否则
ruby--version
会显示一个过时的版本。您真的需要重新启动吗?或者只是
hash-r
?仅供参考,自制软件现在拒绝这样做。对我来说,对于Fish,它建议:echo'set-g Fish\u user\u path”/usr/local/opt/ruby/bin“$Fish\u user\u path”>~/.config/Fish/config.Fish是的,问题是(很可能是否决票的原因)只有在您想要手动调用ruby而不是让系统使用特定版本时,这才有效