윈도우 WSL 로 개발 환경 만들기

윈도우 WSL(Windows Subsystem for Linux)로 개발 환경 만들기


하나의 컴퓨터에 OS 두 개를 놓고 쓰는 건 번거로운 일이다.
한국 정부 사이트를 문제없이 사용하려면 윈도우가 필요하고, 개발 편의성은 리눅스가 더 높다.
정부 사이트를 이용할 때마다 재부팅을 해서 윈도우를 사용하는건 귀찮은 일이다.
WSL(Windows Subsystem for Linux)이 발표되고 한참을 눈여겨보다가 새해를 맞아 사용해보기로 했다.
리눅스 파티션을 갈아엎고, 윈도우에서 WSL을 이용해 개발환경을 구축해봤다.
리눅스에서 Wine으로 돌리는 윈도우 애플리케이션보다 안정적인 느낌이다.
watcher가 제대로 동작하지 않는다는 것(https://github.com/Microsoft/WSL/issues/216)은 아쉽지만, OS 두 개를 관리하는 수고스러움에 비할 바는 아니다.
리눅스를 수년간 사용하면서 패키지를 업데이트할 때마다 컴퓨터가 이상해지지는 않을까 노심초사했고, 다음엔 맥으로 바꿔야 하나 고민했다.
그런데 이번에 WSL을 써보니, 윈도우도 좋은 대안이라는 생각이다.
대한민국 정부 사이트 접속도 원활하고, WSL 개발 환경도 만족스럽다.
십 년 넘게 멀리했던 윈도우와 좀 친해져 봐야겠다.


WSL 설치 및 설정

Turn Windows features on or off에서 Windows Subsystem for Linux 선택 설치

Microsoft Store에서 Linux로 검색해서 마음에 드는 리눅스 찾아 설치 (debian)

wsl 베터리 설정

Settings > Update & Security > Windows Defender > Open Windows Defender Secutiry Central > Protection Against Viruses & Threats > Advanced Config… > Exclusions > Add or Remove > Add > Folder에 리눅스 시스템 루트 추가

Group Policy Management Editor > Computer configuration > Windows components > Windows Defender Antivirus > Real-time protection >

Turn off real-time protection Enabled로 변경

참고 - https://medium.com/@leandrw/speeding-up-wsl-i-o-up-than-5x-fast-saving-a-lot-of-battery-life-cpu-usage-c3537dd03c74


debian 설정

WSL 루트 - C:\Users\dorajistyle\AppData\Local\Packages\TheDebianProject.DebianGNULinux_버전\LocalState\rootfs

유저이름과 비밀번호 설정

데비안 버전 알아보기 - cat /etc/issue

데비안 버전 알아보기 - cat /etc/os-release os version

필요 패키지 설치

sudo apt install build-essential patch git-core curl unzip pkg-config libvips-dev apt-transport-https ca-certificates psmisc ack ncdu python python-pip

yarn 설치

sudo apt purge cmdtest (yarn 설치 위해)

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

echo “deb https://dl.yarnpkg.com/debian/ stable main” | sudo nano /etc/apt/sources.list.d/yarn.list

sudo apt-get update && sudo apt-get install yarn


참고 - https://yarnpkg.com/lang/en/docs/install/#debian-stable

installation Problem: Unexpected token { in cli.js 문제 발생 시 - https://github.com/yarnpkg/yarn/issues/6914

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

apt-get install -y nodejs

postgres 설치 (https://www.postgresql.org/download/linux/debian/)

  • sudo nano /etc/apt/sources.list.d/pgdg.list 에 deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main 추가
  • wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  • sudo apt-get update

    sudo passwd postgres

    sudo service postgresql start

    sudo -u postgres psql

    ALTER USER postgres PASSWORD ‘my_postgres_password’;


    Peer authentication failed for user “postgres” 오류시
    /etc/postgresql/10/main/pg_hba.conf 파일에서 local all postgres peer 을 local all postgres md5로 바꿔 저장하고 sudo service postgresql restart로 재시작

nvm 설치

https://yoember.com/nodejs/the-best-way-to-install-node-js

zsh 설치

  • sudo apt-get install zsh
    sudo chsh -s `which zsh`
zsh-nvm 설치

https://github.com/lukechilds/zsh-nvm

watchman 설치

sudo apt-get install -y autoconf automake build-essential python-dev libtool m4 pkg-config libssl-dev libcrypto+±dev

git clone https://github.com/facebook/watchman.git

cd watchman

git checkout v4.9.0 # the latest stable release

./autogen.sh

./configure

make

sudo make install

$ echo 999999 | sudo tee -a /proc/sys/fs/inotify/max_user_watches && echo 999999 | sudo tee -a /proc/sys/fs/inotify/max_queued_events && echo 999999 | sudo tee -a /proc/sys/fs/inotify/max_user_instances && watchman shutdown-server


참고 - https://facebook.github.io/watchman/docs/install.html

pip 패키지 설치

sudo pip install awscli awsebcli


윈도우 유틸리티 설치

hyper 터미널 설정

shell: ‘C:\Windows\System32\wsl.exe’, //shell을 wsl로

shellArgs: [], //비운다.

plugins: [

“hyper-dracula”,

“hyper-search” // CTRL + SHIFT + F로 찾는다.

],


vscode 설정

  • Terminal > External: Windows Exec와 Terminal > integrated > Shell:Windows에 C:\WINDOWS\System32\wsl.exe 를 넣는다.
  • Terminal > integrated: Cwd에 wsl 홈 디렉토리 경로를 넣는다.
  • Ctrl + `를 누르면 터미널이 wsl로 잘 뜬다.

vscode extension

  • setting sync
  • annotator
  • auto rename tag
  • babel es6/es7
  • debugger for chrome
  • dracula Official
  • embrace
  • EsLint
  • File Utils
  • Go
  • MDTools
  • Partial Diff
  • Pomodoro Timer
  • Preview
  • Project Manager
  • Trailing Spaces
  • Vetur
  • vscode-icons

기타 윈도우 설정

  • 필요한 프로그램은 단축키 등록하고, 시작 메뉴나 데스크탑에 넣어둬야 단축키가 작동한다.
  • snap 설정을 통해 창을 관리한다.

기타 WSL 참고자료

https://github.com/sirredbeard/Awesome-WSL/blob/master/README.md



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.