Ubuntu 22.04安装ROR的bundler遇权限问题,求排查原因
问题排查与解决方案
这种权限问题不是Ubuntu 22.04系统本身的问题,而是直接操作系统全局gem目录导致的权限限制,以下是具体解决方法:
最佳方案:使用Ruby版本管理器隔离环境
系统全局gem目录属于系统权限范畴,普通用户无写入权限,推荐用rbenv或rvm管理Ruby和gem环境,彻底避免权限冲突:
- 安装依赖包:
sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev
- 安装rbenv:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
- 配置shell环境(bash为例):
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc
- 安装ruby-build插件(用于安装指定Ruby版本):
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
- 安装项目所需的Ruby版本(替换为你的ROR应用要求的版本,比如3.2.2):
rbenv install 3.2.2 rbenv global 3.2.2
- 安装bundler:
gem install bundler
之后进入ROR项目目录执行bundle install即可。
临时应急方案(不推荐长期使用)
如果只是临时解决权限问题,可以选择以下方式:
- 用sudo安装指定版本bundler:
sudo gem install bundler -v 你需要的版本号
- 或者修改系统gem目录权限(可能带来系统级权限风险):
sudo chown -R $USER:$USER /var/lib/gems/
内容的提问来源于stack exchange,提问作者sandeep
相关产品推荐
相关产品推荐

