🚀 在 VS Code 中

使用 Linux 进行远程开发

Linux 是一个高度可变的环境,大量的服务器、容器和桌面发行版使得很难知道哪些是受支持的。Visual Studio Code 远程开发对于您将连接的特定主机 / 容器 / WSL 发行版有先决条件。

已知当连接到以下最新稳定/LTS 版本时,这些扩展可以工作

  • Ubuntu 64 位 x86、ARMv8l (AArch64) (20.04+)
  • Debian 64 位 x86、ARMv8l (AArch64) (Buster/10+)
  • Raspberry Pi OS ARMv7l (AArch32) 32 位 (Buster/10+)(以前称为 Raspbian)
  • CentOS / RHEL 64 位 x86 (8+)
  • Dev Containers、WSL 中的 Alpine Linux 64 位 x86 容器或 WSL 主机 (3.16+)

以下非 Linux SSH 主机也受支持

但是,如果您使用的是非标准配置或 Linux 的下游发行版,您可能会遇到问题。本文档提供了有关要求的信息以及帮助您启动和运行的提示,即使您的配置仅受社区支持。

请注意,其他扩展可能具有超出此处列出的依赖项。某些扩展还包含编译后的本机代码,这些代码可能无法在 Alpine Linux 或 ARMv7 (AArch32) 或 ARMv8 (AArch64) 上运行。因此,这些平台被认为是“预览版”。如果您遇到仅在特定扩展中出现的问题,请联系扩展作者以获取有关其本机依赖项的信息。

本地 Linux 必备条件

如果您在本地运行 Linux,则 VS Code 必备条件驱动了大多数要求。

此外,特定的远程开发扩展具有进一步的要求

远程主机 / 容器 / WSL Linux 必备条件

平台必备条件主要由 Node.js 运行时版本(以及扩展名 V8 JavaScript 引擎)驱动,该运行时在自动安装在每个远程端点上的服务器组件中附带。此服务器还具有一组相关的本机节点模块,需要为每个目标编译和测试。基于 64 位 x86 glibc 的 Linux 发行版目前为这些要求提供了最佳支持。

您可能会在使用 ARMv7l (AArch32) / ARMv8l (AArch64) 基于 glibc 的主机、容器或 WSL 以及 基于 64 位 x86 musl 的 Alpine Linux 的某些具有本机依赖项的扩展时遇到问题。对于 ARMv7l/ARMv8l,扩展可能仅包含扩展中本机模块或运行时的 x86_64 版本。对于 Alpine Linux,由于 Alpine Linux (musl) 和其他发行版 (glibc) 中 libc 的实现方式之间存在根本差异,因此包含的本机代码或运行时可能无法工作。在这两种情况下,扩展都需要选择通过编译/包含这些附加目标的二进制文件来支持这些平台。如果您遇到未按预期工作的扩展,请向相应的扩展作者提出问题,请求支持。

发行版 基本要求 Remote - SSH 要求 注释
通用 内核 >= 4.18,glibc >=2.28,libstdc++ >= 3.4.25,tar OpenSSH 服务器、bashcurlwget 运行 ldd --version 以检查 glibc 版本。运行 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 以查看 libstdc++ 3.4.25 是否可用。
Arm32 通用 libatomic1 没有其他要求。
Ubuntu 20.04+、Debian 10+、Raspberry Pi OS Buster/10+ 和下游发行版 libc6 libstdc++6 ca-certificates tar openssh-server bashcurlwget 需要内核 >= 4.18、glibc >= 2.28、libstdc++ >= 3.4.25。
RHEL / CentOS 8+ glibc libgcc libstdc++ ca-certificates tar openssh-server bashcurlwget 需要内核 >= 4.18、glibc >= 2.28、libstdc++ >= 3.4.25。
Alpine Linux 3.16+ musl libgcc libstdc++。musl >= 1.2.3,不需要 glibc。 尚不支持。 在 Dev Containers 和 WSL 中受支持。由于扩展本机代码中的 glibc 依赖项,容器中安装的扩展可能无法工作。
openSUSE Leap / SUSE Linux Enterprise 15+ glibc libgcc_s1 libstdc++6 ca-certificates gzip tar curlwget 需要内核 >= 4.18、glibc、libstdc++6

按 Linux 发行版提供的提示

以下是发行版列表以及可能缺少的任何基本要求。不包括发行版的生命周期结束版本。

  • ✅ = 工作正常
  • ⚠️ = 工作正常,但请参阅有关限制的注释
  • 🔬 = 实验性
  • 🛑 = 不受支持,但有解决方法
  • ❌ = 不受支持
服务器发行版 Docker 镜像 缺少的库 注释 / 其他步骤
⚠️ Alpine Linux 3.16(64 位) alpine:3.16 libgcc libstdc++ 仅在 Dev Containers 和 WSL 中受支持。由于扩展本机代码中的 glibc 依赖项,容器中安装的某些扩展可能无法工作。
✅ CentOS 8 Server(64 位) centos:8 <无> <无>
❌ CentOS 7 Server(64 位) centos:7 glibc >= 2.28,libstdc++ >= 3.4.25 <无>
✅ Debian 10 Server(64 位) debian:10 <无> <无>
❌ Debian 9 Server(64 位) debian:9 glibc >= 2.28,libstdc++ >= 3.4.25 <无>
✅ openSUSE Leap Server 15(64 位) opensuse/leap:15 Docker 镜像缺少 targzip <无>
✅ Oracle Linux 8(64 位) oraclelinux:8 <无> <无>
❌ Oracle Linux 7(64 位) oraclelinux:7 glibc >= 2.28,libstdc++ >= 3.4.25。Docker 镜像缺少 tar <无>
⚠️ Raspberry Pi OS Buster/10 (ARMv7l 32 位) <不适用> <无> 由于扩展 x86 本机代码,某些扩展在 ARMv7l 主机上安装时可能无法工作。Dev Containers 确实支持连接到 ARM 主机上的容器。
✅ RedHat Enterprise Linux 8(64 位) <无> <无>
❌ RedHat Enterprise Linux 7(64 位) glibc >= 2.28,libstdc++ >= 3.4.25 <无>
✅ SUSE Linux Enterprise Server 15(64 位) Docker 镜像缺少 targzip <无>
✅ Ubuntu Server 20.04(64 位) ubuntu:20.04 <无> <无>
❌ Ubuntu Server 18.04(64 位) ubuntu:18.04 glibc >= 2.28 <无>

问题或反馈