Rails 7.0.3.1创建PostgreSQL应用时pg gem安装权限错误求助
解决Rails 7.0.3.1安装pg gem时的权限错误
核心错误信息
Bundler::DirectoryRemovalError: Could not delete previous installation of
/var/lib/gems/2.7.0/gems/pg-1.4.2.
底层错误:Errno::EACCES: Permission denied @ dir_s_rmdir - /var/lib/gems/2.7.0/gems/pg-1.4.2/sample
解决步骤
1. 手动清理旧gem目录
直接用sudo权限删除无法移除的pg gem文件夹:
sudo rm -rf /var/lib/gems/2.7.0/gems/pg-1.4.2
清理完成后重新执行:
bundle install
2. 临时用sudo执行bundle安装
如果手动清理后仍有问题,可临时用sudo权限运行bundle:
sudo bundle install
⚠️ 注意:此方式安装的gem归root用户所有,后续开发中可能持续出现权限问题,仅作为临时应急方案。
3. 切换到用户级Ruby环境(推荐长期方案)
系统级Ruby的gem目录权限受限,建议用Ruby版本管理工具(如rbenv或rvm)在用户目录下管理Ruby和gem:
- 安装rbenv/rvm后,设置项目所需的Ruby版本(2.7.x)
- 重新运行
bundle install,此时gem会安装在用户专属目录,彻底避免系统权限问题
4. 检查系统依赖
确保安装pg gem所需的系统库已安装(以Ubuntu为例):
sudo apt-get install libpq-dev
内容的提问来源于stack exchange,提问作者Hammad Abdullah
相关产品推荐
相关产品推荐

