Windows 10에 한국어 입출력이 가능한 리눅스 데스크톱 설치하기

남정현
남정현
Jan 4 · 10 min read

Windows 10에 WSL이 추가되면서 많은 분들이 각자 자신만의 방법으로 개발 환경을 구축하는 노하우를 만들어가고 있습니다. 어떤 의미로 보면 그 자체로 새로운 리눅스 사용 환경이 만들어지고 있습니다.

이번 글에서는 여러 번의 시행 착오 끝에 가장 안정적으로 사용하고 있는 Windows 10 기반의 한국어 입출력이 가능한 리눅스 데스크톱을 구축하는 방법을 Windows OS 시점에서 커맨드 라인을 중심으로 단계별로 살펴볼 것입니다.

시작하기 전에

필독: 만약 WSL 2를 실행할 때 WSL을 시작할 수 없다는 오류 메시지를 만난다면 이 내용을 검토해보세요.

WSL 2는 내부적으로 Host Compute Service를 사용하여 경량화된 가상 컴퓨터 인스턴스를 만듭니다. HCS로 만드는 가상 컴퓨터는 기존의 Windows OS의 가상 컴퓨터와는 다르게 운영 체제가 가상 컴퓨터의 존재를 인식하고, OS의 일부로 여겨 통제할 수 있는 대상입니다.

그런데 이 기능을 동시에 사용하려는 대상이 한 컴퓨터에 여러 개가 있을 경우 정상적으로 작동하지 않을 수 있습니다. 예를 들어 Windows 샌드박스 기능이나 Windows 컨테이너 (Docker Desktop for Windows), Windows Defender for Application Guard 같은 기능을 동시에 사용하려고 할 경우 어느 한쪽이 제대로 동작하지 않을 수 있습니다.

이럴 때에는 부득이하게도 그 컴퓨터에서 제일 중요한 기능을 우선으로 사용해야 하므로 WSL 2를 우선하거나 WSL 2를 포기하는 결정을 내려야 할 수 있습니다.

WSL 2 활성화하기

관리자 권한으로 PowerShell을 시작합니다. 그리고 다음과 같이 명령어를 입력합니다.

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform, Microsoft-Windows-Subsystem-Linux

실행 결과 RestartNeeded True로 표시되면 컴퓨터를 다시 시작해야 한다는 뜻입니다. 이 때에는 컴퓨터를 다시 시작하도록 합니다. 여기에 해당하지 않으면 재시작 할 필요가 없습니다.

Restart-Computer -Force

그 다음에는 WSL의 기본 버전을 2로 설정해야 합니다.

wsl.exe --set-default-version 2

Ubuntu Linux 18.04 설치하기

Microsoft Store를 통하지 않고, 별도의 디렉터리에 잘 보이도록 리눅스 배포판을 설치하는 것을 개인적으로 권장합니다.

Microsoft Store 앱 방식으로 설치하는 경우 의도하지 않게 Store 앱을 제거하거나 초기화하면서 내부의 리눅스 환경이 유실되는 불상사가 생기기 쉽기 때문에 이 방법을 추천합니다.

우선 다운로드 폴더로 작업 디렉터리를 변경합니다.

Set-Location -Path $env:USERPROFILE\Downloads

그 다음 Ubuntu Linux 18.04 패키지를 다운로드하여 압축을 해제합니다. C:\Distro\Ubuntu 라는 디렉터리에 압축을 푼다고 가정합니다. 압축을 풀고 난 뒤에는 ZIP 파일을 지웁니다.

$TargetUri = "https://aka.ms/wsl-ubuntu-1804"Start-BitsTransfer -Source $TargetUri -Destination .\ubuntu.zipNew-Item -Type Container -Path $env:SYSTEMDRIVE\Distro\UbuntuExpand-Archive -Path .\ubuntu.zip -DestinationPath $env:SYSTEMDRIVE\Distro\UbuntuRemove-Item -Path .\ubuntu.zip

압축이 풀린 곳으로 이동하여 나머지 설치를 진행합니다. 사용자 이름과 비밀 번호를 묻는데, Windows 10의 사용자 계정과는 상관없는 개별적인 아이디와 비밀 번호이므로 편하게 입력합니다.

Set-Location -Path $env:SYSTEMDRIVE\Distro\Ubuntu.\ubuntu1804.exe

초기 리눅스 환경 설정하기

이제 리눅스 환경을 설정할 차례입니다. 요즈음 흔히 사용하는 리눅스 환경에 가깝게 만들기 위하여 몇 가지 설정해보겠습니다.

정말 감사하게도 국내에 오픈 소스 소프트웨어를 위한 무료 CDN 서버를 제공하는 기업과 단체가 몇 있는데, 그 중 대표적인 곳이 카카오와 KAIST입니다. 여기서는 카카오의 미러를 사용하도록 변경하려고 합니다.

sudo sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list

미러를 변경한 후 패키지 정보를 새로 고침합니다.

sudo apt update

각종 보안 패치, 최신 소프트웨어, 핫픽스 등을 적용하기 위하여 최초 한 번은 시스템 업데이트를 곧바로 해주는 것이 좋습니다.

커뮤니티에서 WSL에서 발견한 문제가 있을 경우에도 이 방법으로 수정 버전이 내려오므로 주기적으로 시스템 업데이트를 하는 것이 권장됩니다.

sudo apt -y upgrade && sudo apt -y autoremove

터미널의 기능을 강화하고, 시각적으로 좀 더 보기 편한 화면을 만들어주는 인기 셸로 oh-my-zsh를 많이 선택합니다. oh-my-zsh를 사용하기에 앞서 우선 zsh를 설치합니다.

sudo apt -y install zsh

그 다음 oh-my-zsh는 따로 제공되는 셸 스크립트로 간편하게 설치할 수 있습니다.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

기본 셸을 바꿀지 여부를 묻는 부분에서는 바꾸도록 진행하고, 비밀 번호를 입력해줍니다.

기본적으로 리눅스는 미국 영어를 기준으로 모든 메시지와 날짜 표시를 합니다. 그러나 필요에 따라 리눅스 시스템에서 한국어를 기준으로 메시지를 표시할 수 있도록 설정을 할 수도 있습니다. 다음과 같이 명령어를 입력합니다.

sudo apt -y install language-pack-kosudo locale-gen ko_KR.EUC-KRsudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX

모든 적용이 끝난 후에는 로그아웃을 한 번 진행합니다.

logout

X11 데스크탑 설치하고 구성하기

이제 X11 데스크탑을 설치하고 구성하는 과정을 진행할 차례입니다.

멀티미디어 관련 서비스를 잠시 활성화하고 아래 패키지들을 설치합니다. 패키지 설치에 시간이 많이 소요되니 잠시 기다립니다.

sudo service dbus startsudo apt -y install xfce4 xfce4-terminal xfce4-goodies firefox thunderbird thunar-archive-plugin file-roller xterm

우리가 실제로 대면하는 OS는 WSL 안의 리눅스가 아니라 Windows 이므로 Windows의 화면 보호기를 사용하면 됩니다. WSL 안의 화면 보호기는 불필요한 중복이므로 제거합니다.

sudo apt -y purge xscreensaversudo apt -y autoremove

한국어 서체와 입력기를 설치하는 과정도 단순합니다. 입력기로는 IBUS를 사용할 것입니다.

sudo apt -y install ibus-hangulsudo apt -y install fonts-unfonts-core fonts-unfonts-extra fonts-nanum fonts-nanum-coding fonts-nanum-eco fonts-nanum-extra fonts-noto-cjk

Windows OS 입장에서 가장 변경 폭이 작고 시스템 변경이 없는 선택지는 원격 데스크톱입니다. 리눅스가 원격 데스크톱 연결을 받아들여 X11 세션과 연결할 수 있게 해주기 위하여 XRDP를 설치하고 구성합니다.

사용자의 기본 X11 세션을 XFCE4 데스크톱으로 설정하고, Windows가 기본으로 사용하는 RDP 포트 번호와 겹치지 않게 5001 (혹은 원하는 다른 포트 번호를 사용해도 됩니다.)로 지정해줍니다.

sudo apt -y install xrdpecho "xfce4-session" > ~/.xsessionsudo sed -i 's/port=3389/port=5001/g' /etc/xrdp/xrdp.ini

X11 데스크톱 띄우기

WSL 2는 아쉽게도 데몬을 자동으로 띄워주는 역할을 하는 부분이 존재하지 않습니다. 그래서 WSL 2 인스턴스를 처음 시작하면 XRDP 서비스를 수동으로 시작해주어야 합니다.

다만 한 번만 실행해주면 WSL 2 자체를 종료하거나 시스템을 다시 시작하기 전까지는 계속 유효합니다.

sudo service xrdp start

그 다음 아래 그림과 같이 원격 데스크톱 연결 앱을 실행합니다.

주소 입력란에는 localhost:5001 (5001은 위의 예제 기준이며, 실제로 지정한 값을 넣도록 합니다.) 을 넣고 접속합니다.

그 다음 XRDP 세션 매니저 화면이 나타나는데, 처음 Ubuntu Linux 설치를 할 때 입력했던 사용자 아이디와 비밀 번호를 넣도록 합니다.

한국어 입력기 설정하기

바탕 화면이 나타나면, 화면 상단 제일 우측의 EN 아이콘을 클릭한 다음, Korean 입력기로 변경합니다. 이렇게 하면 한국어 입력기까지 설정이 완료됩니다.

이제부터는 Shift (왼쪽)과 Space 키를 누르면 리눅스 데스크톱 안에서 한/영 전환이 자유롭게 이루어집니다.

필요하다면 LibreOffice, GIMP, Inkscape 같은 유틸리티를 설치할 수 있습니다. 각각 오픈 소스 계열의 오피스 스위트, 그래픽 편집, 벡터 드로잉 도구입니다.

sudo apt -y install libreoffice gimp inkscape

마무리

WSL 2 개발 과정 중에는 네트워크 구조의 변화로 내부의 IP 주소를 알아야만 접속할 수 있었던 불편함이 있었지만, 이 문제는 중간에 해결되어 이제는 localhost 주소로 WSL 2에서 수신하는 포트들이 전부 바인딩됩니다.

따라서 바탕 화면에 다음의 명령어에 대한 바로 가기만 추가하면 아무 때나 쉽게 리눅스 데스크톱에 접근할 수 있게 됩니다.

mstsc.exe /v:localhost:5001 /f

남정현의 블로그

DevOps related blogs

남정현

Written by

남정현

Azure와 .NET 기술을 즐겨 사용하는 개발자입니다. 한국 Azure 사용자 페이스북 그룹에서 활동합니다.

남정현의 블로그

DevOps related blogs

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade