윈도우 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 : , , , , , , ,

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

윈도우 MBR(Master Boot Record) 복구하기


리눅스와 윈도우 듀얼부팅을 사용하다가 더는 리눅스 시스템을 유지할 필요가 없다고 느꼈다.
개발 편의성 때문에 리눅스를 주로 사용했었는데, 이젠 64bit 버전의 윈도우즈에서 WSL(Windows Subsystem for Linux)을 지원하니 윈도우에서도 개발이 쉬우리라는 생각이 들었기 때문이다.
필요한 몇몇 파일을 백업하고 우선 부트로더를 Grub에서 윈도우 단일 부팅으로 변경하려고 시도했다. 그 첫 번째 방법은 Bootice라는 유틸리티를 이용하는 것이었는데 실패했다.


Bootice로 grub 듀얼부팅을 윈도우 단일 부팅으로 바꿔주기

BOOTICE (https://sites.google.com/site/gbrtools/home/software/bootice-portable/information)

1. BOOTICE 실행
2. Destination Disk에서 Grub 설치된 디스크를 선택 (예: C:)
3. Process MBR 버튼 클릭
4. Windows NT 5.x / 6.x MBR 선택
5. Install / Config 버튼 클릭
6. Windows NT 6.x MBR 버튼 클릭 (windows 10)
7. Close 버튼 클릭

이렇게 짧은 시간에 부트로더를 마음대로 바꿀 수 있다니, 정말 유용한 유틸리티라고 생각했다.
그리고 재부팅을 했는데, 윈도우 10이 아닌 오랜만에 보는 DOS화면이 나를 반겨준다.
C: 프롬프트는 깜빡이는것이 믿기 어려웠던 나는 차분히 재부팅을 시도했다.
그러나 몇 번을 시도해도 내가 원하는 윈도우 화면이 나오지 않았다.
이제 무언가 잘못되었다는 현실을 받아들이고 다른 방법을 찾아야 할 때다.
윈도우가 설치된 컴퓨터 한 대와 16기가 이상의 USB 메모리가 하나 필요하다.


윈도우즈 미디어 만들기 도구로 MBR 복구하기

1. 윈도우 미디어 만들기 도구(https://www.microsoft.com/ko-kr/software-download/windows10)를 다운받아 usb에 설치한다.
2. USB를 이용해 부팅한다.
3. Shift 키 + F10 키를 눌러 명령 프롬프트를 실행한다.
4. diskpart를 실행한다.
5. select disk 0 실행한다.
5-1. list partition 실행하여 부트파티션이 있으면 그 파티션을 선택하고 8번으로 간다. 아니면 6번으로 간다.
6. create partition primary size=100 실행한다.
7. select partition 1 실행한다.(생성한 부트파티션)
8. Format fs=ntfs label="System" quick 실행한다.(파티션 포멧)
9. Active 실행한다.
10. exit 로 diskpart를 종료한다.
11. bootrec /fixmbr 실행한다.
12. bootrec /fixboot 실행한다.
13. bootrec /rebuildbcd 실행한다.

드디어 MBR이 복구되었다.
그러나 이런저런 시도 끝에 파티션이 다 망가진 뒤였기 때문에 윈도우를 다시 설치해야 했다.
DELL 노트북은 복구 프로그램이 잘 되어있다는 것이 그나마 다행스러운 점이었다.(https://www.dell.com/support/article/kr/ko/krdhs1/sln298442/dell-recovery-restore-usb-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%A5%BC-%EC%83%9D%EC%84%B1%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95?lang=ko)
그리고 복구한 윈도우 버전이 7이어서 10으로 업데이트해 줬다.(https://www.microsoft.com/ko-kr/software-download/windows10)

만약 부트로더를 손댈 생각이라면 중요 파일은 우선 백업해두고, 복구 usb를 만들어 둔 뒤에 손대도록 하자.



by


Tags : , , , , , , , , , , ,

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