Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
maxLevel2

TL;DR

WSL 은 Windows의 단점이던 Ruby,Python, PHP, NodeJs 등의 "개발 환경 구성이 어렵고 불편함"을 획기적으로 개선한 제품입니다.

...

Code Block
titleWSL 2 로 변환
wsl --set-version Ubuntu 2



WSL 2 설치

Insider Program 참여 & Build 18917 설치

Warning

WSL2는 탈퇴해도 다음 퍼블릭 릴리스가 나올때까지는 프리뷰 상태에서 사용해야 하며 시스템이 불안정해 질 수 있으므로 개발 장비가 아니면 설치하지 마세요.!

...

설치가 정상적으로 되었다면 윈도 버전이 18917 이어야 합니다. cmd.exe 를 실행한 후에 ver 명령을 실행하면 현재 버전을 확인할 수 있습니다.


Virtual Machine Platform 컴포넌트 활성화

WSL 2는 경량화된 Hyper-V 를 통해 구동되므로 "가상 머신 플랫폼" 을 활성화해야 합니다.  관리자 권한으로 powershell 을 열고 아래 명령어를 실행합니다.

Code Block
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

WSL 2로 전환

기존에 ubuntu 나 SUSE disto를 설치했다면 wsl 2 로 전환할 수 있습니다.

...

다시 한 번 확인해 보려면 다음 명령어를 실행하면 disto 목록과 버전을 확인할 수 있습니다.

Code Block
wsl -l -v


WSL 2 시작하기

wsl 을 시작하려면 wsl.exe 를 disto 명과 함께 실행하면 되며 distro 를 생략하면 기본 distro 가 실행되며 바로 bash 쉘 프롬프트로 변경됩니다.

...

Tip

위의 예제는 Ubuntu 에서 실행했으며 우분투이므로 wsl.exe 처럼 확장자를 명시하지 않으면  다음과 같은 에러가 발생합니다.

Panel

Command 'wsl' not found, but can be installed with:

sudo apt install wsl



apt update

WSL 1은 apt 명령어가 너무 느려서 update 를 잘 하지 않았습니다. WSL 2는 IO 가 많이 좋아졌다고 하니 테스트를 겸해서 ubuntu 를 업데이트 해 보았습니다.

...

예전에는 IO 가 느려서 인지 패키지를 받은후에 시스템에 적용하는게 꽤 오래 걸렸는데 400 개의 패키지인데 꽤 빠르게 동작합니다.


disto 재부팅

업데이트후에 반영을 위해 shutdown 명령어를 실행해 보았습니다.

...

Code Block
wsl --shutdown ubuntu


Network 설정

WSL 1은 ethernet 을 host 와 공유했습니다. 즉 WSL 1 에 서버를 띄우면 윈도우에서는 127.0.0.1 으로 접속이 가능했습니다.

...

Code Block
titlessh 로 연결
$ ssh 172.17.27.242


Trouble Shooting

설치하면서 몇 가지 시행 착오를 겪어서 github gist 에 정리중입니다.

WSL2: installation got Error: 0x8007001f

Expand


error code 4294967295 

Code Block
연결된 구성원으로부터 응답이 없어 연결하지 못했거나, 호스트로부터 응답이 없어 연결이 끊어졌습니다. 4294967295

...

Windows 서비스 목록에서 LxssManager 가 구동되어 있는지 확인하고 재시작합니다.


같이 보기

참고