Retrying download gem from https://rubygems.org/ due to error (2/4): Bundler::PermissionError There was an error while trying to write to `/opt/homebrew/lib/ruby/gems/3.4.0/cache/rake-13.3.0.gem`. It is likely that you need to grant write permissions for that path.
这个错误是由于权限不足导致的:Bundler 尝试将 gem 写入 `/opt/homebrew/lib/ruby/gems/3.4.0/cache/` 目录,但当前用户没有该路径的写入权限。这通常是因为你使用的 Ruby 是通过 Homebrew 安装的系统级 Ruby,而非 `rbenv` 管理的用户级 Ruby(后者会导致权限问题)。
### 解决方法:
#### 1. 推荐方案:使用 `rbenv` 管理的 Ruby(避免权限问题)
既然你已经安装了 `rbenv`,建议优先使用 `rbenv` 安装的 Ruby 版本(用户目录内,无需 `sudo` 权限):
“`bash
# 1. 安装一个 rbenv 管理的 Ruby 版本(以 3.3.0 为例)
rbenv install 3.3.0
# 2. 设置为全局默认版本(或进入项目目录用 rbenv local 设为项目版本)
rbenv global 3.3.0
# 3. 刷新垫片
rbenv rehash
# 4. 验证当前 Ruby 路径(确保指向 ~/.rbenv/versions/…)
which ruby # 应输出类似 ~/.rbenv/shims/ruby
# 5. 重新安装 bundler 并执行 bundle install
gem install bundler –no-document
bundle install
“`
#### 2. 临时方案:授予目录写入权限(不推荐,可能带来安全风险)
如果暂时需要使用 Homebrew 安装的 Ruby,可以手动授予权限(不建议长期使用,可能导致系统级文件冲突):
“`bash
# 授予当前用户对 Homebrew Ruby 目录的写入权限
sudo chown -R $(whoami) /opt/homebrew/lib/ruby/gems/3.4.0/
# 之后再尝试安装
bundle install
“`
### 关键原因说明:
– Homebrew 安装的 Ruby 属于系统级目录(`/opt/homebrew/`),默认需要管理员权限才能写入,直接使用可能频繁遇到权限问题。
– `rbenv` 安装的 Ruby 位于用户目录(`~/.rbenv/`),无需 `sudo`,且版本隔离更彻底,是 Ruby 开发的推荐方式。
建议采用方案 1,从根本上避免权限问题。