macOS Sierra下如何将Mac Ports安装的Ruby 2.5设为系统默认版本
如何在macOS Sierra上将Mac Ports安装的Ruby 2.5设为全局默认版本
别担心,你遇到的「Operation not permitted」是macOS的System Integrity Protection (SIP) 在起作用——这个系统保护机制会锁定/usr/bin这类核心系统目录,哪怕用root权限也没法直接修改里面的文件,而且强行修改还可能破坏系统依赖,完全没必要这么做。下面给你两种安全靠谱的解决方法:
方法一:通过修改PATH环境变量优先加载Mac Ports的Ruby
这种方法是让你的shell优先查找Mac Ports目录下的Ruby,而不是系统自带的:
- 打开你的shell配置文件:
- 如果用的是Bash,编辑
~/.bash_profile;如果是Zsh,编辑~/.zshrc - 可以用文本编辑器打开,比如
open -e ~/.bash_profile
- 如果用的是Bash,编辑
- 在文件末尾添加一行:
export PATH="/opt/local/bin:/opt/local/sbin:$PATH" - 保存文件后,在终端执行命令让配置立即生效:
- Bash用户:
source ~/.bash_profile - Zsh用户:
source ~/.zshrc
- Bash用户:
- 验证结果:执行
which ruby,应该返回/opt/local/bin/ruby;再执行ruby -v,就能看到Ruby 2.5的版本信息了。
方法二:用Mac Ports自带的版本选择工具设置默认Ruby
Mac Ports本身就提供了管理默认软件版本的工具,操作更直接:
- 先查看当前可用的Ruby版本选项:
你应该能看到port select --list rubyruby25这个选项(对应你安装的Ruby 2.5) - 执行命令将Ruby 2.5设为默认:
sudo port select --set ruby ruby25 - 输入你的管理员密码后,验证:执行
ruby -v,就能看到默认版本已经变成2.5了。
这两种方法都不会改动系统自带的Ruby,完全不用担心影响系统依赖Ruby的原生程序,非常安全。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

