Mac环境下如何指定Rails使用特定版本的Ruby
解决Rails使用自定义安装Ruby版本的问题
我太懂这种Mac自带Ruby权限卡死的感觉了——系统保护机制不让碰bin目录,确实头疼。不过你已经手动装了Ruby 2.5.1,有几种靠谱的方法让Rails优先用这个版本:
方法1:直接调整环境变量(快速生效)
这种方法不需要额外装工具,直接修改终端的PATH优先级,让你自定义安装的Ruby路径排在系统路径前面:
- 先找到你Ruby 2.5.1的安装路径。终端执行:
which ruby # 如果是你手动装的,输出可能是 /usr/local/bin/ruby 或者 ~/.ruby/ruby-2.5.1/bin/ruby # 把这个路径里的bin目录记下来,比如上面的例子就是 /usr/local/bin 或者 ~/.ruby/ruby-2.5.1/bin - 临时生效(仅当前终端会话):
export PATH="/你的/ruby/bin路径:$PATH" # 比如 export PATH="/usr/local/bin:$PATH" - 验证是否生效:
ruby -v # 应该显示 ruby 2.5.1pXXX rails -v # 此时Rails会用这个Ruby版本 - 永久生效(每次打开终端都自动加载):
- 如果你用的是zsh(Mac默认shell),编辑
~/.zshrc文件:
在文件末尾添加刚才的nano ~/.zshrcexport PATH命令,保存后退出,然后执行:source ~/.zshrc - 如果你用bash,编辑
~/.bash_profile或者~/.bashrc,步骤同上。
- 如果你用的是zsh(Mac默认shell),编辑
方法2:用Ruby版本管理器(更推荐,长期管理)
如果以后还要切换Ruby版本,用rbenv或者rvm这类工具会更省心,它们会帮你自动管理PATH和版本切换:
用rbenv的步骤:
- 安装rbenv(用Homebrew最方便):
brew install rbenv - 初始化rbenv(根据你的shell类型):
- zsh:
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc source ~/.zshrc - bash:
echo 'eval "$(rbenv init - bash)"' >> ~/.bash_profile source ~/.bash_profile
- zsh:
- 安装你需要的Ruby 2.5.1:
rbenv install 2.5.1 - 设置全局默认版本(所有终端会话都用这个版本):
或者只给当前项目设置版本(在项目根目录执行):rbenv global 2.5.1rbenv local 2.5.1 - 验证:
ruby -v # 显示2.5.1 rails -v # Rails会自动关联这个版本
注意事项:
- 绝对不要尝试修改Mac系统自带的
/bin目录——那是系统保护的区域,强行修改可能导致系统崩溃。 - 如果用版本管理器,安装后记得重启终端,确保环境变量生效。
内容的提问来源于stack exchange,提问作者Person
相关产品推荐
相关产品推荐

