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

WSL2升级Rails 6.1.7后无法运行Ruby/Rails等工具的问题求助

解决WSL2中调用Windows Ruby导致Rails/Bundler无法运行的问题

问题根源

你的WSL2系统优先调用了Windows C盘安装的Ruby 2.6(路径/mnt/c/ruby26-x64/bin),而非通过rvm安装的WSL本地Ruby 2.7。WSL无法直接兼容Windows Ruby脚本的执行环境,再加上Windows脚本默认使用的CRLF换行符与Linux的LF格式冲突,最终触发bad interpreter: No such file or directory错误。

解决方案

  • 调整PATH环境变量,让WSL本地Ruby优先

    1. 查看当前PATH顺序,确认Windows Ruby路径是否排在前面:
      echo $PATH
      
    2. 编辑shell配置文件(如~/.bashrc或~/.zshrc),加入以下内容确保rvm管理的Ruby路径优先级最高:
      # 加载rvm环境(若未自动加载)
      [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
      # 将rvm Ruby路径置于PATH最前端
      export PATH="$HOME/.rvm/rubies/ruby-2.7.x/bin:$PATH"
      
      注意替换ruby-2.7.x为你实际安装的Ruby 2.7具体版本号。
    3. 使配置生效:
      source ~/.bashrc  # 若用zsh则执行source ~/.zshrc
      
    4. 验证配置:执行which ruby和which rails,输出应指向rvm路径下的对应文件,而非/mnt/c开头的Windows路径。
  • 彻底避免调用Windows Ruby(可选)
    如果不需要在WSL中访问Windows的Ruby工具,可以直接从PATH中移除Windows Ruby的路径。编辑~/.bashrc或~/.zshrc,找到包含/mnt/c/ruby26-x64/bin的行并删除,然后重新加载配置。

  • 修复项目依赖环境
    完成PATH调整后,进入你的Rails项目目录,执行以下命令确保依赖与本地Ruby版本匹配:

    rvm use 2.7.x  # 切换到目标Ruby版本
    gem install bundler
    bundle install
    

    之后尝试启动Rails服务:

    rails s
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:40:25