윈도우에 우분투 설치하기(with WSL2)

Ji_min·2021년 3월 11일
4

노트북을 바꿨다!🤩 5년 정도 써서 버벅거리길래 바꿔야지 생각만 하다가 드디어 실행에 옮겼다. 맥을 사고 싶기는 했지만 비싸고 굳이 내 수준에 필요없는 것 같아서 이번에도 윈도우로 했다. 어차피 WSL 통해서 우분투 가상머신을 설치해서 개발하면 되니까 별 상관은 없을 거라고 생각했다. MS에서 상세한 자습서도 제공해주고 이미 설치해본 적 있으니까 간단하게 설치할 수 있을 줄 알았는데 의외의 복병이 있었다. 바로 바보같은 나 자신... 이번 경험을 통해 나는 진짜 모르는 게 너무 많다는 것을 깨달았다. 그래서 어떻게 새 노트북 개발 환경을 세팅했는지 한 번 적어보고자 한다.

1. WSL 개념

1-1. WSL이란?

Windows Subsystem for Linux의 약자로, 윈도우에서 리눅스 환경을 사용할 수 있게 해주는 시스템이다.
다음은 MS 자습서에서 제공하는 영상에서는 설명하는 WSL로 할 수 있는 예시들이다.

  • 리눅스 커맨드라인을 윈도우 환경에서 사용 가능
  • bash shell에서 윈도우 파일에 접근하고 실행시킬 수 있음
  • bash script를 윈도우 드라이브에서 실행 가능
  • 윈도우에서 vscode로 작업하면서 리눅스에서 돌아가고 있는 백엔드 앱을 디버깅할 수 있음
  • AF unit socket을 사용해 윈도우 프로세스와 리눅스 프로세스 사이의 연계가 가능
  • 윈도우 프로세스와 리눅스 프로세스에서 모두 실행되는 복합적인 앱을 만들거나 사용 가능

1-2. WSL1 vs WSL2

WSL2는 WSL1의 최신 업데이트 버전인데, 이전 버전에 비해 달라진 점은 크게 두 가지이다.

1. 더 빨라진 파일 i/o performance

i/o performace가 뭔지 몰라서 찾아보니 IOPS(Input/output operations per second)를 가지고 계산하는 인풋/아웃풋 성능인 것 같다. MS 자습서의 영상에서는 apt install pip install git clone npm install 등의 작업을 할 때 WSL1에 비해 속도가 향상되었다고 설명하고 있다.

2. 100% 시스템 호출 호환성

WSL1에서보다 더 많은 앱들을 WSL2에서 사용 가능하다고 한다. ex) 도커, FUSE

기타 다른 차이점은 공식 문서 참고

나는 여기서 WSL2를 설치하는 방법을 서술하고자 한다.

2. WSL2 설치하기

자습서를 보고 따라하면 된다(링크)

2-1. WSL 사용 설정

Powershell을 관리자 권한으로 실행해서 아래의 두 명령어를 입력한다.

# WSL 옵션 기능 사용하도록 설정
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 가상 머신 플랫폼 옵션 기능 사용하도록 설정
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

이제 WSL 설치가 완료되도록 컴퓨터를 다시 시작한다.

설치가 제대로 되었는지 확인하고 싶다면 아래의 명령어를 powershell에 입력하면 된다.

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux


위와 같이 뜨면 정상적으로 설치된 것이다.

2-2. WSL2로 업데이트

공식문서에서 WSL2 커널 업데이트 패키지를 다운받아서 설치해야 한다.
(링크)
나는 어떤 종류의 머신인지 몰라서 자습서에 적힌 대로 Powershell에 systeminfo | find "System Type"을 입력했는데 아무것도 뜨지 않았다. 여기서부터 뭔가 이상했는데... 그래서 설정 -> 시스템 -> 정보 로 가서 직접 확인했다.

2-3. 설치할 패키지의 기본 배포 버전을 WSL2로 설정

그리고 이제 우분투를 설치할 건데, 그 전에 설치할 우분투 패키지의 배포 버전을 WSL2로 설정하는 명령어를 입력해준다.

wsl --set-default-version 2

그런데 나는 여기서 명령어를 입력하니까 Powershell이 wsl 이라는 명령어를 인식하지 못했다. 도대체 뭐가 문젠가 하고 아무리 찾아봐도 비슷한 오류를 찾을 수 없고 윈도우 업데이트가 안되어 있어서 그런가 싶어서 업데이트하고 재시작을 몇 번이나 해봤는데도 문제가 해결되지 않았다.

그러다 이 글을 읽고 문제가 뭔지 알게 되었다. 64비트 시스템을 사용 중이면서 32비트용 Powershell(x86)에 명령하고 있었던 것이다....ㅋㅋㅋㅋㅋ 와 진짜 나는 아무것도 모르고 있구나 싶었다. 일반 Powershell을 실행해서 wsl 명령어를 입력하니까 잘 실행이 되는 것을 확인할 수 있었다. 이렇게 새로운 걸 또 배웠다.

3. 우분투 설치하기

Microsoft store에 가서 우분투를 다운받고 설치한다.
(우분투 버전에 따라 정리된 링크)

설치를 완료하면 sudo 계정 이름과 비밀번호를 설정하라는 창이 뜬다. 설정하면 완료!

설치한 우분투의 배포 버전이 WSL1인지 WSL2인지 확인하고 싶다면 아래의 명령어를 입력하면 된다.

wsl -l -v

배포 버전이 2가 찍히면 WSL2로 배포된 것이다.

나는 vscode를 주로 사용하기 때문에 우분투 가상머신에서 vscode에 원격으로 접속하는 것까지 해줬다.

4.Vscode에 원격으로 접속하기

정말 간단하다.

4-1. 원격 개발 확장팩 설치

remote development 확장팩을 설치한다. (링크)
여기에는 remote-ssh, remote-wsl, remote-containers가 포함되어 있다.

4-2. vscode에 원격 접속

bash shell을 열고 아래의 명령어를 입력한다.

sudo apt update
code .

그럼 우분투 가상머신에서 vscode에 원격으로 접속 완료!

참고한 글


내가 시스템 환경을 잘 몰라서 시간을 많이 잡아먹어서 그렇지 wsl2를 통해 우분투를 설치하고 실행하는 것은 크게 어렵지 않고 시간이 오래 걸리는 일도 아니다. 이렇게 또 하나 배웠다 ㅋㅋ

profile
Curious Libertine

0개의 댓글