🚀 在 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。 尚不支援。 在開發容器和 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 <無>

問題或意見反應