I. Introduction

git을 제대로 사용하고 시작하고 나서는 어떤 branch로 사용하고 있는지, 버전은 어떻고 경로는 어디인지 쉽게 확인하기 위하여 bash에서 zsh 환경으로 바꾸고 사용하고 있습니다. WSL에서도 사용 가능한 것을 확인하고 잘 사용하고 있습니다. 물론 우분투에서 쓸 때 만큼 창이 깔끔하게 나오는 것 같지는 않아서 agnoster로는 설정을 하지 않았습니다. (그래픽 관련된 것만 띄우지 못하지 터미널 관련된 문자로 나타내는 것들은 모두 사용 가능한 것 같습니다. 하지만 초기 설정이 잘못이 되어서 그런지 다음과 같은 글들이 나오고 나서 커맨드 창이 나오게 됩니다.

초기 시작 문구들

사실 쓰는데 별 지장은 없지만, 계속 뜨다보니까 지저분하기도 하고 신경이 계속 쓰이게 되는 것 같습니다. 때문에 이 문제를 수정해보았습니다.

II. 해결책

cd
pwd

먼저 가장 상위 폴더로 가기 위해서 cd만 터미널에 입력을 해줍니다. 그 이후에는 pwd를 눌러서 주소를 확인해주는데 

/home/[사용자 이름]

이 나오게 되면 괜찮습니다.

 

그 다음에는 

vim .zshrc

를 입력을 해줍니다. vim editor를 사용하여 설정을 조금 바꿔줄겁니다.

참고로 오늘 쓸 단축키는 i(삽입), esc(상황 종료? 비스무리합니다.), :wq(저장 및 editor 종료입니다.)

 

위 버튼을 누르면 밑과 같은 창이 뜨게됩니다.

 

 

zsh 설정 창

이 창에서는 여러 zsh 테마와 같은 설정을 바꿔줄 수가 있습니다.  저희는 먼저 j를 눌러서 두번째 줄로 이동한 다음 i를 눌러서 삽입 모드로 전환하도록 하겠습니다. 그 다음에는 다음과 같은 글을 쳐주시면 됩니다.

 

ZSH_DISABLE_COMPFIX = TRUE

 

그 이후에는 :wq를 입력하여서 editor를 종료해주시면 됩니다.

이후에 WSL Terminal을 켜주게 된다면 이전과 같은 글들이 뜨지 않는 것을 확인 할 수 있습니다.

 

문제 해결

 

'개발 환경 설정 > WSL 환경 설정' 카테고리의 다른 글

WSL2 변환 및 세팅  (0) 2020.07.21
WSL에서의 Jupyter notebook 사용하기.  (0) 2020.05.15

I. Introduction

 

드디어, WSL2 업데이트를 할 수 있는 Windows10 2004 버전이 출시가 되었습니다. (블로그에 떡밥푼지 3개월만에..) 사실, MS사는 Window10의 업데이트 버전을 3월과 9월에 각각 출시를 하고 있습니다. 하지만 여러 가지 회사 사정과 전대미문한 판데믹 사태 때문에 출시가 조금 늦어진 것 같아요. 공식 출시일은 5월 진짜 말이었던 것으로 기억합니다.

하지만, 출시하고도 몇몇 기기들의 경우 호환성 문제 때문에 업데이트가 되지 않았는데 최근에서야 저의 노트북의 호환성에 맞는 업데이트가 갖추어지게 되어서 바로, WSL2로 갈아타게 되었습니다.

 

II. 과정

먼저 본인의 컴퓨터의 Window10이 2004 버전, 빌드는 19041과 같거나 높은지 확인해주세요

 

설정 - 시스템 - 정보 - 윈도우 사양에 가서 확인할 수가 있습니다.

Windows 사양 확인

 

(WSL 설치가 되어 있지 않은 분들은 WSL 설치를 먼저 오고 와주세요, VS Code 이전까지 설정해주시면 됩니다.)

https://ksjm0720.tistory.com/2

 

WSL 개발 환경 설정(1) - 초기 설정

그냥 리눅스 컴퓨터 쓰세요. 안녕하세요. 오늘은 Windows에서도 리눅스 컴퓨터를 사용할 수 있도록 하는 WSL (Windows Subsystem for Linux)환경 설정을 시작해보도록 하겠습니다. 아마 WSL을 사용하려는 이�

ksjm0720.tistory.com

 

WSL2 전환의 경우 매우 간편하고 많이 걸리지 않습니다.

 

먼저, Powershell을 열고 나서 관리자 권한으로 실행을 누르시길 바랍니다.

그 다음에 명령어를 입력해주세요

 

 Powershell

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

 

powershell CrossPlatForm으로서의 전환

 

 

이후에 컴퓨터를 재시작해주시길 바랍니다.

 

그 다음엔 만약 아직 어떤 리눅스 배포판을 쓸지 생각 안하신 분은

 

wsl --set-default-version 2

 

이미 설치를 하신 분은 설치 한 버전의 것을 다음과 같이 넣어주시면 됩니다.

 

wsl --set-version [설치한 리눅스 배포판] 2

 

저의 경우에는 Ubuntu20.04를 사용했기 때문에 다음과 같이 넣어주게 되었습니다.

 

wsl 2단계 업데이트 명령어 및 업데이트 중

그 이후엔 버전 체크 명령어인

 

wsl -l -v

 

를 통해 확인해 줄 수가 있습니다.

 

WSL 업데이트 전 버전
WSL업데이트 후 버전 확인

다음과 같이 변한 것을 확인 할 수가 있네요.

 

III. 그래서 뭐가 좋은데?

a. 속도

MS사 공식 소개 영상에 보면 이전보다 속도가 어마어마하게 빨라졌다고 자랑은 합니다만.. 엄청 크게 체감은 안되는 것 같습니다. 하지만, 단순히 sudo apt-get update나 upgrade 명령어를 넣고 기다릴 때 짧게 기다렸습니다. 그리고 기존의 WSL의 경우에는 터미널에서 가끔 신호가 끊기는 현상이 있었는데, (특히 패키지 다운로드 할거나 작업 복잡한거 돌릴때) WSL2의 경우에는 조금 그 부분이 개선된 것 같습니다.

b. Windows Terminal에 추가

Windows Terminal 기존의 옵션

 

WSL2 업그레이드 이후의 Windows Terminal 옵션

이전에는 잘 쓰지 않았던 Windows Terminal이라는 어플리케이션에서 추가할 수 있는 기능이 생긴 것 같습니다. 사실 오른쪽 클릭 이후에 Linux를 열면 되는거라 그렇게 신경은 안 쓰고 있었는데, 브라우저의 탭 기능처럼 여러 Linux terminal 창을 띄워서 쓸 수 있는 점은 정말 매력적으로 다가오는 것 같습니다.

Windows Terminal에서의 WSL 실행

 

c. 몇몇 오류 해결

Subsystem의 한계에 의해서 기존의 WSL Ubuntu 20.04의 경우에는 여러 문제들이 많았습니다. Github와 Stackoverflow에서 해결책을 찾아보려고 하더라도 돌아오는 답변은 시스템의 불안정과 지원문제 때문에 Ubuntu를 다운그레이드 하라는 이야기가 많았습니다. 하지만 WSL2로 넘어오면서 몇몇 문제들이 해결되는 것을 확인하였습니다.

I. Jupyter Notebook


Jupyter Notebook은 웹 브라우저 기반으로 돌아가는 대화 형식의 Python 관련 프로그램들 중 하나입니다. Python도 Script 형식이긴 하지만 프로그램을 실행하면, 입력이 나올 때까지는 계속 쉬지 않고 돌아가서 뭐가 문제인지 모르는 경우도 생기고, 저와 같은 초보자들의 경우에는 단계별로 코딩을 해야하는데 한 번에 프로그램을 돌아가게하면 이해가 안되는 경우가 많습니다. 하지만, Jupyter Notebook의 경우에는 코드를 조각 조각내서 돌리면서 중간에 어떤 식으로 프로그램이 돌아가는지를 확인할 수 있고, 중간에 잘못 되더라도 원하는 블록부터 다시 프로그램을 돌림으로써 쉽게 코딩도 배우고 오류점도 찾아 낼 수 있습니다. (그냥 구글드라이브의 코랩 쓰세요) 데이터 과학에서 자주 쓰이게 되는데, 그림 출력 부분도 좋고, 수정점을 찾아서 고칠 수가 있으며, R에 대해서도 지원되니 많이 쓰이는 이유를 알 것 같습니다.

 

II. 1차적인 WSL에서의 설치

 

Jupyter notebook의 경우에는 대중적으로 많이 쓰이고 있기 때문에 그냥 Linux나 Window에서 설치할 경우에는 쉽게 설치하여 바로 사용할 수가 있습니다.

 

pip install jupyter notebook

 

혹은

 

python3 -m pip install jupyter notebook

 

으로 설치가 가능합니다.

 

이후에는 실행은 

 

python3 -m jupyter notebook

 

이라는 형식으로 돌리게 되는데요. Window와 Linux 사이 어딘가에 있는 WSL의 경우에도 이렇게 하면 설치가 됩니다. 다만 Linux Terminal에서 돌리게 될 경우에는 수많은 오류를 뿜어내며 검은색 화면만 보이게 됩니다. 이 부분은 너무 빨리 지나가게 되어서 Visual Studio Code를 활용하여, 오류를 캡쳐하게 되었습니다.

 

영어로 설정되어있는데, 한글로 오류가 나오는 위엄

III. 무엇이 문제인가?

 

실제로 명령어를 통하여 jupyter notebook의 경로나 버전을 확인하게 되면은 문제없이 설치가 잘 되었다고 나옵니다. 그럼에도 불구하고 실행이 안되는 점이 있는데, 그 이유는 바로 저번 시간 VS code를 WSL에서 바로 실행하면 안되는 이유와 같은 GUI 문제입니다. WSL의 경우에는 GUI가 지원되지 않고  윈도우에 있는 GUI 환경을 활용하여 간접적으로 그 정보를 받아와서 보는 형식입니다. 그래서 VS code를 WSL에 바로 설치를 해서 프로그램을 실행하면 GUI 문제 때문에 실행이 안되는 것이죠. 하지만 Jupyter notebook을 설치했을 시에는 기본적인 옵션을 모두 달고 나오기 때문에 우리가 일반적으로 Linux나 Window에서 하던 것 처럼 바로 Jupyter notebook이 기본 Browser를 통해 실행이 되려 하고, 이 때 실행된 Browser가 문제를 일으키면서 수많은 오류를 뿜뿜하게 됩니다.

WSL2에서는 GUI가 지원된다는 이야기가 있습니다. 따라서 WSL를 우리가 생각하는 운영체제처럼 돌릴 수 있을 것 같은데... 5월 말에 나온다고 합니다. (4월에서 연기)

 

IV. 어떻게 해결하는가?

 

python3 -m jupyter notebook --no-browser

 

이렇게 터미널에 명령어를 넣게 되면, 바로 실행이 되지않고, 이 jupyter notebook이 실행되고 있는 서버의 주소가 열리게 됩니다. 서버의 주소를 그대로 크롬이나 파이어폭스와 같은 브라우저 주소창에 넣으면 완성이 됩니다.

 

하지만 이러한 --no-browser를 jupyter notebook을 실행할 때마다 타이핑하기 귀찮은 부분도 있습니다. 때문에 WSL에서 바로 jupyter notebook이 열리지 않도록 설정해놓는 방법도 있습니다.

 

jupyter notebook --generate-config

 

라고 입력을 하면 wsl 기준 최상단 경로에 /.jupyter/jupyter_notebook_config.py라는 파일이 생성이 됩니다.

 

이것을 vim이나 nano 에디터로 열어주도록 하겠습니다.

 

vim /.jupyter/jupyter_notebook_config.py

 

그러면 수많은 #으로 이루어진 참조 상태로 처리된 코드들이 나오게 되는데 저희는 브라우저 부분을 찾아보도록하겠습니다.

vim의 경우에는 /를 누르고 browser를 입력하시면 됩니다.

많은 부분이 뜰건데 저희는

c.NotebookApp.open_browser라는 단어를 찾을 것입니다.

 

수정해야할 부분

원래는 #c.NotebookApp.open_browser=True 라는 부분으로만 되어있지만 #을 제거해준다음, True를 False로 바꾸게 되면 다음부터 jupyter notebook 실행시에 자동으로 Browser에서 연결이 되지 않습니다.

 

V. 추가적으로

가끔 Jupyter notebook을 실행시켜도 무한로딩이 브라우저창에서 뜰뿐 실행이 요원한 경우가 많이 보입니다. 이 경우에는 별 생각없이 jupyter notebook을 껐다가 다시 켜는 경우에 할당되는 서버의 주소가 겹쳐져 버려서 연결이 안되는 경우가 많습니다.

보통 로컬 서버를 8888 기준으로 하니 8889 8890 등으로 다음과 같이 바꿔서 실행을 해주시면 됩니다.

(서버를 끄는 방법도 있지만, 이게 조금 더 빨라서 애용하고 있는 중입니다.)

 

python3 -m jupyter notebook --port=8889

 

그러면 새로운 서버에 jupyter notebook이 실행이 되면서 다시 웹 브라우저를 통해서 접속할 수가 있습니다.

+ Recent posts