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

Ubuntu 22.04下Rails项目bundle install权限错误修复问询

解决Ubuntu 22.04下Bundler::PermissionError的方案

你的问题根源是系统级Ruby安装在/usr/local目录下,普通用户没有写入权限,而Rails禁止用sudo执行bundle install是为了避免权限混乱和安全风险。下面是两种可行的解决方法:

方案一:用rbenv管理Ruby版本(推荐)

rbenv是轻量的Ruby版本管理工具,会把Ruby安装在用户专属目录下,彻底规避系统权限问题。

  1. 安装依赖包
    打开终端,运行:
sudo apt update
sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
  1. 安装rbenv
    执行:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
  1. 配置shell环境
    根据你使用的shell(bash或zsh),把rbenv添加到启动文件:
  • 如果你用bash:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
  • 如果你用zsh:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
  1. 安装Ruby 3.2.2
    运行:
rbenv install 3.2.2

设置全局默认Ruby版本:

rbenv global 3.2.2

验证安装成功:

ruby -v

输出应该显示ruby 3.2.2p53(或类似版本号)。

  1. 安装Rails 7.1.2
    执行:
gem install rails -v 7.1.2

然后运行rbenv rehash让系统识别新安装的rails命令。

  1. 重新安装项目依赖
    回到你的blog项目目录,执行:
bundle install

此时gem会被安装在用户目录下的~/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0路径,不会再出现权限错误。

方案二:临时指定gem安装路径(应急用)

如果不想用版本管理器,可以临时把gem安装到用户有权限的路径:

  1. 配置gem用户目录
    运行:
echo 'export GEM_HOME="$HOME/.gem"' >> ~/.bashrc
echo 'export PATH="$HOME/.gem/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
  1. 重新安装Rails(若需要)
gem install rails -v 7.1.2
  1. 安装项目依赖
    回到项目目录,执行:
bundle install --path vendor/bundle

这样gem会被安装在项目目录下的vendor/bundle文件夹里,不需要系统级权限。

内容的提问来源于stack exchange,提问作者Mohammadamin Alizadeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:18:09