재우니의 블로그


Running ASP.NET Core applications on Windows Subsystem for Linux


Windows 10에는 Linux 용 Windows Subsystem 이라는 것이 있습니다.이 제품을 사용하면 Hyper-V 또는 기타 가상 시스템없이 Linux를 사용하여 Windows 10에서 Linux 응용 프로그램을 실행할 수 있습니다. 

오픈 소스인 TemperatureStation 솔루션 과 같은 멀티 플랫폼 어플리케이션을 구축 할 때, 이를 테스트하기 위해 Linux를 사용할 때 매우 편리합니다. 이 블로그 게시물은 Windows에서 Linux를 실행하는 방법, .NET Core를 설치하는 방법 및 Linux에서 웹 응용 프로그램을 실행하는 방법을 보여줍니다.

NB!  이는 Windows 10 Fall Creators Update를 가지고 있으며 이 게시물은 이를 기반으로 작성되었습니다. 일반적으로 동일한 단계에서 약간의 차이점을 제외하고는 다른 Windows 10 버전에도 적용됩니다.

Windows 10에서 Linux 설정

우선 Linux 용 Windows Subsystem 을 활성화하는 것입니다. 리눅스를 설치하지는 않지만, 단 윈도우즈에 필요하며,  Linux 지원은 Windows 기능이며, 이를 사용하기 위해 Windows 기능 대화 상자(Windows Features dialog) 에서 활성화해야합니다.

Linux 용 Windows 서브 시스템 활성화

기능을 설치 한 후 Windows를 다시 시작해야합니다.

Windows에서 이제 Linux를 호스팅 할 준비가 되었으므로 Linux를 설치할 때입니다. Windows 10 Fall Creators Update는 둘 이상의 Linux 를 지원합니다.  스토어 앱에서  Ubuntu Linux  installer 를 열었습니다.

윈도우 우분투 리눅스 저장소

설치가 끝나면 몇 가지 구성이 필요하며, 이를 시작하고 실행하는 데 시간이 걸립니다. 여기서  username 과 password 를 물어 보며, 그 이후로  리눅스가 모든 것을 처리하며 우리는 완료 될 때까지 기다리면 됩니다.

Windows에서 Linux 실행

Linux를 설치 한 후에는 Windows 10 검색을 사용하여 실행할 수 있습니다.

Windows에서 우분투 검색

자주 실행해야하는 사용자는 Ubuntu를 작업 표시 줄이나 시작 메뉴에 고정시킬 수 있습니다.

.NET 코어 설치

 Ubuntu Linux를 설치했을 때. NET 코어 설치 명령 은 Windows Store에서 제공된 Ubuntu 16 용입니다.

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.2

설치 후 .NET Core를 설치하는 데는 몇 분이 걸립니다.


로컬 디스크에서 응용 프로그램 실행

Windows on Linux는 자체 파일 시스템을 사용하며 컴퓨터의 디스크는 마운트(mounting) 를 통해 볼 수 있습니다. 다음 스크린 샷은 테스트 컴퓨터에서 프로젝트 폴더로 이동 한 방법과 ASP.NET Core 응용 프로그램을 실행 한 방법을 보여줍니다. 

이 폴더는 Visual Studio에서 응용 프로그램을 빌드하는 폴더와 동일합니다.

Windows의 Linux에서 실행되는 ASP.NET 코어 응용 프로그램

그리고 Windows on Linux에서 제공되는 TemperatureStation 솔루션 의 웹 front-end 가 있습니다.

온도 스테이션

NB!  지금까지 몇 가지 문제를 경험했다. 때로는 Ubuntu에서 ASP.NET Core 웹 응용 프로그램을 실행 한 후에 터미널을 닫을 수 없습니다. 작업 관리자에서 닫을 때 ,다음 실행 터미널 창이 열리지 만 아무 일도 일어나지 않습니다. 문제가 있을 경우 Feedback app을 사용하여 Windows 팀에 문제를 보고 하십시오 .

마무리

Linux 용 Windows 서브 시스템은 사용 및 설치가 쉽습니다. Linux를 하드웨어 수준의 가상화없이 Windows에서 사용할 수있게 하고 Hyper-V 또는 다른 가상화 플랫폼을 설치할 필요가 없습니다. 멀티 플랫폼 응용 프로그램을 개발할 때 응용 프로그램을 신속하게 테스트하고 시험 할 수있는 Linux 환경을 제공하는 것이 편리합니다. 이런 식으로 리눅스에서 .NET 코어로 작업 할 때 몇 가지 문제에 직면했지만 이러한 문제는 스토퍼를 보여주지 못했고 제 작업이 완료되었습니다. 멀티 플랫폼 앱을 만드는 분들에겐 Windows on Linux를 사용하는데 좋은 시도가 될 수 있습니다.


.