VS Code Remote - 无法在 WSL Ubuntu 18 或 WSL 2 Ubuntu 20 中运行“code”命令 - 路径错误

问题描述 投票:0回答:14

当我尝试在 WSL Ubuntu 中从 Visual Studio Code 运行

code
命令时遇到问题。我收到以下错误:

$ code .

/mnt/c/Users/Name/.vscode/extensions/ms-vscode-remote.remote-wsl-0.64.2/scripts/wslCode.sh: 63: /mnt/c/Users/Name/.vscode/extensions/ms-vscode-remote.remote-wsl-0.64.2/scripts/wslCode.sh: /home/barry/.vscode/bin/899d46d82c4c95423fb7e10e68eba52050e30ba3/bin/remote-cli/code: not found

当我运行以下命令时,它会安装 VS Code 服务器并且该命令按预期工作:

$ /mnt/c/Users/Name/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code .

当我运行

which -a code
时,我可以看到我有两个与此命令相关的路径,并且我相信正确的路径是
/mnt/c/Users/Name/AppData/Local/Programs/Microsoft VS Code/bin/code
,但我不知道如何删除第一个路径,也不知道它如何将两个路径与首先这个命令?

barry@RandomName:~$ which -a code
/mnt/c/Program Files/Microsoft VS Code/bin/code
/mnt/c/Users/Name/AppData/Local/Programs/Microsoft VS Code/bin/code

有人可以帮忙吗?

ubuntu-18.04 windows-subsystem-for-linux ubuntu-20.04 wsl-2 vscode-remote
14个回答
17
投票

5 分钟前遇到了同样的问题,thesteve0 的这篇文章对我有用:

https://github.com/microsoft/vscode-remote-release/issues/6294#issuecomment-1031974516

引用原帖:

  1. 在 Windows 上打开 VS Code
  2. 打开扩展程序,然后搜索 WSL
  3. 它应该说扩展需要重新加载 - 继续并重新加载它
  4. 打开 WSL 并输入代码
  5. 这应该会强制再次升级代码,这次应该会启动。

4
投票

一个简单的

sudo apt update -y
,然后重新运行
code .
为我解决了这个问题。


3
投票

我已经成功地通过创建一个指向正确目录的新符号链接来“解决”这个问题,这样这个符号链接就会首先运行。我找不到删除错误目录的方法,因此如果有人知道更干净的解决方案,我将不胜感激?

为了添加符号链接,我运行了

ln -s /mnt/c/Users/Name/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code /usr/local/bin/code

所以现在我有代码命令的这 3 个路径:

$ which -a code

/usr/local/bin/code
/mnt/c/Program Files/Microsoft VS Code/bin/code
/mnt/c/Users/Name/AppData/Local/Programs/Microsoft VS Code/bin/code

每当我尝试删除

rm
unlink
/mnt/c/Program Files/Microsoft VS Code/bin/code
(使用
sudo
)时,我都会收到 权限被拒绝


3
投票

在 Windows 上正常运行 Vscode 即可。这将加载 wsl 扩展并解决问题。


2
投票

我通过打开 wsl 并删除 .vscode-server 解决了我的问题

 rm -rf .vscode-server

我按照此链接修复链接


2
投票

我遇到过这个问题,并且解决了:

  1. 在 Windows 上打开终端并输入
    wsl
  2. 您将位于 wsl 环境中
  3. 类型
    rm -rf ~/.vscode-server
  4. 输入
    logout
    离开 wsl 环境
  5. 然后输入
    wsl --shutdown
  6. 尝试打开 VSCode 并使用 WSL 连接。

1
投票

保持简单的S*upid方法:

  1. 再次下载并安装 vscode。 Windows 链接
  1. (Ubuntu 示例)
    apt update && yes | apt upgrade
  2. 尝试从 wsl 启动代码

您应该看到类似以下内容:

Updating VS Code Server to version 5554b12acf27056905806867f251c859323ff7e9
Removing previous installation...
Installing VS Code Server for x64 (5554b12acf27056905806867f251c859323ff7e9)

1
投票

就我而言,VS Code 中的扩展并未处于需要重新加载的状态,如最多支持的答案。多次尝试后有什么帮助:

  1. 终止 WSL2 发行版(从 Windows CLI):
    wsl -t Ubuntu
    (将
    Ubuntu
    替换为您的发行版名称)
  2. 检查是否已停止:
    wsl -l -v
  3. 再次启动您的 WSL 分发。

在我的例子中,命令

code
开始可以通过Windows目录访问:
/mnt/c/Users/username/AppData/Local/Programs/Microsoft VS Code/bin/code


0
投票

在 C:\Users.vscode 中将路径 ms-vscode-remote.remote-wsl- 重命名为 ms-remote-wsl-old

在 WSL 中运行:代码。


0
投票

我安装了两个版本的 Visual Studio Code,其中一个版本为“(用户)”。我卸载了两者并通过 winget 安装了最新版本。

这为我解决了问题。


0
投票

我的电脑上安装了两个不同版本的 Visual Studio Code。 我已经卸载了旧版本保留最新版本。 这为我解决了问题。


0
投票

我尝试避免在 WSL 中使用 Windows PATH。我向我的

~/.bashrc
添加了手动别名,例如对于
code .

alias code='"/c/Program Files/Microsoft VS Code/bin/code" .'

0
投票

最近更新后,当我尝试使用

code .

从 wsl (Ubuntu-22.04) 启动 vs-code 时,我开始收到错误消息
/mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/bin/code: 61: /mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/Code.exe: Exec format error

我尝试了此页面上的许多建议,但问题仍然存在。

从 Windows 启动代码按预期工作并连接到 WSL

有任何线索如何解决或至少诊断这个问题吗?


0
投票

我遇到了同样的错误,但任何答案都对我有用,直到我在 github 上看到这个问题。

确保您不使用任何依赖于systemd的软件,例如snap、microk8s等

https://github.com/microsoft/WSL/issues/8952

引用原帖:

“在 /etc/wsl.conf 中禁用 systemd 支持可以解决该问题。”

/etc/wsl.conf(确保您不使用任何依赖于systemd的软件,如snap、microk8s等)

[boot]
#systemd = true

只需注释“systemd”并重新启动 wsl

© www.soinside.com 2019 - 2024. All rights reserved.