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

执行bundle exec rake命令报错ruby3.0不存在,求助解决方案

解决sudo执行bundle exec rake时找不到ruby3.0的问题

问题背景

执行命令:

sudo bundle exec rake ridge:apply ALLOW_DROP_TABLE=1 ALLOW_REMOVE_COLUMN=1

报错:

/usr/bin/env: ‘ruby3.0’: No such file or directory

已确认信息:

  • 普通用户下which ruby返回/home/hai/.rbenv/shims/ruby
  • 已创建软链接sudo ln -sv /home/hai/.rbenv/shims/ruby /usr/bin/ruby
  • ruby -v显示版本为ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]

核心原因

  1. sudo环境变量被重置:sudo默认使用受限的PATH,不包含rbenv的shims目录,导致系统无法找到rbenv管理的Ruby。
  2. 脚本shebang指定ruby3.0:报错提示寻找ruby3.0命令,但你仅创建了ruby的软链接,名称不匹配。

解决方案

方案1:创建ruby3.0的软链接

直接建立ruby3.0指向rbenv Ruby的软链接,匹配脚本的shebang要求:

sudo ln -sv /home/hai/.rbenv/shims/ruby /usr/bin/ruby3.0

方案2:让sudo继承用户环境

执行命令时添加-E参数,让sudo保留当前用户的环境变量(包括PATH):

sudo -E bundle exec rake ridge:apply ALLOW_DROP_TABLE=1 ALLOW_REMOVE_COLUMN=1

方案3:修改sudo的secure_path配置

使用visudo编辑sudo配置文件(避免语法错误):

sudo visudo

找到Defaults secure_path行,将rbenv的shims目录添加进去:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/home/hai/.rbenv/shims

保存后,sudo执行时就能自动识别rbenv管理的Ruby。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 06:22:45