Mac M1设备下Rails 6安装pg gem触发权限报错问题咨询
Mac M1 安装pg gem权限错误解决方案
报错信息
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
问题原因
该报错和PostgreSQL本身无关,核心原因是你当前使用的是macOS预装的系统Ruby,系统对/Library/Ruby路径做了写入权限保护,禁止普通用户直接安装gem到系统内置路径。
解决方案
方案1:使用Ruby版本管理工具(推荐,适配长期Rails开发场景)
该方案可以完全规避系统Ruby的权限限制,同时支持多版本Ruby环境切换。
- 执行brew命令安装rbenv和ruby-build:
brew install rbenv ruby-build - 配置rbenv到shell环境(以zsh为例,使用bash则替换为
~/.bash_profile):echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc - 重启终端后,安装适配Rails 6的Ruby版本,示例安装2.7.8:
rbenv install 2.7.8 - 设置该版本为全局默认Ruby:
rbenv global 2.7.8 - 验证Ruby路径,输出不为
/usr/bin/ruby即为配置生效:which ruby - 正常安装pg gem即可:
gem install pg
若为Rails项目,可直接在项目目录执行bundle install
方案2:自定义gem安装路径(适合临时使用场景)
无需安装额外版本管理工具,仅将gem安装路径修改为用户目录下的可写路径。
- 执行命令写入配置到shell环境(以zsh为例,使用bash则替换为
~/.bash_profile):echo 'export GEM_HOME="$HOME/.gem"' >> ~/.zshrc echo 'export PATH="$HOME/.gem/bin:$PATH"' >> ~/.zshrc - 重启终端后执行安装即可:
gem install pg
额外说明
如果配置完成后安装pg时出现编译类报错,可指定Homebrew安装的pg配置路径重试:gem install pg -- --with-pg-config=/opt/homebrew/bin/pg_config
内容的提问来源于stack exchange,提问作者Mouhamadou Diouf
相关产品推荐
相关产品推荐

