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 ホストもサポートされています。
- 公式 OpenSSH サーバーを使用する**Windows 10/11 / Server 2016/2019 SSH ホスト** (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 を実行している必要はありません。Dev Containers のドキュメントで Docker の構成方法について詳しく学ぶことができます。
リモートホスト / コンテナー / 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 要件 | 注 |
---|---|---|---|
一般 | kernel >= 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 |
kernel >= 4.18, glibc >= 2.28, libstdc++ >= 3.4.25 が必要です。 |
RHEL / CentOS 8 以降 | glibc libgcc libstdc++ ca-certificates tar |
openssh-server bash および curl または 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 または wget |
kernel >= 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 ビット) | <該当なし> | <なし> | 拡張機能の x86 ネイティブコードのため、ARMv7l ホストにインストールされている一部の拡張機能が動作しない場合があります。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 TemplateまたはFeatureを作成します。
- 弊社のドキュメントまたはVS Code自体に貢献します。
- 詳細については、CONTRIBUTINGガイドを参照してください。