Rails 7无法定位Ruby可执行文件,如何指定Ruby安装路径?
解决Rails在Windows bash中指向错误Ruby路径的问题
问题背景
我是Ruby和Rails新手,按官方指南用rubyinstaller-devkit-3.2.2-1-x64安装Ruby,再通过gem install rails安装Rails后,在bash shell中直接运行rails -v报错,但运行rails.bat能正常获取版本。
错误信息
$ rails -v /c/Users/<username>/AppData/Local/Microsoft/WindowsApps/rails: line 6: /c/Users/<username>/AppData/Local/Microsoft/WindowsApps/ruby: No such file or directory
环境信息
$ ruby -v ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x64-mingw-ucrt] $ gem -v 3.4.10 $ which ruby /c/Ruby32-x64/bin/ruby $ which rails /c/Users/<username>/AppData/Local/Microsoft/WindowsApps/rails $ ~/AppData/Local/Microsoft/WindowsApps/rails.bat -v Rails 7.0.7.2
PATH仅包含C:\Ruby32-x64\bin;,无其他Ruby相关环境变量。
问题原因
bash shell优先识别了C:\Users\<username>\AppData\Local\Microsoft\WindowsApps目录下的无后缀rails脚本,而这个脚本会尝试在同目录查找ruby可执行文件,但你的Ruby实际安装在C:\Ruby32-x64\bin,因此出现找不到文件的错误。
解决方案
方案1:调整PATH环境变量优先级
- 打开bash的配置文件(比如
~/.bashrc或~/.bash_profile) - 添加以下内容,把Ruby的bin目录放到PATH最前面:
export PATH="/c/Ruby32-x64/bin:$PATH"
- 执行
source ~/.bashrc(对应你修改的配置文件)使设置生效,之后再运行rails -v即可正常返回版本。
方案2:移除无效的rails脚本
- 打开文件管理器,导航到
C:\Users\<username>\AppData\Local\Microsoft\WindowsApps - 删除或重命名该目录下的无后缀
rails文件(注意保留rails.bat),这样bash会自动找到Ruby安装目录下的正确rails脚本。
方案3:使用别名或完整路径临时解决
- 临时使用完整路径运行rails:
/c/Ruby32-x64/bin/rails -v
- 或者在bash配置文件中添加别名,之后直接输入
rails即可调用正确版本:
alias rails='/c/Ruby32-x64/bin/rails'
添加后执行source ~/.bashrc生效。
内容的提问来源于stack exchange,提问作者Peregrine
相关产品推荐
相关产品推荐

