使用 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 主機也受支援:
- Windows 10/11 / Server 2016/2019 SSH 主機 (1803+) 使用官方 OpenSSH Server。
- macOS 10.14+ (Mojave) SSH 主機,已啟用遠端登入。
但是,如果您使用的是非標準配置或 Linux 的下游發行版,您可能會遇到問題。本文件提供了有關要求的資訊以及提示,以幫助您即使在社群支援的配置下也能啟動和執行。
請注意,其他擴充套件程式可能具有超出此處列出的依賴項。某些擴充套件程式還包含已編譯的本機程式碼,這些程式碼可能無法在 Alpine Linux、ARMv7 (AArch32) 或 ARMv8 (AArch64) 上執行。由於此原因,這些平臺被視為“預覽版”。如果您遇到僅在特定擴充套件程式中發生的問題,請聯絡擴充套件程式作者以獲取有關其本機依賴項的資訊。
本地 Linux 先決條件
如果您在本地執行 Linux,則 VS Code 先決條件驅動大部分要求。
此外,特定的遠端開發擴充套件程式還有進一步的要求:
- Remote - SSH:
ssh需要在路徑中。shell 二進位制檔案通常在openssh-client包中。 - Dev Containers: Docker CE/EE 18.06+ 和 Docker Compose 1.21+。請按照適用於您的發行版的 Docker CE/EE 官方安裝說明進行操作。如果您使用 Docker Compose,請同時按照安裝 Docker Compose 方向進行操作。(請注意,不支援 Ubuntu Snap 包,並且發行版中的包可能已過時。)
docker和docker-compose也必須在路徑中。但是,如果您使用遠端主機,則 Docker 不需要執行。您可以在Dev Containers 文件中瞭解有關配置 Docker 的更多資訊。
遠端主機/容器/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 映象缺少 tar 和 gzip。 |
<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 映象缺少 tar 和 gzip。 |
<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> |
問題或反饋
- 請參閱提示與技巧或常見問題解答。
- 在 Stack Overflow 上搜索。
- 新增功能請求或報告問題。
- 建立開發容器模板或特性供他人使用。
- 為我們的文件或VS Code 本身做出貢獻。
- 請參閱我們的貢獻指南瞭解詳細資訊。