执行gem install rails报EACCES错误、zsh操作/Users路径权限不足如何解决
问题核心原因
- 直接使用了macOS预装的系统Ruby进行开发,系统Ruby的全局gem安装路径归属root权限,普通用户执行
gem install没有写入权限,因此抛出Errno::EACCES错误 - 个人用户目录下的部分文件/文件夹权限配置异常,一般是之前误执行带
sudo的命令修改了目录归属,导致终端操作文件也出现权限报错
完整修复步骤
1. 重置个人目录权限
执行以下命令,将username替换为你自己的mac用户名(即报错路径中/Users/后面的名称),重置整个个人目录的所有权:
sudo chown -R username:staff ~/
输入开机密码时终端不会显示输入字符,正常输入完成后回车即可,该操作可以解决终端操作文件的权限报错问题。
2. 安装用户级Ruby版本管理器(不使用系统Ruby)
macOS自带的Ruby是为系统底层服务准备的,不适合开发使用,通过rbenv安装独立的用户级Ruby可完全避开权限问题:
- 先安装Homebrew包管理器:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 用Homebrew安装rbenv和ruby-build组件:
brew install rbenv ruby-build
- 把rbenv初始化配置写入zsh配置文件:
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
- 重载配置文件让配置生效:
source ~/.zshrc
- 安装稳定版Ruby(以3.2.2为例,可根据课程要求调整版本号):
rbenv install 3.2.2
- 将安装的版本设置为全局默认Ruby:
rbenv global 3.2.2
- 验证Ruby路径是否正确:
which ruby
输出为/Users/你的用户名/.rbenv/shims/ruby即为配置成功。
3. 安装Rails
直接执行以下命令即可,不会再出现权限报错:
gem install rails
安装完成后执行rails -v输出版本号即为安装成功。
后续注意事项
- 没有明确操作目的时,不要在
gem相关命令前加sudo,避免再次打乱权限配置 - 所有Ruby相关开发操作都使用rbenv安装的版本,不要调用系统自带的Ruby
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

