윈도우에서 Docker를 사용하고 싶어서 WSL2를 설치하고자 한다.
환경
- Windows 10 Education
- 아래 코드는 PowerShell 관리자 모드에서 진행한 코드임을 밝힙니다.
WSL2 환경 세팅
- 참고로 Windows 11 훨씬 더 간단하게 설치할 수 있습니다.
- 이전 버전 WSL의 수동 설치 단계 | Microsoft Learn
- Linux용 Windows 하위 시스템 사용
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- Virtual Machine 기능 사용
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 또는 Windows 기능 켜기/끄기 에서 들어가 체크표시를 하고 재부팅을 하는것으로 해결 가능하다.
'Linux용 Windows 하위 시스템', '가상 머신 플랫폼', 'Hyper-V' 기능을 체크
※ DISM (Deployment Image Servicing and Management)은 윈도우 이미지 (Windows images)와 관련된 조작을 위한 커맨드라인 명령어
WSL2 업데이트 패키지 설치
- 공식 다큐먼트로 들어가 패키지를 다운 받아줍니다.
- https://learn.microsoft.com/ko-kr/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지를 설치했습니다.
WSL 2를 기본 버전으로 설정
wsl --set-default-version 2
- 이제 리눅스 베포판을 마이크로 소프트 앱스토어에서 설치해주었습니다.
설치 후 계정 시작 눌러주면 계정 이름과 비밀번호를 설정할 수 있습니다.
WSL 2 설치 확인
- 설치한 리눅스 베포가 WSL 2 버전이 맞는지 확인해줍니다.
wsl -l -v
스토어 앱에서 Windows Terminal 을 깔아봤는데 터미널이 탭으로 들어가니깐 훨씬 편하네요.
WSL2 속도 개선
apt 저장소에 패키지를 다운로드할 때 archive.ubuntu.com으로 접속하는 것으로 기본 설정이 되어있다고 한다.
이는 한국에서 접속시 속도가 매우 느려지기 때문에 sources.list 파일을 수정하여 repository의 속도를 향상시킬 수 있다고 합니다.
- WSL 실행 후 소스 리스트 편집 ( mirror.kakao.com 으로 수정 )
sudo vim /etc/apt/sources.list
:%s/archive.ubuntu.com/mirror.kakao.com
참고로 :wq 를 통해 저장하고 나올 수 있습니다.
- DNS 네임서버 변경
kakao mirror로 접속 사이트를 바꾸고 나면 DNS 네임서버 문제로 작동이 잘 되지 않을 수 있다고 합니다.
따라서 그럴 때는 네임 서버를 구글 퍼블릭 서버로 변경하면 된다고 하여 해당 내용을 따라했습니다.
sudo vim /etc/resolv.conf
- 편집 내용
# Google nameserver
nameserver 8.8.8.8
nameserver 8.8.4.4
# This file was automatically generated by WSL. To stop automatic generation of this file,
add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
- 이후 업데이트를 진행해줍니다.
( update는 최신 내용을 기록, upgrade는 기록된 내용을 설치 )
sudo apt-get update
sudo apt-get upgrade
sudo apt update
sudo apt upgrade
apt-get은 apt의 구버전 코드로 사실상 같은 코드 입니다.
WSL2 리셋 문제
- WSL2가 재시작할 때마다 nameserver 정보가 담긴 /etc/resolv.conf 파일을 자동으로 리셋하는 이슈가 있다고 합니다
( generate resolv conf를 false 로 했는데도 리셋하는가 보네요. )
sudo chattr +i /etc/resolv.conf
위의 명령어를 통해 파일 수정을 막을 수 있다고 합니다.
명령어가 안먹히면 -f 옵션을 넣어서 해볼 수는 있겠는데 맞는 방법인지는 잘 모르겠습니다.
개발 도구 세팅
개발 도구 세팅을 위한 설치를 진행해주고 본 게시글을 마치도록 하겠습니다.
sudo apt-get install build-essential
sudo apt-get install -y autoconf automake autopoint autotools-dev blt-dev debhelper dh-autoreconf
dh-strip-nondeterminism diffstat docutils-common gettext intltool-debian
libarchive-zip-perl libbluetooth-dev libbluetooth3 libbz2-dev libcroco3 libdb-dev
libdb5.3-dev libexpat1-dev libffi-dev libfile-stripnondeterminism-perl libfontconfig1-dev
libfreetype6-dev libgdbm-dev libice-dev libjs-jquery libjs-sphinxdoc libjs-underscore
liblzma-dev libmpdec-dev libncursesw5-dev libpixman-1-0 libpng-dev libpthread-stubs0-dev
libreadline-dev libsm-dev libsqlite3-dev libssl-dev libtcl8.6 libtext-unidecode-perl
libtimedate-perl libtinfo-dev libtk8.6 libtool libx11-dev libxau-dev libxcb1-dev
libxdmcp-dev libxext-dev libxfont2 libxft-dev libxkbfile1 libxml-libxml-perl
libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl libxrender-dev
libxss-dev libxss1 libxt-dev m4 pkg-config po-debconf python-babel-localedata
python3-alabaster python3-babel python3-docutils python3-imagesize python3-lib2to3
python3-pygments python3-roman python3-sphinx python3-tz quilt sgml-base sharutils
sphinx-common tcl tcl-dev tcl8.6 tcl8.6-dev tex-common texinfo tk tk-dev tk8.6
tk8.6-blt2.5 tk8.6-dev x11-xkb-utils x11proto-core-dev x11proto-dev
x11proto-scrnsaver-dev x11proto-xext-dev xml-core xorg-sgml-doctools xserver-common
xtrans-dev xvfb zlib1g-dev
원래는 build-essential 설치로 끝나는데 실제로 해보니깐 없는 개발 도구가 있다고 오류가 계속 나더라구요.
그래서 필요하면 아래와 같이 패키지들을 직접 설치해줄수도 있을 것 같습니다.
'근황 토크 및 자유게시판' 카테고리의 다른 글
[ubuntu 20.04 리눅스] CPU, GPU, RAM 확인 (0) | 2023.05.19 |
---|---|
[Window 10] WSL2 환경에서 Docker 설치 (0) | 2023.04.25 |
[Numba] SystemError: initialization of _internal failed without raising an exception (0) | 2023.03.17 |
개발자 워크플로우 (0) | 2023.03.13 |
[Ubuntu 20.04] Setting Korean Words in keyboard (0) | 2023.03.10 |