WSL 2
에서 사용 가능한 배포판이 Ubuntu
밖에 없어서 이를 갈고 있었는데 우연찮게 Docker
를 통한 Fedora
배포판 설치 방법을 찾게 되어서 그 내용을 요약해서 정리하려 한다.
https://docs.docker.com/desktop/install/windows-install/
위 사이트로 들어가서 Docker Desktop
을 설치한다. 설치 과정은 그냥 쭉 Accept
버튼 눌러서 넘어가면 된다. 설치 중간에 Configuration
이 등장하는데 Install required Windows components for WSL 2
만 체크하고 넘어가면 된다.
불필요하므로 그냥 Skip tutorial
눌러서 종료한다.
상단의 톱니바퀴를 눌러서 설정을 확인한다. 여기에서 Use the WSL 2 based engine
이 위처럼 체크되어 있는지 확인하고 위와 같다면 창을 닫고 빠져 나온다.
docker pull fedora:latest
docker run --name fedora-latest fedora
docker export -o fedora-latest-rootfs.tar fedora-latest
mv
위 명령어를 입력하여 최신 버전의 fedora rootfs
를 추출한다. 그리고 파일을 적당한 위치에 옮겨둔다.
wsl --import fedora-latest <설치 경로> <rootfs 파일>
앞서 추출한 rootfs
를 통해 WSL
에 Fedora
배포판을 설치한다. 필자는 $HOME\AppData\Local\Packages\Fedora-Latest
라는 디렉토리를 만든 뒤에 이곳을 설치 경로로 잡아 두었다.
wsl --list
wsl -s fedora-latest # `fedora-latest` 배포판을 디폴트로 설정
wsl # -d fedora-latest # `-d` 옵션을 통해 직접 배포판을 지정할 수도 있다.
fedora-latest
가 생성되었는지 확인한 뒤, 명령어를 입력하여 fedora-latest
를 실행시킨다.
sudo dnf update
sudo dnf install ncurses # clear 명령어
sudo dnf install util-linux # mount 명령어
sudo dnf install passwd # passwd 명령어
sudo dnf install cracklib-dicts # passwd 검사
배포판에 설치된 패키지가 아주 최소한의 수준으로 구성되어 있기 때문에 위 명령어를 입력하여 몇 가지 패키지를 다운로드 받도록 한다.
WSL
을 실행하면 root
유저로 실행되므로 일반 유저 계정을 만들어보려 한다.
useradd -G wheel <username>
passwd <username>
위 명령어를 입력하여 유저 계정을 만들 수 있다. <username>
은 원하는 이름을 채워 넣으면 된다. 만일 위에서 cracklib-dicts
패키지를 설치하지 않았다면 passwd
명령어 입력 후 비밀번호 설정 과정에서 에러가 발생하므로 설치하길 바란다.
su <username>
echo -e "[user]\ndefault = $(whoami)" | sudo tee /etc/wsl.conf
유저 계정으로 로그인 한 뒤 아래의 명령어를 입력하여 wsl.conf
파일을 생성한다. 설정 파일까지 생성했다면 WSL
을 종료하고 Powershell
에 다음 명령어를 입력하여 설정 파일을 적용시키고 다시 로그인 해본다.
wsl -t fedora-latest
wsl # -d fedora-latest
Powershell
에 wsl
명령어를 입력하여 배포판을 실행하게 되면, 홈 디렉토리에서 시작하는 것이 아닌 Windows
의 현재 디렉토리를 기준으로 실행이 되므로 다음의 명령어를 입력하여 로그인 시 디렉토리를 전환하는 명령어를 추가해준다.
echo "cd $HOME" >> ~/.bashrc
source ~/.bashrc
# ldconfig 에러 수정
sudo rm /usr/lib/wsl/lib/libcuda.so.1
sudo ln -s libcuda.so.1.1 libcuda.so.1
# tsflags=nodocs 라인 제거
grep -v nodocs /etc/dnf/dnf.conf | sudo tee /etc/dnf/dnf.conf
sudo dnf install -y man man-pages
# 전체 패키지 재설치
for pkg in $(dnf repoquery --installed --qf "%{name}"); do sudo dnf reinstall -qy $pkg; done
위 명령어를 순서대로 입력한 뒤 아래와 같이 man
명령어를 테스트해본다:
man printf
[사이트] https://dev.to/bowmanjd/install-fedora-on-windows-subsystem-for-linux-wsl-4b26
[사이트] https://docs.docker.com/desktop/install/windows-install/