现已发布!阅读关于 11 月新增功能和修复的内容。

使用 Linux 进行远程开发

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

已知扩展程序在连接到以下最近的稳定/LTS 版本时可以正常工作:

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

以下非 Linux SSH 主机也受支持:

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

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

本地 Linux 先决条件

如果您在本地运行 Linux,则 VS Code 先决条件驱动大部分要求。

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

远程主机/容器/WSL Linux 先决条件

平台先决条件主要由 Node.js 运行时(以及随之而来的V8 JavaScript 引擎)的版本驱动,该版本随每个远程端点上自动安装的服务器组件一起提供。该服务器还具有一组相关的本机节点模块,需要针对每个目标进行编译和测试。鉴于这些要求,64 位 x86 glibc-based Linux 发行版目前提供了最佳支持。

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

分布 基本要求 Remote - SSH 要求 备注
通用 kernel >= 4.18, glibc >=2.28, libstdc++ >= 3.4.25, tar OpenSSH server, bash, and curl or wget 运行 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 bash and curl or wget 需要 kernel >= 4.18, glibc >= 2.28, libstdc++ >= 3.4.25。
RHEL / CentOS 8+ glibc libgcc libstdc++ ca-certificates tar openssh-server bash and curl or wget 需要 kernel >= 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 curl or wget 需要 kernel >= 4.18, glibc, libstdc++6

按 Linux 发行版分类的提示

以下是发行版列表以及可能缺少的任何基本要求。已停止支持的版本不包括在内。

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

问题或反馈

© . This site is unofficial and not affiliated with Microsoft.