Azure, AWS, GCP 클라우드 활용 Tip과 강좌 게시판

이곳은 개발자를 위한 Azure, AWS, GCP등 클라우드 활용 Tip과 강좌 게시판 입니다. 클라우드 환경을 개발하면서 알아내신 Tip이나 강좌, 새로운 소식을 적어 주시면 다른 클라우드를 공부하는 개발자 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

클라우드 & 오픈소스 개발자를 위한, WSL(Windows Subsystem for Linux) 구성과 설정

소개

이 글은, 클라우드 & 오픈소스 개발자를 위한, WSL(Windows Subsystem for Linux) 구성과 설정에 대해서 소개.

WSL을 이용하면, 윈도우 개발환경에서 손쉽게 Ubuntu 등의 여러 리눅스 배포판 개발 환경 구축 가능.

특히, Visual Studio code에서 Python, node 개발할때 우분투 환경을 사용.

SQLER에서 앞으로 다룰 많은 머신러닝, 클라우드 개발, 오픈소스 개발은 WSL 기반으로 소개 예정

 

준비사항

- Windows 10 OS가 버전 1903 이상 또는 build가 18362 이상 (버전을 체크하려면 cmd에서 ver 명령 수행)

- ARM64 환경에서는 버전 2004 이상, build가 19041 이상

- 빌드가 18362  이하에서는 WSL2 지원 안함. Windows 업데이트 후 설정

개발자 머신이라면 조건은 대부분 만족 하실겁니다. 

 

설치 절차

- Windows 10에서 "Virtual Machine Platform" 설정 활성화

- 파워쉘에서 명령 수행

 

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

- 이 문서의 링크를 통해 "Download the Linux kernel update package" 다운로드 후 설치
(2021년 1월 13일 업데이트) 만약 설치시 ""This update only applies to machines with Windows Subsystem for Linux"" 오류가 발생할 경우 아래 github 가이드 내용대로, "Linux용 윈도우 하위시스템"을 제거 후 리부팅, 재설치, 리부팅 후 다시 시도해 보면 설치가 잘됨.

Error: This update only applies to machines with Windows Subsystem for Linux · Issue #616 · MicrosoftDocs/WSL (github.com)

- WSL2를 기본 버전으로 설정

 

 wsl --set-default-version 2

- Microsoft store WSL 링크에서 기본 리눅스 배포판(distribution) 선택

  - Ubuntu 16.04부터 SUSE 리눅스,  데비안 등을 선택 가능

 

 

 

 

- WSL 설치 후 실행하하고, 우분투 계정 설정, 계정 설정은 당연히 우분투의 기능 그대로.

 

 

- 선택 : 추가적으로 Windows Terminal 구성(저는 개인적으로, tmux 씁니다)

windows_terminal.png

WSL 구성 수고하셨습니다.

 

주의사항

- WSL1과 WSL2 체크

- Machine Learning / Deep Learning 등에서 현재 개발 시스템의 GPU를 쓰려면 관련 설정 필요

- WSL은 가상화(virtualization으로 동작), WSL 환경 안에서 docker 실행시 체크 필요

 

wsl 백업과 복원

2021년 1월 13일 추가

Easily move WSL distributions between Windows 10 machines with import and export! - Scott Hanselman's Blog

위 문서의 내용으로 wsl backup / restore 수행하면서 겪은 시행착오 업데이트

 

wsl 백업 명령 

powershell을 관리자권한으로 실행 후 아래 명령 수행

wsl --list -v
# 위 명령을 수행해 "distro이름" 확인

wsl --export <distro이름> ./압축파일명.tar
wsl --export PerfectWSLDistro ./PerfectWSLDistro.tar

 

생성된 압축파일명.tar을 복구할 시스템으로 복사 후 아래 명령 수행.

마찬가지로, 파워쉘에서 실행

 

복구할 디렉토리 생성
mkdir ~/AppData/Local/<distro이름>
wsl --import <distro이름> C:\Users\사용자계정\AppData\Local\<distro이름> 압축파일명.tar --version 2


위의 scott의 가이드에서 아래 명령을 수행하는데, 내 경우 ~가 먹지 않아 위처럼 absolute path 사용해 복구 실행


복구 후 wsl에 접속하면, 기본 root 계정으로 접속됨. default account를 변경해야 함.

그런데, 여기에서 기존 문서가 동작하지 않음. github에서 관련 내용 찾음.

Impossible to set default user of distribution installed via wsl --import on 1903 · Issue #3974 · microsoft/WSL (github.com)

 

# wsl default account를 변경하는 파워쉘 함수 생성
Function WSL-SetDefaultUser ($distro, $user) { Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq $distro | Set-ItemProperty -Name DefaultUid -Value ((wsl -d $distro -u $user -e id -u) | Out-String); };

# 아래와 같은 명령을 수행해 기본 계정 변경
WSL-SetDefaultUser <Distro이름> <기본계정이름>

이렇게 wsl과 계정 모두 복원 가능

 

참고링크

- WSL 구성

- WSL에 vscode 구성

- WSL을 위한 Windows Terminal 설정

- 위키피디아 WSL 

 

 

No. Subject Author Date Views
324 [동영상강좌] 안드로이드 개발자를 위한 Windows Azure Mobile Service 소개 - 모바일 앱의 백엔드 서비스 구축을 위한 레시피 (1/6) 코난(김대우) 2013.05.13 116052
323 [동영상강좌] 안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/6) 코난(김대우) 2013.05.13 114613
322 [동영상강좌] 안드로이드 개발자를 위한 Windows Azure Mobile Service 서버 스크립트 (3/6) 코난(김대우) 2013.05.13 114519
321 [동영상강좌] 안드로이드 개발자를 위한 Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/6) 코난(김대우) 2013.05.13 114352
320 Windows Azure Mobile Service! 따땃한 소식 입니다. 코난(김대우) 2012.09.04 105261
319 [동영상강좌] Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/7) 코난(김대우) 2013.03.14 100917
318 [동영상강좌] Windows Azure Mobile Service 서버 스크립트 (3/7) 코난(김대우) 2013.03.14 99583
317 [동영상강좌] Windows Azure Mobile Service 소개 - 모바일 앱의 백엔드 서비스 구축을 위한 레시피 (1/7) 코난(김대우) 2013.03.13 98751
316 [동영상강좌] Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/7) 코난(김대우) 2013.03.14 98720
315 Windows Azure Mobile Service - HTML 웹사이트와, 하이브리드 플랫폼인 Apache Cordova(예전 PhoneGap) 지원 코난(김대우) 2013.03.19 92741
314 [Azure강좌] 1. 클라우드와 원도우 애저 소개 [11] 엽이(이호엽) 2011.05.19 87713
313 [Azure강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제 [2] 엽이(이호엽) 2011.06.26 86987
312 [동영상강좌] 안드로이드 개발자를 위한 Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM - 다 한방에 푸쉬 (6/6) 코난(김대우) 2013.05.13 83492
311 [동영상강좌] 안드로이드 개발자를 위한 Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/6) 코난(김대우) 2013.05.13 80400
310 윈도우 애저 교육 자료 공유 [1] 코난(김대우) 2011.05.13 78262
309 클라우드 기반 서비스 비즈니스를 위한 수익성 분석 및 비즈니스 모델의 변화 (1/3) 코난(김대우) 2012.02.18 76456
308 [동영상 강좌] (18) 트래픽 관리자를 이용한 24x365 글로벌 서비스 구축하기 코난(김대우) 2013.01.09 74696
307 Azure를 한마디로 표현한다면? [2] 코난 2010.06.23 74576
306 Windows Azure & SQL Server 캠프 후기 2부 - (시스템편) [2] jevida(강성욱) 2012.11.16 74211
305 SQLER 커뮤니티의 Windows Azure 캠프 사용기 모음집 코난(김대우) 2013.01.30 73635





XE Login