WSL 로 Windows 에서 Linux 개발 환경 구축하는 방법
목차
Windows 에서도 리눅스를 손쉽게 사용할 수 있다
리눅스라는 OS는 다양한 곳에서 쓰이는데 프로그래머들에게는 알아두면 많은 도움이 되는 OS 입니다. 특히 리눅스는 각종 서버에서 주로 탑재되는 OS 이기 때문에 서버를 구축하고 개발하려는 프로그래머들에게는 필수적으로 알아야 할 OS 라고 보면 됩니다.
그래서 리눅스를 자신의 PC나 서버에 설치하여 사용하는 경우가 꽤 많은데요, 내 개인 PC에 설치하여 사용하는 경우에는 Windows 에서 가상 머신을 설치하여 리눅스 개발 환경을 구축하는 경우가 주로 많습니다.
가상머신으로 Virtual Box + 우분투 배포판으로 Windows PC 에서 개발 환경을 구성하는 사례가 일반적인데, 이 경우에는 Virtual Box가 워낙 시스템의 리소스를 많이 잡아 먹을 수 있어서 속도가 다소 느린 부분이 있습니다.
그런데 최근에는 마이크로소프트에서 리눅스와 같은 “오픈 소스” 진영에 많은 지원을 하고 있습니다. 대표적인 예가 Visual Studio Code 같은 오픈소스 기반의 에디터를 개발 및 배포를 하고 있지요. 이런 경향은 리눅스에까지 영향을 미쳐서 Windows 에서 리눅스를 동시에 사용할 수 있게 환경을 지원하고 있습니다.
이는 리눅스를 기반으로 개발을 하는 프로그래머들에게 꽤나 장점이 될 수 있는 부분입니다. 리눅스를 다루는 프로그래머들도 사실 Windows 기반의 PC를 주 OS로 사용하고 개발시에 리눅스를 병행하는 방식으로 많이 사용하기 때문입니다.
위에 글에서도 언급했듯이 Windows 기반의 노트북이나 데스크탑 PC 를 기반으로 사용하면서 Windows PC에 가상 머신을 설치하여 리눅스를 병행해서 사용하거나 아예 리눅스 PC를 만들어서 “원격 접속” 형태로 많이들 사용하고 있습니다.
그런데 마이크로소프트에서는 Windows 10 이후로 Windows 자체에서 리눅스를 편리하게 사용하기 위해 “WSL”을 지원하고 있습니다.
WSL이란?
Windows Subsystem for Linux 의 약자로 단어를 해석해보면 “리눅스를 위한 윈도우즈 서브 시스템” 입니다. 즉 Windows 에서 손쉽게 리눅스를 사용할 수 있는 기능을 뜻합니다.
WSL은 Windows 10 부터 새롭게 추가가 되었으며 약간의 설정 변경과 마이크로소프트 Store 에서 검색 하여 설치하는 것만으로 사용이 가능합니다.
WSL의 설치 가이드는 마이크로소프트의 위 링크 글에서도 확인할 수 있습니다.
WSL 설정 변경 및 우분투 20.04 설치해보기
WSL을 사용하면 가상 머신인 “Virtual Box” 보다 뛰어난 성능 및 적은 리소스를 차지하기 때문에 꽤나 유용합니다. Virtual Box 에서 리눅스를 사용할 때보다 제 감으로는 확실히 속도가 빠르다는 느낌을 받고 있습니다.
또한 Windows 와 파일 공유에도 수월하기 때문에 리눅스 기반의 개발에도 장점이 있습니다. 최근에 저는 WSL 기반으로 C소스를 컴파일 하는 작업을 하였는데 문제없이 개발이 가능했습니다.
그럼 WSL을 Windows 에서 설치하는 방법에 대해 알아보겠습니다.
WSL을 활성화 시키려면 먼저 Windows 10 2004 (빌드 19041) 이상, Windows 11 에서 사용이 가능합니다.
제어판에서 “프로그램 및 기능” 버튼을 클릭 한 다음에 아래와 같이 “Linux용 Windows 하위 시스템” 을 선택하여 활성화 시켜 줍니다.
위와 같이 했으면 “확인” 버튼을 누른 후 Windos 를 재시작 합니다.
그런 다음 “Microsoft Store” 를 들어갑니다.
그런 다음에 검색 창에서 “ubuntu” 를 입력합니다. 그러면 위와 같이 WSL에서 사용할 수 있는 우분투 배포판 들이 검색이 됩니다. 여기서 본인이 사용하려는 우분투 배보판을 선택하여 다운로드 하면 됩니다.
참고로 우분투는 20.04 이상 사용하시길 권장드립니다. 18.04 이하 버전의 경우에는 기술 지원 기간이 종료되어서 더이상 소프트웨어 업데이트 지원을 받기가 어렵더군요.
다운로드 및 설치에는 그리 시간이 오래 걸리지 않습니다. 설치가 완료된 다음에 Windows 시작 화면에는 설치된 우분투가 나타나게 됩니다.
그럼 설치된 우분투를 한번 실행해 볼까요?
좀전에 설치한 우분투 20.04 아이콘을 실행해 보니 위와 같이 리눅스 콘솔 화면이 나타납니다. 이제 WSL로 우분투 20.04 를 설치하는게 완료가 되었습니다. 이후에는 Windows 에서도 좀더 손쉽게 리눅스를 사용하고 개발을 할 수가 있습니다.
WSL 의 리눅스와 파일을 공유하는 방법
이제 WSL로 Windows 에서 리눅스를 손쉽게 사용하는게 가능해졌습니다. 그러면 리눅스와 Windows 사이에 파일 복사나 공유는 어떻게 하면 될까요?
먼저 Windows 의 파일 탐색기를 엽니다. 그 다음에 탐색기의 주소창에서 “//wsl$” 를 입력하면 됩니다.
그러면 위와 같이 WSL로 설치한 리눅스 배포판들이 나타나게 됩니다. 여기서 저는 제 Windows PC에 우분투 18.04와 20.04 둘다 설치를 했습니다.
위 경로로 들어가면 마치 “삼바” 와 같이 설치된 리눅스의 디렉토리로 접근할 수 가 있습니다. 여기에 파일 복사가 가능해 집니다.
위 경로를 “네트워크 드라이브”로 연결하여 사용하면 좀더 편리하게 파일 공유 및 복사가 가능해 집니다.
WSL로 설치한 리눅스의 기본 경로를 여분의 드라이브로 이동하는 방법
위의 과정으로 WSL을 통해 리눅스를 설치했다면 이제 당신은 내 Windows PC 에서 리눅스를 아주 편리하는 사용하는게 가능해집니다. 그런데 약간의 문제가 있습니다.
일단 WSL로 리눅스를 설치하면 해당 리눅스의 파티션은 기본적으로 메인 하드 디스크인 C 드라이브에 할당이 됩니다. 이렇게 되면 만약 WSL 리눅스의 용량이 늘어나게 되면 그만큼 C 드라이브의 하드 디스크 용량을 할당하게 됩니다.
리눅스로 개발을 하다 보면 생각보다 많은 파일들을 다루고 충분한 디스크 용량이 필요한데 그렇게 되면 내 Windows PC의 C 드라이브 용량이 줄어들게 되어 Windows 에서 가용 용량이 줄어들게 되는 결과를 가져옵니다.
따라서 하드디스크 확장을 통해 별도의 하드디스크에 WSL의 리눅스를 설치했으면 하는 생각도 듭니다. 예를 들면 추가로 확장한 D 드라이브에 WSL 리눅스를 설치하여 충분한 용량으로 사용을 했으면 하지요.
이번 문단에서는 그 방법에 대해 가이드를 해보겠습니다.
C 드라이브에 있는 WSL 리눅스 이미지 파일을 D로 옮기는 방법
위의 가이드대로 WSL 리눅스를 설치하면 기본적으로 C 드라이브의 “\\Users\사용자\AppData\Local\Packages” 의 하위 폴더에 이미지 파일들이 설치가 됩니다. 이 이미지 파일은 확장자가 “.vhdx” 를 가지고 있습니다.
이 이미지 파일을 D 드라이브로 이동을 하면 되는데요, 하지만 이 파일을 단순히 이동만 시키면 오류가 발생할 수 있습니다.
위 링크는 move-wsl 이라는 어느 개발자가 제공하는 VHDX 이미지 이동 툴입니다. 원리는 VHDX 이미지를 C에서 Export 하여 원하는 경로로 이동을 시켜주는 것을 도와줍니다.
따라서 위 github의 파일들을 내 PC에 체크아웃해서 Windows PowerShell 을 실행한 다음에 “move-wsl.ps1” 파일을 실행합니다. 제가 사용할 때는 bat 파일을 사용하였지만 개발자가 bat 파일을 삭제한거 같습니다.
실행 방법은 위의 그림대로 실행하면 됩니다. 먼저 move-wsl.ps1 실행하면 이동하려는 리눅스 이미지 파일을 선택해 줍니다. 그런다음에 이동하려는 경로를 선택해 주면 이동 작업이 진행됩니다.
위 그림은 move-wsl 의 개발자가 올려놓은 예시입니다. 위의 예시대로 이동을 진행하면 되겠습니다.
실제로 D로 이동한 VHDX 이미지 파일입니다. 저는 위 툴로 우분투 20.04 뿐만 아니라 18.04, 22.04 모두를 D로 옮겨서 사용중입니다. 이렇게 move-wsl 스크립트를 사용하여 편리하게 WSL 이미지 파일들을 다른 경로로 이동하는게 가능합니다.
WSL 리눅스를 터미널 프로그램으로 접속하여 사용하는 방법
WSL 리눅스를 설치하면 이제 Windows 상에서 실행 아이콘만 클릭하면 리눅스를 사용할 수가 있습니다. 그런데 기본적으로는 터미널 화면이 “Windows Power Shell” 과 비슷하기 때문에 익숙치 않을 수 있습니다.
이럴 때 익숙한 터미널 프로그램을 사용하는게 가능합니다.
그중애서 가장 추천할 만한 프로그램은 “MobaXterm” 을 사용하면 편리합니다.
MobaXterm 의 경우에는 위 그림에서와 같이 자동으로 WSL 로 설치된 리눅스들의 세션을 찾아서 등록해 줍니다. 따라서 설치한 해당 세션을 선택하여 접속하면 됩니다.
이제 WSL 로 리눅스 기반의 개발 및 리눅스 사용을 Windows 에서 편리하게 하시기 바랍니다.