GitHub Actions构建失败:RubyGem路径写入权限错误求助
解决GitHub Actions构建Android项目时Bundler权限错误
问题原因
构建过程中尝试向系统级gem目录/var/lib/gems/3.0.0/cache写入bundler包时,没有足够的权限,导致安装失败。
解决方案
1. 使用sudo执行gem安装命令
在GitHub Actions的workflow文件中,给安装bundler的命令添加sudo,获取系统级写入权限:
- name: Install bundler run: sudo gem install bundler:2.2.29
2. 安装到用户级目录(推荐)
避开系统目录,将bundler安装到用户专属目录,无需sudo权限:
- name: Install bundler to user directory run: gem install bundler:2.2.29 --user-install - name: Add user gem bin to PATH run: echo "PATH=$HOME/.gem/ruby/3.0.0/bin:$PATH" >> $GITHUB_ENV
3. 使用Ruby版本管理器(rbenv)
通过rbenv管理Ruby环境,gem会安装到用户可控的目录,彻底规避系统权限问题:
- name: Set up rbenv run: | git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> $GITHUB_ENV echo 'eval "$(rbenv init -)"' >> $GITHUB_ENV - name: Install Ruby 3.0.0 run: | rbenv install 3.0.0 rbenv global 3.0.0 - name: Install bundler run: gem install bundler:2.2.29
4. 指定旧版本runner镜像
如果是GitHub Actions runner镜像更新导致权限变化,可以指定使用稳定的旧版本镜像(比如ubuntu-20.04):
jobs: build: runs-on: ubuntu-20.04 # 替换原ubuntu-latest steps: # 后续构建步骤...
内容的提问来源于stack exchange,提问作者Yupi
相关产品推荐
相关产品推荐

