參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

使用 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+)
  • Alpine Linux 64 位 x86 容器或 WSL 主機 (3.16+) 在開發容器、WSL 中

還支援以下非 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 實現方式的根本差異而無法工作。在這兩種情況下,擴充套件需要透過編譯/包含這些額外目標的二進位制檔案來選擇支援這些平臺。如果您遇到無法按預期工作的擴充套件,請向相應的擴充套件作者提出問題,請求支援。

發行版 基本要求 遠端 - 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。 尚未支援。 在開發容器和 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++ 僅在開發容器和 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 主機時可能無法工作。開發容器確實支援連線到 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 <無>

問題或反饋