You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Hatchbox部署预发布应用时gem install bundler执行失败求助

解决Hatchbox部署预发布应用时的Gem::FilePermissionError问题

问题核心

部署脚本使用的应用专属用户,和你手动登录执行sudo gem install的root权限环境不一致,导致部署时没有gem安装目录的写入权限。

修复方法

1. 修正部署用户的gem目录权限

登录服务器,切换到Hatchbox对应的部署用户(通常是应用名+-staging,比如myapp-staging):

su - <你的部署用户名>

执行gem env查看GEM PATHS字段,找到gem的安装目录。之后修改该目录的所有者为部署用户:

sudo chown -R <部署用户名>:<部署用户名> <gem路径>

2. 让部署脚本使用用户级gem安装

在Hatchbox的部署配置中,修改bundler安装命令,添加--user-install参数,将gem安装到部署用户的个人目录,避开系统级权限限制:

gem install bundler -v 2.5.23 --no-document --force --user-install

3. 确保版本管理器环境加载正常

如果服务器用了rbenv或rvm,检查部署用户的shell配置文件(~/.bashrc或~/.profile),确认是否有版本管理器的初始化脚本:

  • 若用rbenv,添加:
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
  • 若用rvm,添加:
echo 'source ~/.rvm/scripts/rvm' >> ~/.bashrc

执行source ~/.bashrc重新加载配置。

4. 提前为部署用户预安装bundler

切换到部署用户,手动安装指定版本的bundler,让部署流程跳过安装环节:

su - <部署用户名>
gem install bundler -v 2.5.23 --no-document

内容的提问来源于stack exchange,提问作者Jamie Crone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:03:15