【问题标题】:Couldn't start client Rust Language Server无法启动客户端 Rust 语言服务器
【发布时间】:2020-02-07 06:33:55
【问题描述】:

我正在尝试从我的 WSL 中找出如何使用 rustc 和 cargo。我使用 VS Code 和 Rust (rls) 插件,可以编译我的代码,但 RLS 存在问题:

无法启动客户端 Rust 语言服务器

Rustup 不可用。从https://www.rustup.rs/安装

我该如何解决这个问题?

【问题讨论】:

  • Remote SSH 和 Linux VM 在 Windows(虚拟机)上运行时遇到了同样的问题。帮助手动安装 Rust 语言服务器rustup component add rls rust-analysis rust-src 并重新启动 VM。但不确定根本原因。

标签: visual-studio-code rust windows-subsystem-for-linux rls


【解决方案1】:

在 VSCode 设置中设置rust-client.rustupPath

{
    "rust-client.rustupPath": "~/.cargo/bin/rustup"
}

如果您在 Windows 上使用 WSL,请确保您编辑 Rust 扩展 WSL 设置,而不是用户/本地设置。

教程:

【讨论】:

  • 嗨 Daniel,在我的 vscode(从 wsl2 启动)中,我只看到用户和工作区选项卡,而不是远程 [WSL: Ubuntu-20.04] 选项卡。知道为什么吗?
  • @Paulus 你明白了吗?我不知道。
【解决方案2】:

即使我跑了:

which rustup
/Users/justincalleja/.cargo/bin/rustup

在 VSCode 设置中简单输入rustup

"Rust-client: Rustup Path rustup 可执行文件的路径。如果 rustup 则忽略 已禁用。”

还不够,我不得不将绝对路径放入 rustup 二进制文件,如上所示。这样做之后,我重新加载了窗口,然后被要求下载缺少的组件(或依赖项 - 现在我忘记了提示消失了)。完成此操作后,VSCode 插件似乎工作正常。我至少可以格式化代码。

所以看起来它与 VSCode 的 PATH 和我系统上的 PATH 不匹配。我不确定它是什么,但如果您只是想让扩展程序正常工作,请尝试在您的设置中使用rustup 的绝对路径。

(注意source "$HOME/.cargo/env" 会自动添加到您的启动文件中,例如 .bashrc。我尝试的第一件事是将其添加到 zsh 的启动文件中;我正在使用的 shell 以及它没有被添加。但这也不起作用。我正在使用rustc 1.49.0 (e1884a8e3 2020-12-29))。

【讨论】:

    【解决方案3】:

    这适用于我在 Ubuntu 20.04 的远程 SSH 环境中

    1. 编辑用户主目录中的 .profile 和 .bashrc 文件

    在 .profile 中,注释以下行:

    export PATH="$HOME/.cargo/bin:$PATH"
    

    在两者中,添加以下行:

    [[ ":$PATH:" != *":$HOME/.cargo/bin:"* ]] && PATH="$HOME/.cargo/bin:${PATH}"
    
    1. 重启。

    【讨论】:

    • 您不需要重新启动,因为您可以简单地 source .profile/ .bashrc 文件
    【解决方案4】:

    我在使用 WSL 和 Visual Studio Code 时也遇到了这个问题。问题似乎源于 Rust 语言服务器需要在您的路径中找到 rustup 的事实。我们可能都遵循了相同的路径,使用包管理器安装cargo,因此也安装了 rust 编译器工具。这不包括rustup,您实际上可以使用它来使 rust 工具链保持最新。 rustup 似乎也是在您的系统上安装 rust 工具链的首选方法。

    使用默认设置安装rustup 后,您应该会在主目录中看到.rustup 目录。这就是工具链所在的地方。安装文本都表明它会在注销并重新登录后将工具链添加到您的环境路径中,但我没有运气。我目前正在使用fish 而不是bash,并且必须更新配置以在启动时包含工具链。一旦我这样做了,我就能正确安装和运行 VSCode。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 2019-12-20
      • 2017-02-03
      相关资源
      最近更新 更多