使用sudo启动Puma时Ruby版本不匹配问题求助
问题原因分析
- sudo的环境隔离特性:sudo执行命令时会切换到root用户的环境,加载的是root的环境变量,而非你当前用户的。你的rbenv是配置在当前非root用户环境中的,root用户没有配置rbenv,所以默认调用系统预装的Ruby 3.0.2版本。
- rbenv的用户级作用域限制:rbenv是用户级别的Ruby版本管理工具,它的配置文件(比如
~/.rbenv下的内容)仅对安装它的当前用户生效,root用户的环境里没有这些配置,自然找不到你设置的3.1.2版本。 - 直接运行与sudo运行的环境差异:直接执行
rails server时,使用的是当前用户的环境,rbenv的配置正常生效,因此能正确调用Ruby 3.1.2及对应的Puma版本。
内容的提问来源于stack exchange,提问作者Jacob Jackson
相关产品推荐
相关产品推荐

