본문 바로가기

TIL

[TIL-52~54] 노마드코더 "개발자를 위한 윈도우 셋업" #0~#2

#0 인트로

준비물

  • 윈도우 10, 2004 업데이트 필요.
  • 소프트웨어 : 크롬 & VSC & 깃

 

#1 셋업

  • VSC 커스터마이징
    • 익스텐션 : Python, ESLint, prettier, material theme, material icon theme
      • 파이썬은 따로 설치하고 나서 익스텐션 설치 가능. 지금 당장은 보류.
  • 윈도우와 리눅스
    • 윈도우에 리눅스 서브시스템(WSL) 설치하면 리눅스 콘솔 사용 가능.
      • 윈도우에 파이썬 설치돼있지 않음. 리눅스 없이도 쉽게 프로그램 설치하는 법!
      • WSL 사용법 배우는 게 강의 목표.
    • chocoatey: 윈도우에 뭔가를 설치하는 게 쉽게 도와줌.
      • 설치 : https://chocolatey.org/install 에서 설치 명령 복사
        • powershell을 관리자 권한으로 실행해서 붙여넣기 + 엔터
        • 창 닫고 다시 powershell 열어서 choco 쓰면 작동함.
      • 사용법 : 사이트 메인 화면에서 find packages
        • adobe acrobat reader, flash player, chrome, java, firefox 등을 각 사이트에 들어가지 않고 콘솔로 설치 가능.
        • powershell에서 choco 열고 설치하고 싶은 소프트웨어의 명령어 복사해서 붙여넣기
          • WinRAR 설치 : "choco install winrar" 붙여넣고 엔터. 
          • 파이썬도 이렇게 설치. "choco install python3"
        • 동의하냐고 물어보면 대답해줘야 함. 전체 동의는 A 입력.
      • 장점 : 설치 후 프로그램이 작동하는지 콘솔창에서 바로 확인 가능.
        • 예) powershell에 "python" 입력
        • 초코로 설치하지 않으면 가끔 콘솔에서 뜨지 않는 경우 있음.

 

  • powershell 대신 윈도우 터미널
    • 터미널 화면을 커스텀할 수 있음.
    • 설치 : ms store뿐 아니라 choco에서도 가능.
    • powershell처럼 커맨드 사용 가능.
    • vsc에 파일 열기
      • 데스크탑으로 이동 : cd desktop 
      • hello.js 파일 열기 : code hello.js

 

  • WSL
    • 터미널 종류 : 탭 보면 powershell, 기본 명령 프롬프트 등 있음.
    • WSL 추가하기
      • enable wsl2 검색해서 설치하는 명령어 복사
    • ubuntu 설치
      • ms store에서 검색 후 다운
      • wsl은 리눅스 계열 os 설치하게 해줌. ubuntu 편함.
      • 설치 후 재부팅하기
      • [에러] WslRegisterDistribution failed with error: 0x80370102
        • 터미널에 msinfo32.exe -> hyper v 확인 https://stackoverflow.com/questions/62340566/error-when-running-an-installed-wsl-platform-wslregisterdistribution-failed-wit
          • 펌웨어에 가상화 사용이 안 돼있음.
        • 펌웨어에 가상화 사용 바꾸기 https://deepcell.co.kr/110
        • #1.4 WSL2 (05:12) 코멘트
          • 0x80370102 오류 나시는 분들 제어판 -> 프로그램제거 -> windows 기능 켜기/끄기 -> 가상 머신 플랫폼 체크 되어있는지 확인해주세요
            • 체크 돼있음ㅠㅠ
          • 우분투 설치한거 열었는데 에러 생길 때 해결 방법: "Windows 기능 켜기/끄기" 의 "Linux용 Windows 하위 시스템" 체크박스를 체크하고 재부팅 한다.
            • 체크 돼있음...ㅠㅠ
          • 그런데 Hyper-V가 체크 안돼있음! 하려고 해도 안됨. https://bbdata.tistory.com/6
            • 결국 펌웨어 가상화 때문? 위 블로그 설명대로 bios로 들어가서 enabled로 바꿨다. 마침 내 컴도 asus라서 bios 들어가는 방식은 같았음. 부팅 시 asus 뜰 때 보니, 하단에 bios 모드로 가려면 del이나 f2키를 누르라고 써있었음.
            •  
            • 펌웨어 가상화 했다!!
            • 드디어 해결함ㅠㅠㅠ
        • ubuntu를 지우고 chocolatey로 깔아봄.
          • Error - hashes do not match. Actual value was '0B1ABE8D5DC3FF416A06C9524E4F61A1FDF6CED583CB9B297EE72DF1732FF403'.
            ERROR: Checksum for 'C:\Users\㉮㉮㉮\AppData\Local\Temp\chocolatey\wsl-ubuntu-1804\18.04.1.020181923\Ubuntu_1804.2019.522.0_x64.appx' did not meet '96E4E3E336F08DDE1DF81FA9C266C5C7750BA92729857E92BDE36BF84A1DB002' for checksum type 'sha256'. Consider passing the actual checksums through with --checksum --checksum64 once you validate the checksums are appropriate. A less secure option is to pass --ignore-checksums if necessary.
            The install of wsl-ubuntu-1804 was NOT successful.
            Error while running 'C:\ProgramData\chocolatey\lib\wsl-ubuntu-1804\tools\ChocolateyInstall.ps1'.
             See log for details.

            Chocolatey installed 2/3 packages. 1 packages failed.
             See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

            Failures
             - wsl-ubuntu-1804 (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\wsl-ubuntu-1804\tools\ChocolateyInstall.ps1'.
             See log for details.
          • https://community.chocolatey.org/packages/wsl-ubuntu-1804 해결책?
          • https://www.gep13.co.uk/blog/chocolatey-error-hashes-do-not-match 원인?
        • nico와 같은 명령으로 wsl 깔고 ubuntu 깔아봄. 
          • 여전히 해결 못 함.
      • 리눅스 계정 만듦. 새로운 컴퓨터라 생각하고.
        • username에 대문자 이니셜 적었더니
          • adduser: Please enter a username matching the regular expression configured
            via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'
            option to relax this check or reconfigure NAME_REGEX.
        • 비밀번호는 입력해도 화면에 안 뜸.
    • WSL2 업데이트
      • dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
        • 재부팅
      • wsl --set-default-version 2
        • WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
          작업을 완료했습니다.
        • 커널 구성 요소 업데이트 하라고 안 나오고 이렇게 뜨면 된 것.
      • wsl에, 우분투에 wsl2 사용할 거라고 알려줘야 함.
        • 우분투 이름 확인 커맨드 : wsl --list --verbose
          • Ubuntu-18.04
          •   NAME            STATE           VERSION
            * Ubuntu-18.04    Stopped         2
            • 근데 나는 이미 버전이 2인데...??
        • wsl2 사용 커맨드 : wsl --set-version Ubuntu-18.04 2
          • "배포가 이미 요청된 버전입니다." 라고 나옴.
        • bios : 컴퓨터의 기초가 되는 펌웨어. os는 bios 위에서 동작.
          • 가상화 가능하게 하려면 구글링해서 내가 어제 했던 짓 해야 하는 듯.
          • 이게 안되면 wsl 버전2 못 씀.

 


 

#2 터미널 커스텀

  • 커스터마이징 : 리눅스 쉘을 보기 좋게 만듦.
    • 탭의 아래 방향 화살표 설정 누르면 VSC 뜸.
      • 난 그냥 윈도우 설정 화면 뜸. 왼쪽 메뉴바 하단의 JSON 파일 열기 클릭.
    • Remote - WSL 익스텐션 설치하라고 뜨면 설치.
      • 난 안뜸. 검색해서 설치.
      • wsl을 vsc 내에서 사용할 수 있게 해줌. 리눅스 환경과 상호작용. 리눅스 기능 사용해서 코딩 가능.
    • "profiles" 보면, list에 네 가지 항목 있는데 이게 탭의 화살표 누르면 나오는 것들.
      • 이름을 바꿀 수도 있음.
    • defaultProfile 
      • 새 탭 열었을 때 뜨는 기본값을 바꿀 수 있음.
      • 각 profile의 고유 아이디가 있는데 원하는대로 바꾸면 됨.

 

  • 새로운 터미널 설치
    • 지금 있는 것 위에 딴 거 또 설치
    • oh my zsh
      • zsh 먼저 다운 받아야 함.
        • https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH#ubuntu-debian--derivatives-windows-10-wsl--native-linux-kernel-with-windows-10-build-1903
          • 우분투에서 설치하는 법 : apt install zsh
        • E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
          E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
          • admin 유저가 아니어서 lock 파일 열 수 없다고 에러 남.
          • 일반 유저와 admin 유저 있음. 후자를 root라고 함. 파일 시스템 바꾸는 등 위험한 작업하는 권한.
          • 기본값으로 root 대신 일반 유저 사용. 이럴 땐 root 써야 함.
            • 커맨드 앞에 sudo 씀. 그리고 비밀번호 치면 됨.
            • 설치하겠냐고 묻는데 y 하면 됨.
      • oh my zsh 설치 
        • https://github.com/ohmyzsh/ohmyzsh 깃헙 들어감
          • Basic Installation에서 curl Command 복붙
        • 파워쉘에서는 안되고 우분투로 해야 됨.
        • 디폴트 쉘을 zsh로 바꾸겠냐고 물으면 y하고 비밀번호 입력.
      • 이제 새 탭 열면 콘솔창이 바뀜.
        • cd desktop
          ls                         => 데스크탑의 파일들 보여줌.
          code                     => 코드를 vsc에서 엶?
        • cd documents
          code
        • cd desktop
          code hello.js           => hello.js라는 파일을 vsc로 만들어서 엶.
      • cd, clear, ls 등의 커맨드는 나중에 다룸.

 

  • 예쁘게 만들기
    • 윈도우 터미널 색깔 바꾸는 법
    • terminal splash : 위 scheme이 마음에 안들면 https://terminalsplash.com/
      • 원하는 테마의 코드 클릭해서 복사.
      • "schemes": [] 안에 붙여넣기.
      • colorScheme 이름도 바꿔줌.
    • 모든 창에 color scheme 고정하기
      • default 안에 "colorScheme": "Monokai Night"
      • 그래도 아직 별로. 터미널 색깔과 다른 도구들 환경설정 옵션 제한됨.
    • powerlevel10k 설치 : zsh 위한 테마
      • oh my zsh로 설치.
      • https://github.com/romkatv/powerlevel10k에서 커맨드 복사.
      • 작동시키기 위해 '.zshrc' 파일 수정.
        • root 경로에 생성돼있음. 우분투 최상위 디렉토리.
        • code ~/.zshrc                       => "~"는 루트, ".zshrc"는 파일명
          • [문제] 나는 왜 zshrc 파일을 새로 만들지?...
            • ~/ .zshrc 라고 띄어쓰기 해서 그럼.
        • vsc로 연 zshrc 파일의 내용은 터미널을 위한 환경설정 옵션.
          • ZSH_THEME="powerlevel10k/powerlevel10k"
      • 터미널 다시 켜면 다이아몬드처럼 보이냐고 물어봄.
        • 네모 두개 있음. 폰트 때문.
          • settings.json에 사용할 폰트 적어줘야 함.
            • defaults 안에 "fontFace": "MesloLGS NF" 추가.
            • [참고] 강의 영상 위 링크에서 다운 받아서 설치.
          • VSC 설정에서 Terminal>Integrated: Font Family 찾아서 폰트 이름 붙여넣음.
        • 이제 다이아몬드, 자물쇠, 나선형, 아이콘 사이 X표 뜨는지 확인.
        • 프롬프트 스타일 고름.
          • 니꼬 픽 : rainbow - unicode - 24hour format - ......
          • 마지막 instant prompt mode는 뭔지 잘 모르니 3번.
      • powerlevel10k 환경설정 새로 하고 싶으면 "p10k configure" 입력.
    • vsc에서도 terminal 들어가보면 적용돼있음.
      • 파워쉘로 뜨면, WSL로 바꾸는 법
        • settings에서 "terminal > integrated > shell: windows" 찾기
        • edit in settings.json 클릭
        • "terminal.integrated.shell.windows": 에 WSL 추가
          • "C:\\Windows\\System32\\wsl.exe"라고 쓰면 됨.
    • ls colors 바꾸기
      • 형광 초록색 나오고 있는데 바꾸자.
      • 터미널의 설정파일 수정해야 함.
        • ".zshrc" 파일 열기
        • 맨 아래에 코드 붙여넣기.