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

Ale*_*rov 76 ruby macos homebrew osx-lion

我用hombrew安装了ruby 1.9.3

brew安装红宝石

但仍然使用默认的1.8.7.如何切换osx以使用1.9.3作为默认ruby?

Mat*_*udy 87

我建议你看看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
Run Code Online (Sandbox Code Playgroud)

这对于自制软件来说很重要,否则系统版本的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
Run Code Online (Sandbox Code Playgroud)


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

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

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

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

  • 感谢您提供实际答案,而不仅仅是说"使用rvm".并不是每个人都可以使用RVM,我讨厌当最高层回答只是告诉OP做一些他们没有问过怎么做的事情. (27认同)

Cra*_*yne 55

简短的回答:

通过自制软件安装ruby之后就这样做:

brew link --overwrite ruby
Run Code Online (Sandbox Code Playgroud)

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


长期回答

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

brew install ruby
Run Code Online (Sandbox Code Playgroud)

安装得很好但仍然使用系统的默认红宝石.我通过这样做验证:

which ruby 
#/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

所以根据Matthew Rudy的建议,我检查了/ etc/paths的顺序,一切都很好.

然后我决定这样做:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)

所以什么都没有被打破.尝试使用自制程序方法再次重新安装ruby,然后我找到了它.

Homebrew提到:

Warning: ruby-2.3.1 already installed, it's just not linked
Run Code Online (Sandbox Code Playgroud)

所以必须这样做:

brew link --overwrite ruby
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记重新启动你的iTerm实例,否则`ruby --version`会显示一个过时的版本. (12认同)
  • 就我而言,我必须添加“--force”。`brew 链接 --overwrite ruby​​ --force` (2认同)

Fra*_*Kim 43

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

$ brew update
$ brew install rbenv
$ brew install ruby-build
Run Code Online (Sandbox Code Playgroud)

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

$ rbenv install 1.9.3-p125
Run Code Online (Sandbox Code Playgroud)

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

$ rbenv global 1.9.3-p125
Run Code Online (Sandbox Code Playgroud)

  • 在OS X 10.11+上不起作用.系统继续使用旧版本,而不是我使用rbenv install 1.9.3-p125/rbenv global 1.9.3-p125默认安装/设置的版本 (4认同)

Cat*_*lts 11

Ruby 由 Homebrew 安装在/usr/local/opt/ruby. 因此,我们需要将此路径添加到bashor 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
Run Code Online (Sandbox Code Playgroud)

然后,获取文件

# E.g., if you're using bash
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

最后,验证ruby的版本

ruby -v
Run Code Online (Sandbox Code Playgroud)


And*_*nko 5

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

#usr/local/bin/ruby
#/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

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

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