개발환경 세팅 과정을 블로그에 정리하는 이유
컴퓨터 옮겨다닐때마다 개발환경설치하는 과정을 까먹기도 하고 본업에 전념하다보면 개발공부 뚝딱거릴 여력이 없어 환경설치방법을 까먹었다.
그만큼 생각보다 오래걸리는 과정이라 메모해둔다. 완벽히 까먹더라도 그대로 따라하면 개발환경을 완비할 수 있도록. 지금은 2024년 9월이며 운영체제는 윈도우 11인 상태이다. 예전에 wsl 환경을 구축했다가 지웠었고 다시 개발에 끌려 이번엔 아나콘다를 설치했었는데 주피터노트북을 실행하는 과정에서 뭔가 꼬이고 제대로 되질 않았다.(이젠 원인을 알았다. 윈도우에 아나콘다 설치하고나서 리눅스를 wsl로 설치한 상태에서 vscode에서 방법을 찾다찾다 도저히 해결이 안되어서 wsl도 지우고 아나콘다도 지우고 다시 설치를 하는 과정을 기록해둔다. 중간에 시행착오며 새로 알게된 사실도 많고 때론 허무하게 해결되는 경우도 많았다.
왜 리눅스(WSL활용)를 쓰는가
노마드코더 니콜라스가 운영하는 강좌 홈페이지에 가입하면 무료로 볼 수 있는 개발자를 위한 윈도우 셋업을 다시 보면서 2024년 현재 버전업데이트되고 변동된 것도 반영해가며 내 나름 최적화를 시킬 것이다. 그리고 그걸 글로 남겨놓는다. 왜냐하면 영상으로 듣고 그때그때 따라만 하니까 장기기억으로 넘어가질않아 오랜기간이 지나 개발환경을 컴퓨터에 세팅할때 또 영상을 봐야하는 시간낭비가 생겼기 때문이다.
2024년 9월에 오랜만에 다시 개발환경을 조성했다. 하필이면 노마드코더의 강좌를 바탕으로 결국 리눅스를 윈도우에 불편함을 감수하고 사용하는 세팅을 하는 이유는 간단하다. 장기적으로 개발을 꾸준히 하려면 윈도우에 개발환경을 갖추는 건 한계가 있으며 결국은 리눅스로 가야한다. 왜냐하면 오픈소스이며 무료임에도 업데이트가 상당히 빠르게 되고 비용문제로 인해 전세계 서버들 대부분이 리눅스 기반으로 움직이기 때문이다. 보안에도 유리하기도 하고.
다만 커멘드라인으로 타이핑치는게 어색한 사람들에겐 쉬운 접근은 아니지만 DOS 시절부터 컴퓨터학원 다녔던 짬으로 밀어붙일 수 있는 내겐 시간가는 줄 모르는 장난감일뿐이다.
2024년 9월 기준으로 재구성한 절차이기 때문에 지금 검색 상위에 노출된 예전 문서들과는 결이 다를 것이다. 그 점 참고해서 아래 글을 보면 도움되지 않을까 싶다.
다시 wsl설치하려 하니 설치가 안 됨
윈도우 상에서 리눅스를 사용할 수 있게끔 하는 wsl 프로그램을 설치하고자 명령프롬프트에서 wsl --install 을 실행했더니 안 된다! 지정한 파일을 찾을 수 없다고 한다! 무엇이 문제일까 곰곰히 따져보니 내딴에는 깔끔하게 설치하고 싶어서 몇 년전에 설치해두었던 wsl와 리눅스 등 설치된 걸 지운 것만으로 만족하지 않고 wsl가 들어있는 레지스트리를 전부 다 지웠으며 건드렸고 Everything을 활용해 wsl로 검색해 관련된 것도 샅샅히 찾아 지웠다.
그러고는 다시 설치하고자 각종 옵션들을 찾아 켜는 과정에서 스크롤 휠로 메뉴를 아래로 내리더라도 계속 제자리로 올라가는 이상현상까지 접하게 되었다.(이건 다시 설치해도 생기는 현상인데 다른 방법으로 허무하게 해결했다. 이런 삽질이 어디있나. 휴)
도저히 내 실력으론 이걸 해결하기 힘들 것 같아 윈도우를 다시 설치하는게 최선이라 생각이 들어 그렇게 했다. 포맷하지 않고 레지스트리 등을 복구하는 유일한 방법이라 판단해서 내린 조치였다. 고수라면 다른 방법을 써서 해결했을진 몰라도 돌이킬수없고 시간도 모자라 사용한 방법이다.
그런데 이게 정답이 아니었다.
기존에 있던 WSL 깔끔하게 지운 다음 다시 설치
다시 터미널을 열고 wsl --install을 눌렀는데 또 안되는거다. 지정한 파일을 찾을 수 없다고. 그래서 혹시 우분투를 먼저 설치하면 되지 않을까 발상의 전환을 해서 chocolately에서 wsl를 검색했더니 마침 파일 제목이 Ubuntu 22.04 LTS for WSL 22.4.0.20220819 였다. 어? 뭔가 수상했기에 바로 설치를 했다.
그런데 이것도 정답이 아니었다. wsl를 명령프롬프트(관리자)에서 실행해도 되질 않았다.
우선 WSL 폴더를 다 지운게 아니기 때문에 거기다가 제대로 된 절차를 거치지 않고 지웠기 때문에 남은 폴더와 파일이 있었다. 일반적인 방법으론 도저히 지워지질 않았다. 권한이 없다느니 어디서 쓰고 있다느니...
그래서 안전모드로 재부팅한 다음 C:\programfiles\wsl 폴더에 두 개 남아있던 파일과 함께 폴더를 선택 후 Shift키를 누른 다음 Del키를 눌러 깔끔히 지웠다! 안전모드에 들어가면 최소한의 자원만 쓰기 때문에 저렇게 지우기 힘든 파일도 지울 수 있다고 한다.
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설치를 할때 최적화되어 시간절약될거라 생각이 든다. 그 과정에서 찾는 요령이라던지 문제에 닥쳤을때 해결방법에 접근하는 실력도 늘었다. 더군다나 퍼플렉시티와 챗지피티도 이런 문제에 있어서는 좀더 일반적인 해결책을 제시해서 결국엔 사용자인 내가 여러 방법 중 선택해 시행착오를 직접 겪고 부딪혀야한다는 사실도 알게 되었다.
Ubuntu 최신 버전으로 설치하고 기존 Ubuntu 지우기
그런데 wsl --install을 했을때 설치된 Ubuntu는 많이 예전 버전의 리눅스였다. 따라서 최신버전을 설치하고자 wsl --list --online을 입력해서 살펴보았고 Ubuntu-24.04가 있길래 저걸 다운받기도 맘먹었다.
관리자 권한으로 명령프롬프트 또는 파워셀을 열고 wsl --install Ubuntu-24.04를 입력하면 설치가 진행된다.
이 과정 직전에 chocolately로 Ubuntu를 다운받는 시도를 했었더랬다. 그런데 오류가 났다. 당연한건진 모르겠지만 WSL 자체가 마이크로소프트에서 제작한 것이니 어찌보면 비정식(?)서비스로 설치한 경로를 차단한걸지도 모르겠다. 이건 순전히 내 생각이다. 오류 메시지를 따로 해석하진 않았으니까. 그냥 안되니까 wsl --install (우분투 버전)을 시도했고 이걸로 해결이 되니 더 이상 파고들진 않았다. 아. MS Store에서 우분투를 다운받아도 되긴 했다. 다만 wsl이 된다는 전제 하에 되었다는 점.
WSL가 제대로 작동되는지 여부 확인
소감 또는 결론
윈도우에서 프로그래밍 공부 관련된 프로그램 설치하고 공부해도 되긴하는데 무슨 수고를 이렇게 들이게 되었을까. 처음엔 초보라 이것저것 윈도우에 설치하면서 공부를 진행하지만 조금씩 관심사가 늘면 다른 툴도 접하게 된다. 그러다보면 결국은 리눅스까지 알게 되는 초보 아닌 초보 상태가 된다. 대신 윈도우에 익숙했다보니 각종 오류메시지가 낮설어서 생기는 시행착오를 겪게 된다.
긍정적 럭키비키적 사고를 돌리자면 이 설치과정에서 프로그래밍 언어나 툴이 한글에 그다지 친절한 편은 아니라는 것을 알게 된 건 어찌보면 큰 수확이다. 더불어 일반적인 상황에서는 잘 지워지지 않는 파일도 안전모드로 들어가면 지워질 수도 있다는 사실을 안 것도 팁이 하나 는 셈이니 시간낭비만은 아니다.
AI가 대신 코딩해줄 수 있는 시대라곤 하지만 그 결과물이 제대로 된 건지 검증할 수 있으려면 기본적인 프로그래밍 지식은 필요하다고 생각해서 다시 WSL를 설치해서 하나씩 공부해나가려 한다.
그리고 기록해두지 않으면 다음에 또 같은 시행착오를 겪으며 검색하고 생고생하면서 시간낭비할게 뻔하기때문에 구구절절 기록할 수 있는 걸 다 남겨놓는다.