Windows에서 WSL 설정으로 별도의 듀얼 부팅 설정 없이 Linux 에서 개발하는 것과 같은 경험을 만들어보자.

WSL 이란?

리눅스용 윈도우 하위 시스템(Windows Subsystem for Linux, WSL)은 윈도우 10에서 네이티브로 리눅스 실행 파일(ELF)을 실행하기 위한 호환성 계층이다. WSL은 리눅스 커널 코드가 포함되지 않은, 마이크로소프트가 개발한 리눅스 호환 커널 인터페이스를 제공하며, 그 위에 리눅스 유저랜드를 실행시킬 수 있는데, 이를테면 우분투),[2][3][4][5] SUSE, 페도라)를 들 수 있다.[6][7] 이러한 유저랜드는 배시) 셸과 명령 언어를 포함할 수 있으며, 네이티브 리눅스 명령 줄 도구(sed, awk 등)들과 프로그래밍 언어 인터프리터(루비, 파이썬 등)가 내장된다.[8]
..
이 하위 시스템은 미구현된 리눅스 커널 서비스가 필요한 프로그램을 실행할 수 없는 등 모든 리눅스 소프트웨어를 실행할 수 있지는 않다.[9]
..
리눅스용 윈도우 하위 시스템은 오직 64비트 에디션의 윈도우 10에서만 사용할 수 있으며[8] 윈도우 10 애니버서리 업데이트 이후에서 활성화할 수 있다

마이크로소프트는 WSL을 “특히 웹 개발자와 오픈 소스 프로젝트로 일하는 사람들처럼 개발자들을 위한 주요 도구”로 바라보고 있다.[8] WSL은 완전히 가상화된 머신 보다 더 적은 자원을 사용하며 윈도우 환경에서 리눅스 소프트웨어를 실행시키는 가장 직접적인 방법이면서 그와 동시에 사용자들이 동일한 파일 집합 위에서 윈도우 앱과 리눅스 도구를 사용할 수 있게 한다.[8]

준비

Windows Terminal

Windows 터미널은 명령 프롬프트, PowerShell 및 WSL(Linux용 Windows 하위 시스템)과 같은 명령줄 도구 및 셸 사용자를 위한 최신 터미널 애플리케이션입니다. 주요 기능에는 여러 탭, 창, 유니코드 및 UTF-8 문자 지원, GPU 가속 텍스트 렌더링 엔진, 사용자 고유의 테마를 만들고 텍스트, 색, 배경 및 바로 가기를 사용자 지정하는 기능이 있습니다.

Microsoft Store 에서 Windows Terminal 을 검색하여 설치한다.

설치

Linux용 Windows 하위 시스템 사용 설정

Windows에서 Linux 배포를 설치하려면 먼저 Linux용 Windows 하위 시스템 옵션 기능을 사용하도록 설정이 필요하다.

  1. Windows Terminal을 관리자 권한으로 실행

  2. WSL2 활성화를 위한 DISM 명령어 실행

1
2
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.572

이미지 버전: 10.0.19041.630

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.572

이미지 버전: 10.0.19041.630

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.
  1. 설정이 끝난 후 컴퓨터 재부팅

WSL에서 사용할 수 있는 리눅스 배포판 설치

  1. Microsoft Store에서 Ubuntu 설치

  2. 설치가 완료되면 우분투 터미널 실행 후 username/password 설정

    1
    2
    3
    4
    5
    6
    7
    Installing, this may take a few minutes...
    Please create a default UNIX user account. The username does not need to match your Windows username.
    For more information visit: https://aka.ms/wslusers
    Enter new UNIX username: brkim
    New password:
    Retype new password:
    passwd: password updated successfully
  3. Windows Terminal 실행 후 리눅스 배포판 설치 확인

    1
    2
    3
    > wsl -l
    Linux용 Windows 하위 시스템 배포:
    Ubuntu(기본값)

WSL 2로 업데이트

  1. WSL 설치 가이드 에서 최신 WSL2 Linux 커널 업데이트 패키지 설치

  2. 설치완료 후 WSL 버전을 변경해 준다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > wsl -l -v
    NAME STATE VERSION
    * Ubuntu Running 1
    > wsl --set-version Ubuntu 2
    변환이 진행 중입니다. 몇 분 정도 걸릴 수 있습니다...
    WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
    변환이 완료되었습니다.
    > wsl -l -v
    NAME STATE VERSION
    * Ubuntu Stopped 2
  3. Window Terminal 다시 실행 후 새 탭에서 V 아이콘 선택 후 Ubuntu 선택

windows-wsl

결과

apt-get 패키지 관리자를 통해 다운로드 및 설치가 가능하다.

1
brkim@kimbora:/mnt/c/Users/bora.kim$ sudo apt update

Git 설치

1
$ sudo apt-get install git

zsh 설치

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo apt install git zsh -y
..
$ sudo chsh -s $(which zsh)
..
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
..
Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] Y
..

$ vi ~/.zshrc
# ZSH_DISABLE_COMPFIX=true 추가.

zsh 테마

참고

https://docs.microsoft.com/ko-kr/windows/wsl/about
https://docs.microsoft.com/ko-kr/windows/wsl/install-win10
https://devblogs.microsoft.com/commandline/do-not-change-linux-files-using-windows-apps-and-tools/
윈도우즈 응용 프로그램, 도구, 스크립트, 콘솔등을 사용하여 Linux 파일을 작성 및 수정하면 안됨.