개발을 하면서 제일 반가운 것 중 하나가 바로 WSL(Windows Subsystem for Linux)일 겁니다. 당장 리눅스 환경이 필요한데 VirtualBox 등을 설치하기는 애매할 때 쓰면 좋은 것이 WSL이거든요.
특히나 Gradle 작업이 Windows에서 퍼포먼스가 심각하게 떨어지는 것(링크) 때문에 복잡하고 무거운 Gradle 작업을 할 때에는 울며 겨자먹기로 Linux 상에서 작업해야 합니다.
단순히 WSL2만을 설치할 것이라면 Windows 11에서 단순히 이 명령어만 관리자 권한으로 실행하면 됩니다.
wsl --install
위 명령어만 입력하면 Windows가 알아서 WSL2 설치에 필요한 Windows 기능을 활성화하고 Ubuntu 20.04.05 버전(22.08.28 기준)을 설치해줍니다. 물론 이후에 다음 명령어를 입력해 WSL 커널을 최신 버전으로 업데이트하기는 해야 합니다.
wsl --update
뭐, 그 이후에는 늘 하던 대로 패키지를 최신으로 업데이트하면 됩니다.
sudo apt update
sudo apt upgrade -y
만약 본인이 WSL을 영어 환경에서만 사용할 것이고, 한국어를 일절 입력하지 않을 것이라면 그냥 이대로 본인이 하고 싶은 것을 진행해도 됩니다.
하지만 사람 심리라는 것이 원래 1을 보면 2가 갖고 싶고, 2를 보면 4가 갖고 싶어 집니다.
우분투가 한국어를 지원하지 않는 것도 아닌데, 굳이 영어만 써야 할까요? 한국어로 된 소프트웨어를 좀 쓰고 싶을 수도 있죠.
그래서 이 글에서는 Windows 11에서 WSL2과 WSLg를 설치하고 표시 언어를 한국어로 설정하는 과정을 안내합니다.
WSL2와 함께 Ubuntu 설치하기
위에서 말씀드렸다시피, wsl --install
과 wsl --update
명령어를 통해 Ubuntu 20.04.05 버전을 설치할 수 있습니다. 만약 다른 배포판을 설치하고 싶다면 wsl --list --online
명령어를 사용해 wsl --install -d <배포판 이름>
에서 사용할 수 있는 배포판 이름을 알아내거나 Microsoft 스토어에서 원하는 배포판을 설치하면 됩니다.
만약 기존 설치되어 있는 Ubuntu를 초기화하고 싶다면, 먼저 wsl --shutdown
명령어를 통해 모든 WSL을 종료한 후, '설정 - 앱 - 앱 및 기능'에 들어가 '종료', '초기화' 버튼을 순서대로 눌러주면 됩니다.
wsl --shutdown
명령어를 실행하지 않고 위 과정을 진행하면 제대로 초기화가 진행되지 않습니다.
초기화 후에는 앱 목록에서 본인이 설치하고자 하는 배포판을 클릭하면 됩니다. wsl --install
로 설치한 사람이라면 앱 목록에 Ubuntu라는 항목이 있겠죠. 그걸 누르면 됩니다.
새로 배포판을 설치했거나 기존 배포판을 초기화 했다면 WSL을 실행 후 초기 설정 과정을 모두 완료합니다. sudo apt upgrade -y
까지 모두요.
필요한 패키지 설치
먼저 한국어 입력에 필요한 패키지를 설치합니다.
sudo apt install ibus ibus-hangul fonts-noto-cjk fonts-noto-cjk-extra
UI에 표시되는 언어를 한국어로 설정하기 위해 다음 패키지 또한 설치합니다.
sudo apt install language-pack-ko language-selector-gnome
GUI 환경에서 주로 쓸 프로그램이 파일 탐색기 역할을 하는 Nautilus와 메모장 역할을 하는 GEdit이기 때문에 이 두 프로그램과 함께 연관 패키지를 설치합니다.
만약 본인이 다른 프로그램을 설치할 계획이라면, 관련된 언어 패키지가 있는지 확인하세요.
sudo apt install gedit hunspell-ko nautilus language-pack-gnome-ko gnome-user-docs-ko
모든 패키지 설치가 완료되었다면, gedit
이나 nautilus
명령어를 실행해 관련 프로그램들이 정상적으로 실행되는지 확인하세요. 아직은 영어로 된 UI가 나오는 것이 정상입니다.
한국어 UI 설정
다음 명령어로 UI 언어를 한국어로 설정합니다.
sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX
이때 반드시 logout
명령어로 로그아웃을 해주어야 변경사항이 적용됩니다. exit
도 괜찮고요.
다시 로그인 후, locale
명령어로 현재 로케일을 확인합니다. 다음과 같이 되어 있다면 정상입니다. 1
LANG=ko_KR.UTF-8
LANGUAGE=
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=
만약 update-locale
명령어가 제대로 적용되지 않는다면 dpkg-reconfigure
를 사용하는 방법도 있습니다.
sudo dpkg-reconfigure locales
이제 gedit이나 nautilus를 실행해보면 UI가 한국어로 표시되고 있음을 확인할 수 있습니다.
만약 위와 같이 나오지 않는다면 sudo gnome-language-selector
명령어를 통해 수동으로 로케일을 지정할 수 있습니다.
만약 'Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory'와 같은 오류 메시지가 나타난다면 sudo service dbus start
명령어로 dbus 데몬을 먼저 실행시킨 후 다시 gnome-language-selector
를 실행하면 됩니다.
IBus 설정
이제 IBus 설정을 해야 합니다. 하지만 그전에 IBus 엔진을 시작하도록 설정해야 합니다.
다음 명령어를 이용해 .bashrc 파일을 엽니다.
nano ~/.bashrc
.bashrc 파일의 맨 밑에 다음 줄을 추가합니다.
ibus-daemon -drR
이후 로그아웃 후 다시 로그인합니다. 다시 로그인한 후, ibus engine
명령어를 입력했을 때 xkb:us::eng
라고 나온다면 제대로 IBus가 실행되고 있다는 것입니다. 아직 한글 입력 설정을 하지 않았기 때문에 ibus engine
의 결괏값이 기본값인 xkb:us::eng
로 나오는 것입니다.
만약 IBus 데몬이 제대로 실행되지 않았다면 .bashrc
파일의 내용을 다시 한번 점검한 후, 수동으로 ibus-daemon
을 실행할 수도 있습니다.
이제 ibus engine hangul
을 입력해 IBus의 입력 엔진을 한국어로 설정합니다.
ibus engine hangul
간혹 한번에 IBus 엔진이 설정되지 않는 경우가 있으니, ibus engine
명령어와 ibus engine hangul
명령어를 번갈아 사용해가며 제대로 IBus 엔진이 설정되었는지 확인하세요.
여기까지 해도 충분하지만, 더 확실히 설정하고 싶다면 im-config
명령어를 입력한 후, 다음 과정을 따릅니다.
간혹 설정 완료 후 다음 환경 변수를 설정하라는 메시지가 나오는 경우도 있습니다. 하라는대로 해주시면 됩니다.
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
이제 WSLg와 함께 한국어 UI 설정이 모두 완료되었습니다.
- 분명 LC_MESSAGES를 POSIX로 설정했지만, 적용이 왜 안되는지는 모르겠습니다 [본문으로]