이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

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+)
  • Alpine Linux 64비트 x86 컨테이너 또는 WSL 호스트 (3.16 이상) (Dev Containers, WSL)

다음 비-Linux SSH 호스트도 지원됩니다.

그러나 표준이 아닌 구성 또는 다운스트림 Linux 배포판을 사용하는 경우 문제가 발생할 수 있습니다. 이 문서는 요구 사항에 대한 정보를 제공하며, 커뮤니티에서만 지원되는 구성이라도 사용할 수 있도록 돕는 팁을 제공합니다.

다른 확장 기능에는 여기에 나열된 것 이상의 종속성이 있을 수 있습니다. 일부 확장 기능에는 컴파일된 네이티브 코드가 포함되어 있어 Alpine Linux, ARMv7 (AArch32) 또는 ARMv8 (AArch64)에서 작동하지 않을 수 있습니다. 이러한 플랫폼은 이러한 이유로 "미리 보기"로 간주됩니다. 특정 확장 기능에서만 발생하는 문제를 발견하면, 확장 기능 작성자에게 문의하여 네이티브 종속성에 대한 정보를 얻으십시오.

로컬 Linux 전제 조건

로컬에서 Linux를 실행하는 경우, VS Code 전제 조건이 대부분의 요구 사항을 충족합니다.

또한, 특정 원격 개발 확장 기능에는 추가 요구 사항이 있습니다.

  • 원격 - SSH: ssh가 경로에 있어야 합니다. 셸 이진 파일은 일반적으로 openssh-client 패키지에 있습니다.
  • Dev Containers: Docker CE/EE 18.06 이상 및 Docker Compose 1.21 이상. 배포판에 맞는 Docker CE/EE의 공식 설치 지침을 따르십시오. Docker Compose를 사용하는 경우, Docker Compose 설치 지침도 따르십시오. (Ubuntu Snap 패키지는 지원되지 않으며, 배포판의 패키지는 최신이 아닐 수 있습니다.) dockerdocker-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 구현 방식의 근본적인 차이 때문에 포함된 네이티브 코드 또는 런타임이 작동하지 않을 수 있습니다. 두 경우 모두 확장 기능은 이러한 추가 대상에 대한 바이너리를 컴파일/포함하여 이러한 플랫폼을 지원하도록 선택해야 합니다. 예상대로 작동하지 않는 확장 기능을 발견하면, 해당 확장 기능 작성자에게 지원을 요청하는 이슈를 제기해 주십시오.

분포 기본 요구 사항 원격 - 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 bashcurl 또는 wget kernel >= 4.18, glibc >= 2.28, libstdc++ >= 3.4.25가 필요합니다.
RHEL / CentOS 8 이상 glibc libgcc libstdc++ ca-certificates tar openssh-server bashcurl 또는 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 서버 (64비트) centos:8 <없음> <없음>
❌ CentOS 7 서버 (64비트) centos:7 glibc >= 2.28, libstdc++ >= 3.4.25 <없음>
✅ Debian 10 서버 (64비트) debian:10 <없음> <없음>
❌ Debian 9 서버 (64비트) debian:9 glibc >= 2.28, libstdc++ >= 3.4.25 <없음>
✅ openSUSE Leap 서버 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비트) <해당 없음> <없음> 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 이미지가 targzip을 누락했습니다. <없음>
✅ Ubuntu Server 20.04 (64비트) ubuntu:20.04 <없음> <없음>
❌ Ubuntu Server 18.04 (64비트) ubuntu:18.04 glibc >= 2.28 <없음>

질문 또는 피드백

© . This site is unofficial and not affiliated with Microsoft.