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 ホストもサポートされています。
- Windows 10/11 / Server 2016/2019 SSH ホスト (公式 OpenSSH Server を使用した 1803 以降)。
- macOS 10.14 以降 (Mojave) SSH ホスト (リモート ログイン が有効)。
ただし、非標準構成または Linux のダウンストリームディストリビューションを使用している場合は、問題が発生する可能性があります。このドキュメントでは、要件に関する情報と、構成がコミュニティサポートのみの場合でも、起動して実行できるようにするためのヒントを提供します。
他の拡張機能には、ここにリストされているもの以外の依存関係がある場合があることに注意してください。一部の拡張機能には、Alpine Linux、ARMv7 (AArch32)、または ARMv8 (AArch64) で動作しない可能性のあるコンパイル済みのネイティブコードも含まれています。これらのプラットフォームは、この理由から「プレビュー」と見なされています。特定の拡張機能でのみ発生する問題が発生した場合は、ネイティブ依存関係に関する情報について拡張機能の作成者にお問い合わせください。
ローカル Linux の前提条件
ローカルで Linux を実行している場合、VS Code の前提条件が要件のほとんどを占めています。
さらに、特定のリモート開発拡張機能には追加の要件があります。
- Remote - SSH:
ssh
がパスにある必要があります。シェルバイナリは通常、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 を実行する必要はありません。Docker の構成方法の詳細については、Dev Containers ドキュメントを参照してください。
リモートホスト / コンテナ / 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 サーバー、bash 、および curl または 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 および curl または wget |
カーネル >= 4.18、glibc >= 2.28、libstdc++ >= 3.4.25 が必要です。 |
RHEL / CentOS 8 以降 | glibc libgcc libstdc++ ca-certificates tar |
openssh-server bash および curl または wget |
カーネル >= 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 または wget |
カーネル >= 4.18、glibc、libstdc++6 が必要です。 |
Linux ディストリビューション別のヒント
以下は、ディストリビューションと不足している可能性のある基本要件のリストです。ディストリビューションのサポート終了バージョンは含まれていません。
- ✅ = 動作
- ⚠️ = 動作しますが、制限事項に関する注を参照してください
- 🔬 = 試験的
- 🛑 = サポートされていませんが、回避策があります
- ❌ = サポートされていません
サーバーディストリビューション | Docker イメージ | 不足しているライブラリ | 注 / 追加手順 |
---|---|---|---|
⚠️ Alpine Linux 3.16 (64 ビット) | alpine:3.16 |
libgcc libstdc++ |
Dev Containers および 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 イメージに tar と gzip がありません。 |
<なし> |
✅ 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 ビット) | <n/a> | <なし> | ARMv7l ホストにインストールされている場合、一部の拡張機能は、拡張機能の x86 ネイティブコードのために動作しない場合があります。Dev Containers は、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 イメージに tar と gzip がありません。 |
<なし> | |
✅ Ubuntu Server 20.04 (64 ビット) | ubuntu:20.04 |
<なし> | <なし> |
❌ Ubuntu Server 18.04 (64 ビット) | ubuntu:18.04 |
glibc >= 2.28 |
<なし> |
質問またはフィードバック
- ヒントと裏技 または FAQ を参照してください。
- Stack Overflow で検索してください。
- 機能リクエスト を追加するか、問題を報告してください。
- Dev Container テンプレート または 機能 を作成して、他のユーザーが使用できるようにします。
- ドキュメント または VS Code 自体 に貢献してください。
- 詳細については、CONTRIBUTING ガイドを参照してください。