윈도우 WSL로 리눅스 개발환경 세팅 2024년 9월 시점

개발환경 세팅 과정을 블로그에 정리하는 이유

컴퓨터 옮겨다닐때마다 개발환경설치하는 과정을 까먹기도 하고 본업에 전념하다보면 개발공부 뚝딱거릴 여력이 없어 환경설치방법을 까먹었다. 

그만큼 생각보다 오래걸리는 과정이라 메모해둔다. 완벽히 까먹더라도 그대로 따라하면 개발환경을 완비할 수 있도록. 지금은 2024년 9월이며 운영체제는 윈도우 11인 상태이다. 예전에 wsl 환경을 구축했다가 지웠었고 다시 개발에 끌려 이번엔 아나콘다를 설치했었는데 주피터노트북을 실행하는 과정에서 뭔가 꼬이고 제대로 되질 않았다.(이젠 원인을 알았다. 윈도우에 아나콘다 설치하고나서 리눅스를 wsl로 설치한 상태에서 vscode에서  방법을 찾다찾다 도저히 해결이 안되어서 wsl도 지우고 아나콘다도 지우고 다시 설치를 하는 과정을 기록해둔다. 중간에 시행착오며 새로 알게된 사실도 많고 때론 허무하게 해결되는 경우도 많았다. 

왜 리눅스가 불편한데도 억지로 쓰는가

노마드코더 니콜라스가 운영하는 강좌 홈페이지에 가입하면 무료로 볼 수 있는 개발자를 위한 윈도우 셋업을 다시 보면서 2024년 현재 버전업데이트되고 변동된 것도 반영해가며 내 나름 최적화를 시킬 것이다. 그리고 그걸 글로 남겨놓는다. 왜냐하면 영상으로 듣고 그때그때 따라만 하니까 장기기억으로 넘어가질않아 오랜기간이 지나 개발환경을 컴퓨터에 세팅할때 또 영상을 봐야하는 시간낭비가 생겼기 때문이다.

2024년 9월에 오랜만에 다시 개발환경을 조성했다. 하필이면 노마드코더의 강좌를 바탕으로 결국 리눅스를 윈도우에 불편함을 감수하고 사용하는 세팅을 하는 이유는 간단하다. 장기적으로 개발을 꾸준히 하려면 윈도우에 개발환경을 갖추는 건 한계가 있으며 결국은 리눅스로 가야한다. 왜냐하면 오픈소스이며 무료임에도 업데이트가 상당히 빠르게 되고 비용문제로 인해 전세계 서버들 대부분이 리눅스 기반으로 움직이기 때문이다. 보안에도 유리하기도 하고.

다만 커멘드라인으로 타이핑치는게 어색한 사람들에겐 쉬운 접근은 아니지만 DOS 시절부터 컴퓨터학원 다녔던 짬으로 밀어붙일 수 있는 내겐 시간가는 줄 모르는 장난감일뿐이다.

지금부터는 개발환경설정 절차이다. 참고로 2024년 9월 기준으로 재구성한 절차이기 때문에 시간이 지날수록 버전도 업데이트 될 것이고 뭔가 안 맞는 구석이 있을 것이다. 그럴땐 구글검색이나 퍼플렉시티 검색으로 보완해나가면 특별한 일 없으면 해결될 것이다. 이 포스팅도 그에 걸맞게 업데이트할 예정이다.

WSL 리눅스 개발환경 세팅 과정

1. chocolatey 활용하기

노마드코더가 윈도우에서 CLI기반으로 프로그램 설비하는걸 보여준다고 안내한 거라 생략해도 된다

윈도우에서 커멘드라인 즉 powershell(관리자권한) 실행 후 나오는 프롬프트에 문자 명령어를 키보드에 입력 후 엔터 쳐서 윈도우 상에 우리가 기존에 알고 있는 프로그램들(크롬, 압축프로그램 등)설치하는 방법이다. 엑셀만 해도 자주 쓰고 능숙해지면 단축키가 편해지듯 개발환경에서 CLI 즉 커맨드라인으로 각종 명령을 실행해서 프로그램을 설치하는 것이 생산성에 오히려 좋은 경우가 많다.

윈도우키를 누른 다음 powershell을 검색해보자. 그런 다음 관리자로 실행을 누른다음 아래 명령어를 입력하고 엔터를 친다.


  Set-ExecutionPolicy Bypass -Scope Process -Force;
  [System.Net.ServicePointManager]::SecurityProtocol =
  [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object
  System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))


그러면 설치가 되는데 다시 chocolately.org홈페이지 가운데 아래에 아주 작은 글씨로 packages가 눈에 띈다. 클릭해서 들어가면 프로그램들을 powershell에서 다운로드 설치를 할 수 있는 명령어가 있다. 커맨드 창에서 설치가 완료되는 어찌보면 구식이고 한편으로는 뒷끝없이 깔끔한 방식을 경험하게 된다. 

여기서 git을 검색해서 설치를 시작한다. chocolately를 활용한 설치방법은 명령 프롬프트나 powershell에서 아래 명령어를 입력하고 엔터치면 된다.

choco install git

git은 파일 버전관리 시스템인데 github아이디가 있다면 다른 사람들과 협업이 가능하다. git은 아마추어 비전공자이면서 혼자서 학습용으로 프로그램을 다룬다면 반드시 다루지 않아도 된다. 하지만 개발직군 취업 또는 협업을 하는 사람들에겐 필수교양이자 기본기이니 설치 후 익숙해지도록 연습을 해둬야 한다. 
아. 참고로 크롬이나 vscode도 아예 처음부터 choco를 활용해서 설치해도 된다. 본인이 프로그래밍을 취미로든 직업으로든 아니면 흥미를 갖고 있다면 애초부터 명령프롬프트나 powershell에서 커맨드라인에 명령어를 입력해서 설치하는데 익숙해지면 장기적으로 봤을때 생산성에서 유리하지 않을까 생각한다. 마우스를 상당히 덜쓰게 되니까

2. Visual Studio Code 설치

VS Code 즉 비주얼 스튜디오 코드를 설치한다. 플러그인 확장팩으로 거의 만능에 가까운 텍스트 에디터이자 개발도구이다. 구글에서 검색해서 다운받아 설치도 가능하지만 chocolately를 활용해도 설치가능하다. 그런 다음 확장팩으로 python, prettier-code formatter, eslint, material theme, material icon을 골라 인스톨한다. 나중에 WSL 상에서 VS Code를 사용할때 다시 또 설치하게 된다. 그땐 간편하게 설치할 수 있는데 지금 해둔 과정을 거치기 때문이다.

3. Google Chrome 설치

기본브라우저가 Chrome이 되도록 설치가 되어있지않다면 chocolately에서 깐다. 워낙 프로그래밍에 자주 사용되는 웹브라우저가 크롬이라서 설치한다고 한다.

4. window terminal 설치하기

choco로 window terminal (이하 터미널)을 설치한다. 터미널이 다른 커맨터 프롬프트 프로그램과 다른 점은 매력적인 것은 프롬프트를 커스터마이징해서 간지나고 이쁜 디자인으로 편집가능 하다는 것이다. 때론 코딩하는 과정이 힘들때가 있는데 도구나 장비가 멋지면 그래도 미워도 다시 한 번 보게 되는 심리가 있어 생각보다 중요한 터미널이라 생각된다. 지금은 설치를 우선하고 꾸미는 것은 추후 따로 포스팅하려 한다.


5. wsl설치가 안된다!?

윈도우 상에서 리눅스를 사용할 수 있게끔 하는 wsl 프로그램을 설치하고자 관리자권한으로 명령프롬프트를 열고 wsl --install 을 실행했더니 안 된다! 지정한 파일을 찾을 수 없다고 한다! 무엇이 문제일까 곰곰히 따져보니 내딴에는 깔끔하게 설치하고 싶어서 몇 년전에 설치해두었던 wsl와 리눅스 등 설치된 걸 지운 것만으로 만족하지 않고 wsl가 들어있는 레지스트리를 전부 다 지웠으며 건드렸고 Everything을 활용해 wsl로 검색해 관련된 것도 샅샅히 찾아 지웠다.
그러고는 다시 설치하고자 각종 옵션들을 찾아 켜는 과정에서 스크롤 휠로 메뉴를 아래로 내리더라도 계속 제자리로 올라가는 이상현상까지 접하게 되었다.(이건 다시 설치해도 생기는 현상인데 다른 방법으로 허무하게 해결했다. 이런 삽질이 어디있나. 휴)
도저히 내 실력으론 이걸 해결하기 힘들 것 같아 윈도우를 다시 설치하는게 최선이라 생각이 들어 그리 했다. 포맷하지 않고 레지스트리 등을 복수하는 유일한 방법이라 판단해서 내린 조치였다. 고수라면 다른 방법을 써서 해결했을진 몰라도 돌이킬수없고 시간도 모자라 사용한 방법이다.
그런데 이게 정답이 아니었다.

6. 기존에 있던 WSL 깔끔하게 지운 다음 다시 설치

마이크로소프트가 상당히 여우같은 기업이다. 무슨 얘기인고 하니 자신들의 힘을 키우기 위해 때론 무료로 사용할 수 있는 툴들도 꽤 많이 공개하는 편이다. 특히 개발관련되어서 리눅스를 쓰는 개발자들이 워낙 많다보니 윈도우에서도 리눅스를 사용할 수 있게끔 WSL

(Windows Subsystem for Linux)을 무료로 제공하고 있다. 무료라고 완성도가 낮질 않고 계속 꾸준히 기능을 업그레이드 중이다. 노마드코더의 강좌를 듣고 설치하던때보다 지금 2024년 9월 시점에선 wsl2까지 설치되도록 편의성도 증가되었다.

다시 내 개발환경 구축과정에 들어와서 다시 터미널을 열고(관리자권한으로 열기 필수!) wsl --install을 눌렀는데 또 안되는거다. 지정한 파일을 찾을 수 없다고. 그래서 혹시 우분투를 먼저 설치하면 되지 않을까 발상의 전환을 해서 chocolately에서 wsl를 검색했더니 마침 파일 제목이 Ubuntu 22.04 LTS for WSL 22.4.0.20220819 였다. 어? 뭔가 수상했기에 바로 설치를 했다.

그런데 이것도 정답이 아니었다. wsl를 명령프롬프트(관리자)에서 실행해도 되질 않았다.

우선 WSL 폴더를 다 지운게 아니기 때문에 거기다가 제대로 된 절차를 거치지 않고 지웠기 때문에 남은 폴더와 파일이 있었다. 일반적인 방법으론 도저히 지워지질 않았다. 권한이 없다느니 어디서 쓰고 있다느니...

그래서 안전모드로 재부팅한 다음 C:\programfiles\wsl 폴더에 두 개 남아있던 파일과 함께 폴더를 선택 후 Shift키를 누른 다음 Del키를 눌러 깔끔히 지웠다!

7. wsl를 재설치하기

제어판-프로그램 및 기능-window 기능 켜기/끄기에 들어간 다음 linux용 window 하위시스템에 체크가 되어있다면 체크를 풀고 재부팅한다.
다시 켜진 윈도우에 다시 위 경로 제어판 - 프로그램 기능 - window 기능 켜기/끄기에 들어가 다시 linux용 window 하위시스템 체크를 하고 다시 재부팅을 해야한다.

그런 다음 혹시 몰라 wsi-update.x64.msi를 설치해도 wsl명령어가 명령프롬프트(관리자)에서 안먹혔다.

이제는 될거란 확신이 있어서 Everything을 통해 wsl을 검색했더니 wslinstaller가 있었다!! 당장 더블클릭하니 설치가 스르륵 되었고 Everything 화면에서 C:\program files\wsl 폴더와 파일들이 실시간으로 생성되는게 관찰되었다.

wsl를 명령프롬프트(관리자)에서 실행하니 지정한 파일을 찾을 수 없다는 말은 더이상 나오질 않았고 linux용 windows 하위 시스템에는 설치된 배포판이 없습니다 라는 긍정적인 문구가 나왔다!!

당장 wsl --install을 입력하고 엔터를 쳤더니 Ubuntu가 설치되었다!!!!

휴!해결하는데 이렇게 시간이 걸리다니. 지금까지 시행착오를 겪은 걸 다 적어놨으니 다음에 다른 곳에 wsl설치를 할때 최적화되어 시간절약될거라 생각이 든다. 그 과정에서 찾는 요령이라던지 문제에 닥쳤을때 해결방법에 접근하는 실력도 늘었다. 더군다나 퍼플렉시티와 챗지피티도 이런 문제에 있어서는 좀더 일반적인 해결책을 제시해서 결국엔 사용자인 내가 여러 방법 중 선택해 시행착오를 직접 겪고 부딪혀야한다는 사실도 알게 되었다.

8. Ubuntu 최신 버전으로 설치하고 기존 Ubuntu 지우기

그런데 wsl --install을 했을때 설치된 Ubuntu는 많이 예전 버전의 리눅스였다. 따라서 최신버전을 설치하고자 wsl --list --online을 입력해서 살펴보았고 Ubuntu-24.04가 있길래 저걸 다운받기도 맘먹었다.

관리자 권한으로 명령프롬프트 또는 파워셀을 열고 wsl --install Ubuntu-24.04를 입력하면 설치가 진행된다. 

이 과정 직전에 chocolately로 Ubuntu를 다운받는 시도를 했었더랬다. 그런데 오류가 났다. (2024년10월16일추가 이래서 초코라테이를 쓰는걸 가급적 안 하기로 했다) 당연한건진 모르겠지만 WSL 자체가 마이크로소프트에서 제작한 것이니 어찌보면 비정식(?)서비스로 설치한 경로를 차단한걸지도 모르겠다. 이건 순전히 내 생각이다. 오류 메시지를 따로 해석하진 않았으니까. 그냥 안되니까 wsl --install (우분투 버전)을 시도했고 이걸로 해결이 되니 더 이상 파고들진 않았다. 아. MS Store에서 우분투를 다운받아도 되긴 했다. 다만 wsl이 된다는 전제하에 되었다는 점.

9. VS code로 WSL 코딩

비주얼스튜디오 코드 실행 후 WSL 플러그인을 설치하면 리눅스 기능으로 코딩이 가능해진다. 왼쪽 아래 또는 상단에 Ubuntu 버전이 나오니 확인될 것이다. 원리는 자세히는 알지 못 하겠는데 윈도우에 설치된 Visual Studio Code가 리눅스를 원격조종(?)하면서 zsh 셸도 사용하려면 WSL을 통해서 해야하는데 그 역할을 해주는 플러그인이 아닌가 추측해본다. WSL 확장 플러그인을 2년 전에 설치했을 때 이름은 Remote - WSL 이었던 게 추측을 뒷받침한다.


10. 터미널에 리눅스 셸 나오게 하기

터미널 창 탭있는 곳 상단 오른쪽 ^를 뒤집은 모양을 누른 뒤 톱니바퀴를 누르면 설정이 나온다. 여기서 우리가 원하는 우분투나 zsh를 나오게 하려면 왼쪽에 프로필 아래에 있는 우분투를 클릭한 다음 드롭다운에서 프로필 숨기기를 끔으로 바꿔야 한다. 처음엔 숨겨져있다!!
만약 아예 안보인다? 새 프로필 추가를 누른 다음 프로필 복제를 하고 이름을 바꿔주면 된다.

결론 및 정리

이 정도 과정까지 거쳤으면 윈도우에서 리눅스 기반으로 프로그래밍할 수 있는 아주 기본적인 환경은 조성되었다고 보면 된다. 물론 아직 다 끝난 건 아니고 Anaconda를 설치한다던지, VScode를 커스터마이징한다던지, 터미널 셀 모양을 좀 이쁘게 꾸민다던지 하는 게 남아있긴하다. 

하지만 이 과정까지 정리해두지 않으면 다음에 또 시행착오를 겪고 검색하고 다시 튜토리얼처럼 하다보면 시간낭비가 이만저만 아니다 싶어 여기에 한 번에 글을 정리해둔다.

정리

1. 윈도우에 설치(굳이 chocoratey를 이용안해도 된다)
특히 Ubuntu를 chocoratey로 설치하니 오류가 떴다 나같은 경우는
- Visual Studio Code
- Chrome Browser
- Terminal 

2. 리눅스 설치하기 우분투 Ubuntu 최신버전
관리자권한으로 실행된 명령프롬프트 또는 터미널에서 wsl --list --online으로 확인 후 Ubuntu 최신버전 설치
예) 터미널 셀에서 wsl --install -d Ubuntu-24.04 입력 후 엔터
다음 이전