現已釋出!閱讀關於 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.