여기서는 Windows10에 WSL을 설치하고(정확히는 WSL2다!), 그 위에서 QGIS를 돌려본 경험과 절차를 공유한다. 참고로 MS에서는 올 연말쯤부터 WSL2에서 GUI 기반 리눅스 프로그램을 네이티브하게 지원할 것이라고 한다. 그때가 되면 이런 번잡한 작업을 하지 않아도 Windows10에서 리눅스 그래픽 프로그램들을 쉽게 사용할 수 있을 것으로 보인다.
1. WSL(Windows Subsystem for Linux)과 리눅스 설치
- 이글의 주 목적은 WSL 설치가 아니므로 WSL와 리눅스 설치 관련한 내용은 간략히 설명한다.
- https://docs.microsoft.com/en-us/windows/wsl/install-win10를 참고해서 WSL을 사용할 수 있도록 자신의 PC를 설정하고 이후 필요한 경우 WSL2로 업데이트한다. 아래 URL에 그 방법이 잘 설명되어 있다.
- 리눅스 같은 경우 Microsoft Store에서 Ubuntu 검색해 설치하면 별 어려움 없이 설치할 수 있다.
- 참고로 WSL2는 Windows10 Build 19041 이후 버전에서만 설치된다. 자신의 Windows 버전을 확인하려면 Windows+R을 누른뒤 winver를 실행하면 된다.
2. X Window Server 설치
- WSL1이든 WSL2든 모두 리눅스 GUI 프로그램의 구동을 지원하지 않는다. 따라서 전통적인 X Window를 이용해 QGIS처럼 GUI가 필요한 프로그램을 구동시킬 수 있다.
- 이를 위해 X Window Server를 Windows에 설치해야 한다. X Server는 유료도 있고 무료도 있는데, 여기서는 오픈소스 프로젝트인 VcXsrv X Server를 이용했다. 이 프로그램은 https://sourceforge.net/projects/vcxsrv/에서 내려받을 수 있다.
- 설치할 때 특별한 어려움은 없다. 다만, 실행할 때 좀 주의할 점이 있다. 시작할 때 [Extra Settings] 창에서 'Disable Access Control' 옵션을 체크해 줘야 한다.(아래 그림 참조)
3. WSL 홈 디렉토리의 .bashrc 내용 변경
- vi 에디터나 혹은 다른 에디터를 이용해 자신의 홈 디렉토리에 있는 .bashrc(Bash를 쓸 경우)에 DISPLAY와 관련한 설정을 해줘야 한다. 즉, 그래픽 프로그램의 디스플레이를 어디서 표출할 것인가를 설정해 주는 것이다. 아래처럼 두 줄을 .bashrc에 추가해 준다.
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
export LIBGL_ALWAYS_INDIRECT=1
- WSL2는 별도의 가상머신으로 구동하기에 켤 때마다 IP 번호가 바뀐다. 위처럼 해 주면 자동으로 그래픽 표출을 위한 디스플레이 설정을 마칠 수 있다.
4. 리눅스 QGIS 최신 버전 설치
- 여기서는 Ubuntu 20.04(LTS)를 기준으로 설명한다.
- vi나 기타 에디터를 이용하여 /etc/apt/sources.list 에 다음과 같이 두 줄을 추가해 준다.
deb https://qgis.org/ubuntu-ltr focal main
deb-src https://qgis.org/ubuntu-ltr focal main
- 위와 같이 QGIS LTR 버전의 저장소를 지정한 뒤 아래와 같이 설치를 진행한다.
sudo apt-get update
sudo apt-get install qgis qgis-plugin-grass
- 만약 sudo apt-get update를 진행하는 동안 public key에 문제가 있다는 식의 에러가 나오는 경우 아래처럼 대처하면 된다.
wget -O - https://qgis.org/downloads/qgis-2019.gpg.key | gpg --import
gpg --fingerprint 51F523511C7028C3
- 위와 같이 실행한 후 다음과 같이 추가적인 설정을 해주면 된다.
gpg --export --armor 51F523511C7028C3 | sudo apt-key add -
- 리눅스에 QGIS를 설치하는 방법에 대해서는 https://www.qgis.org/en/site/forusers/alldownloads.html#linux 에 잘 설명되어 있다.
5. WSL에서 QGIS 실행하기
- 이제 모든 준비는 다 끝났고, 다음과 같은 절차로 실행하면 된다.
- VcXsrv를 실행한다. (개인적으로는 아래처럼 Multiple windows를 선호한다.) 더불어, 위에서 언급한 것처럼 [Extra Settings] 창에서 'Disable Access Control' 옵션을 꼭 체크해 줘야 한다
- WSL이나 혹은 Ubuntu를 실행해 들어간 명령창에서 QGIS를 실행한다.
- QGIS가 아래처럼 매우 빠르게 실행된다.
- WSL 디렉토리에 있는 데이터 파일들은 매우 빠른 속도로 가시화와 처리가 가능하다.(자세한 설명은 다음 실험 결과 참조)
6. Windows와 WSL 기반 QGIS 속도 비교
- Windows와 WSL 기반 QGIS의 속도를 다음과 같이 비교해 봤다.
사용한 시스템 사양: Dell XPS-13 9360, RAM16GB, CPU Intel Core i7-7500U, NVMe SSD 500GB
사용한 데이터: 서울지역 연속지적도 SHP, 파일 크기 250MB
- QGIS 프로그램 시작 속도와 데이터 로딩 속도는 아래와 같다.
플랫폼 | QGIS 프로그램 시작 (첫 시작) |
QGIS 프로그램 시작 (두 번째 시작) |
데이터 로딩 (Windows 저장소) |
데이터 로딩 (WSL 저장소) |
Windows10 | 38.06초 | 17.81초 | 17.05초 | 로딩 불가 |
WSL2 | 4.38초 | 4.11초 | 17.75초 | 6.85초 |
- 데이터가 WSL2의 파일 시스템에 있을 경우 QGIS의 처리 속도는 윈도우 QGIS를 압도한다. MS에서도 WSL2의 프로그램을 이용해 데이터를 처리할 경우 윈도우가 아닌 WSL2의 파일 시스템에 직접 저장해 사용할 것을 권장한다.
- 참고로 WSL2에서 Windows에 있는 파일에 접근할 경우 WSL1보다 속도가 더 느리다고 한다.(아래 링크 참고)
https://docs.microsoft.com/en-us/windows/wsl/compare-versions
7. 기타 - 한글 문제 등
- 만약 한글이 글꼴이 깨지는 등 제대로 안 나오면 아래 링크를 참조해 한글 글꼴을 수동으로 WSL에 설치해 주면 된다.
https://gist.github.com/lightonphiri/5811226a1fba0b3df3be73ff2d5b351c
- 네이버 나눔 글꼴 설치는 아래처럼 한 줄로 끝낼 수 있다.
sudo apt-get install fonts-nanum
- 더 다양한 폰트 설치는 아래 방법을 참고하기 바란다.
1. 사용자 디렉토리에 .fonts 폴더를 만든 뒤 이 폴더에 TTF, OTF 같은 글꼴을 복사해 넣어주면 된다. 해당 사용자에게만 적용되는 방식이다. 2. /usr/share/fonts/ 밑에 새로운 폴더를 만든 뒤 이곳에 TTF, OTF 같은 글꼴을 복사해 넣어준다. 이후, sudo fc-cache -fv를 실행하여 폰트 캐쉬를 다시 설정해 주면 시스템 전체적으로 새 글꼴이 적용된다. 3. 그래픽 글꼴 프로그램을 이용하는 것도 한 방법이다. sudo apt-get install font-manager를 이용해 font-manager를 설치한 뒤 이를 이용하여 글꼴을 등록해 주는 방법이다. |
2020년 5월 31일
신상희
'공간정보와 IT' 카테고리의 다른 글
가이아쓰리디, LH공사 스마트시티 디지털트윈 1단계 사업 수행 (0) | 2020.06.30 |
---|---|
FOSS4G UK 발표 자료와 동영상 (0) | 2020.06.23 |
공간정보, 디지털 트윈, 그리고 스마트 시티 (0) | 2020.06.19 |
영국 공간정보위원회 전략보고서 (0) | 2020.06.17 |
전 세계 웹GIS 점유율 추정치 (0) | 2020.06.07 |
우리나라 연속지적도의 좌표계는 EPSG:5174다. (0) | 2020.05.29 |
OSGeo 한국어 지부 2020년 1차 웨비나 안내 - GIS와 공중보건 (0) | 2020.05.27 |
오픈소스의 이해와 활용 (0) | 2020.05.26 |
공간정보, 디지털트윈, 그리고 스마트시티 (0) | 2020.05.08 |
OGC와 buildingSMART의 BIM과 GIS 통합 관련한 디스커션 페이퍼 (0) | 2020.04.11 |