如何切换到使用自制软件安装的ruby 1.9.3?
我已经使用 brew安装ruby如何切换到使用自制软件安装的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
但仍使用默认的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而不是让系统使用特定版本时,这才有效