티스토리 뷰

현재 Linux 용 Uno Platform은 Skia를 사용하는 렌더링 백엔드와 Gtk3를 사용한 Shell 지원을 함께 제공합니다.

 

Getting started with Uno Platform support for Linux

 

Getting started with Uno Platform support for Linux

Getting started with Uno Platform support for Linux The Uno Platform for Linux current comes with a rendering backend using Skia, and a Shell support with Gtk3. It is possible to develop : Using Visual Studio on Windows directly, or using the Windows Subsy

platform.uno

 

개발 방법

  • Windows에서 직접 Visual Studio를 사용하거나 WSL(Windows Subsystem for Linux)를 사용
  • Linux에서 VS Code 사용

Setting for Windows and WSL

Visual Studio 2019 16.6 이후 버전을 사용합니다.

1. VS WSL Extension을 설치합니다.

Extensions에서 wsl로 검색해서 .NET Core Debugging with WSL 2 - Preview 버전을 설치합니다.

이 확장 패키지는 Visual Studio 2019에서 WSL 2로 직접 디버깅 실행을 할 수 있도록 지원합니다.

2. WSL Ubuntu 18.04 or later 버전을 설치합니다.

자세한 사항은 여기를 참고합니다.

* 수동 인스톨 작업을 진행합니다. 

윈도우 인사이더 빌드를 사용하지 않는 경우에는 수동 인스톨 작업 6단계를 차례로 실행하면 됩니다.

Step 1 - Enable the Windows Subsystem for Linux

Windows에 Linux 배포를 설치하기 전에 먼저 "Windows Subsystem for Linux"선택적 기능을 활성화해야합니다.

PowerShell을 관리자 모드로 실행하고 아래 명령을 입력합니다.

 

PowerShell을 관리자 모드로 열기 위해서는 검색창에서 powershell로 검색한 후 Windows PowerShell 항목에서 마우스 오른쪽 버튼을 누르면 팝업 메뉴가 나오고 Run as administrator를 선택하면 됩니다.

//PowerShell

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

이제 2 단계로 이동하여 WSL 2로 업데이트하는 것이 좋지만 WSL 1만 설치하려는 경우에는 컴퓨터를 다시 시작하고 6 단계-Install your Linux distribution of choice로 이동할 수 있습니다. WSL 2로 업데이트하려면 컴퓨터를 다시 시작하고 다음 단계로 이동합니다.

Step 2 - Update to WSL 2

WSL 2로 업데이트하려면, Windows 10에서만 가능합니다.

 

요구사항

  • x64 시스템 : 버전 1903 이상, 빌드 18362 이상.
  • ARM64 시스템의 경우 : 버전 2004 이상, 빌드 19041 이상.
  • 18362보다 낮은 빌드는 WSL 2를 지원하지 않습니다. Windows Update Assistant를 사용하여 Windows 버전을 업데이트하십시오.

버전 및 빌드 번호를 확인하려면 Windows 로고 키 + R을 선택하고 winver를 입력 한 다음 확인을 선택합니다. (또는 Windows 명령 프롬프트에 ver 명령을 입력하십시오). 설정 메뉴에서 최신 Windows 버전으로 업데이트하십시오.

Step 3 - Enable Virtual Machine feature

WSL 2를 설치하기 전에 Virtual Machine Platform 선택적 기능을 활성화해야합니다.

PowerShell을 관리자 모드로 실행하고 아래 명령을 입력합니다.

//PowerShell

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

컴퓨터를 다시 시작하여 WSL 설치를 완료하고 WSL 2로 업데이트합니다.

Step 4 - Download the Linux kernel update package

최신 패키지를 다운로드하고 설치합니다.

설치가 완료되면 새 Linux 배포를 설치할 때 WSL 2를 기본 버전으로 설정하는 다음 단계로 이동합니다. (새 Linux 설치를 WSL 1로 설정하려면이 단계를 건너 뜁니다).

Uno Platform의 Skia.Gtk 프로젝트를 실행할 때 사용하는 VcXsrv X Server 프로그램은 WSL 1에서 더 잘 동작한다고 합니다. 그렇기 때문에 Step 5는 진행하지 않는 것을 권장합니다.

Step 5 - Set WSL 2 as your default version

PowerShell을 열고 다음 명령을 실행하여 새 Linux 배포를 설치할 때 WSL 2를 기본 버전으로 설정합니다.

//PowerShell

wsl --set-default-version 2

Step 6 - Install your Linux distribution of choice

Microsoft Store를 열고 좋아하는 Linux 배포를 선택합니다.

Linux를 선택하고 상세 페이지로 이동하면 Get 버튼이 보입니다. Get 버튼을 눌러서 다운로드를 할 수 있는 페이지로 이동합니다. 다운로드가 완료된 후 Launch 버튼을 누르면 Linux가 Windows에 설치됩니다. 설치가 완료된 후 Linux에서 사용할 아이디와 패스워드를 물어 봅니다.

여기까지 작업을 완료하면 WSL 설치가 완료된 것입니다.

 

Install Windows Terminal (optional)

Windows Terminal 앱을 사용하면 여러 탭을 사용할 수 있으며 (Linux 명령 줄, Windows 명령 프롬프트, PowerShell, Azure CLI 등을 빠르게 전환), 사용자 지정 키 바인딩 (탭 열기 또는 닫기, 복사 + 붙여 넣기 등을위한 바로 가기 키)을 만들고 검색을 사용합니다. 기능 및 사용자 지정 테마 (색상 구성표, 글꼴 스타일 및 크기, 배경 이미지 / 흐림 / 투명도)도 가능합니다.

 

3. X11 server for Windows 프로그램인 vcXsrv를 설치합니다.

다운로드 페이지로 이동 합니다.

설치 완료 후 실행할 때 "Multiple windows", "Start no client"를 선택하고 시작합니다.

4. GTK3 runtime을 설치합니다.

다운로드 페이지로 이동합니다.

아래에 있는 gtk3-runtime-3.24.23-2020-11-22-ts-win64.exe 파일을 선택해서 다운로드를 받는데, 윈도우에서 해당 exe파일에 대해 주의를 요구합니다. 그래서, keep를 선택해서 삭제되지 않도록 해야합니다.
최종적으로 제 경우에는 해당 runtime을 설치했는데도 gtk3를 찾지 못한다는 오류가 발생했습니다. 그래서, 런타임이 아닌 개발자 라이브러리를 설치했습니다. 아래 명령은 리눅스 환경에서 입력합니다.
  sudo apt-get install libgtk-3-dev  

5. WSL 1 모드를 사용하는 것이 일반적으로 X11 서버의 성능과 사용 편의성에 가장 적합합니다.

버전을 WSL 1으로 변경하려면 PowerShell에서 다음 명령을 입력합니다. 

설치한 Linux 배포가 우분투 20.04 버전인 경우 예
wsl --set-version "Ubuntu-20.04" 1

이 명령을 실행하면 작업이 완료되기 전까지 시간이 조금 소요됩니다.

액티브된 배포 정보를 조회

wslconfig /l

기본으로 변경 할때

wslconfig /s "Ubuntu-20.04"

VS WSL 2 Extension의 "distributionName": "Ubuntu-20.04" 시작 프로필 매개 변수를 사용하여 배포를 변경할 수도 있습니다. 그런데, 

어디를 어떻게 고쳐야하는지 정확한 위치를 모르겠더군요;;

 

그래도 WSL 2를 계속 사용하려는 경우 다음 단계를 수행해야 합니다.

 

Uno Project Template 설치하는 부분과 앱 생성 부분은 Visual Studio 2019로 해도 됩니다. 꼭 커맨드 라인에서 할 필요는 없습니다.

6. Visual Studio 2019에서 Uno Platform 프로젝트를 열고 Skia.Gtk 프로젝트를 선택하고, FirstUnoApp.Skia.Gtk라고 되어있는 부분을 WSL 2로 변경합니다.

FirstUnoApp.Skia.Gtk 프로젝트를 확장하고 launchSettings.json 파일을 열어 "DISPLAY": ":0" 을 추가합니다.

일단 문서에는 추가하라고 나오는데, 추가하지 않아도 실행 가능하면 추가할 필요 없을 것 같습니다.
{
  "profiles": {
    "FirstUnoApp.Skia.Gtk": {
      "commandName": "Project"
    },
    "WSL 2": {
      "commandName": "WSL2",
      "environmentVariables": {
          "DISPLAY": ":0"
      },
      "distributionName": ""
    }
  }
}

7. 디버그 세션을 실행합니다.

Skia.Gtk 프로젝트에서 버튼 클릭 이벤트에 브레이크를 걸어놓고 버튼을 클릭했더니 브레이크가 걸리네요~ 신기합니다. 리눅스 앱을 이렇게 쉽게 개발을 할 수 있다니...그냥 윈도우 앱 개발하는 것과 같은 느낌입니다.

 

끝으로

문서를 보고 처음 설정했을 때 GTK3.0 경로에 파일이 없다고 오류가 계속 나서 실행이 않되었습니다. 그래서 이것 저것 해보다가 결국 dev 버전 설치를 했더니 한방에 해결이 되었는데 혹시 다른 분들이 작업하실 때 다르게 해결하신 경우에는 리플남겨주시면 많은 도움이 될 것 같습니다.

 

댓글
댓글쓰기 폼