Intro

  • minimum 수동 설치 방법이 있으나 데몬 서비스, docker 설치 등에 어려움이 있다.
  • 여기에서는 다음 두 가지 설치 방법을 정리한다.
    1. Microsoft Store - Alpine WSL Install, 2. Github - AlpineWSL Install
  • 특이사항:
    • default shell: ash (필요하면 bash를 추가 설치: apk add bash bash-completion)
    • grep: busybox grep (고성능의 grep이 필요하다면 추가 설치: apk add grep)
    • sudo: doas (필요하면 추가 설치: apk add doas)
    • openssh: openssh (필요하면 설치: apk add openssh)
    • curl: wget은 기본 설치 (필요하면 추가설치: apk add curl)

Microsoft Store - Alpine WSL Install

  • 참고 사항

    • 버전은 3.17로 2018년이다. 업데이트도 안되고 있는 듯.
    • 하지만 Microsoft Store를 이용하므로 편리하다.
    • application - C:\Program Files\WindowsApps\36828agowa338.AlpineWSL_3.17.0.0_x64__my43bytk1c4nr\Alpine.exe
    • ext4 filesystem - C:\Users\batut\AppData\Local\Packages
  • Install

    • Microsoft Store > alpine 검색 > 설치 > 실행
    • 처음 실행시 user 및 password 입력: root는 설정해준 일반유저와 동일. ex) $su -
  • 설치 후 PowerShell에서 Default로 설정

wsl -s Alpine  # --set-default: wsl default set
  • Alpine WSL2 실행후 기본 정보 확인
$ passwd               # Password 설정
$ cat /etc/os-release  # Os Version Check
$ uname -a             # Os Info Check
$ df -Th /             # Disck Usage Check
  • 기본 최소 패키지 설치
$ su -        # Change to Root

# cat > /etc/apk/repositories << EOF; $(echo)
https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/main/
https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community/
https://dl-cdn.alpinelinux.org/alpine/edge/testing/
EOF

# apk update  # Update
# apk add libstdc++ curl grep bash bash-completion openssh nvim  # libs, Utils
# apk add openrc git docker  # Daemon Service, Git, Docker Install
  • doas (like sudo) 설정
# vi /etc/doas.d/doas.conf
...
# user01 is username, root permition allowed, password once and cached
#permit persist user01 as root 
# user01 is username, root permition allowed, no password
permit nopass user01 as root  
...

Github - AlpineWSL Install

  • 최신 버전을 설치할 수 있다.

  • 몇가지 설정만 하면 바로 사용 가능하다.

  • 설치 준비

    • 최신 버전 다운로드: https://github.com/yuk7/AlpineWSL/releases
    • Current version: 3.21.x
    • 참고로 Windows용은 Alpine.zip이다.
    • 적당한 폴더에 압축을 푼다. ex) C:\WSL\Alpine\
    • PowerShell 실행하여 해당 폴더로 이동
    • 해당 폴더에서 Alpine.exe를 실행하면 ex4.vhdx의 파일시스템이 생성된다.
    • 이 때, 이미 Alpine이 이미 설치되어 있다면 충돌을 피하기위해 Apline4184.exe 등으로 변경하고 실행한다.
  • AlpineWSL 설치

c:\WSL\Alpine> mv Alpine.exe Alpine321.exe
c:\WSL\Alpine> Alpine321.exe
c:\WSL\Alpine> ls
c:\WSL\Alpine> wsl -l
c:\WSL\Alpine> wsl -s Alpine321  # wsl default image set
c:\WSL\Alpine> wsl               # execute alpine 3.21 linux
  • alpine setup root, user

User Setup

export TZ=Asia/Seoul  # Time Zone Setup
apk add --no-cache tzdata && \
    cp /usr/share/zoneinfo/$TZ /etc/localtime && \
    echo $TZ > /etc/timezone

# cat /etc/os-release  # check os version
# apk update && apk upgrade  # package update, upgrade
# passwd root          # root password set
# apk add --no-cache doas

# addgroup -g 1000 borisu  # user set
# adduser -u 1000 -G borisu -s /bin/bash -D borisu
# echo 'borisu:borisu' | chpasswd
# echo 'permit nopass borisu as root' > /etc/doas.d/doas.conf
# passwd borisu  # user password set

# exit
  • config alpine default login user
    • C:\> wsl -d Alpine321 -u borisu로 직접 실행 가능.
    • 아래는 직접 설정을 해주고 wsl -d Alpine321을 실행 하는 방법이다.
PS C:\wsl\Alpine> .\Alpine321.exe config --default-uid 1000
PS C:\wsl\Alpine> .\Alpine321.exe config --default-user borisu
  • Windows Terminal Setting
    • 윈도우즈 터미널의 설정을 클릭한다.
    • 좌측 메뉴 새프로파일 추가
    • 이름: Alpine321
    • 명령줄: C:\WINDOWS\system32\wsl.exe -d Alpine321
    • 기타 설정 후 저장

이후 작업

  • 필요한 패키지 설치
  • Alpine 도커에 관해서는 과거 버전(ex.3.18)에서는 기본 패키지가 없었다.
  • 과거 버전 설치는 docker-windows 참조.
  • 현재(ex.3.21)에서는 docker 패키지가 기본 포함되었다.

백업과 복구

  • 이렇게 설치하고 환경을 구성하는 데에도 많은 시간과 노력이 든다.
  • 필요한 패키지 설치와 설정 등을 완료했다면 백업을 해 두는 것이 좋다.
  • 이것을 다른 PC로 옮기거나 윈도우즈 재설치 등으로 복구를 쉽게 할 수 있다.
  • Alpine321을 예로 든다.

백업

  • Windows PowerShell을 실행한다.
wsl -l -v   # 현재 WSL 등록 및 동작 상태 확인
wsl -t Alpine321   # Alpine321을 종료
wsl --export Alpine32 D:\Alpine321.tar   # D:\Alpine321.tar 로 백업

제거

  • 제거를 해야할 경우이므로 반드시 백업을 먼저 해두어야 한다.
  • wsl2의 경우 등록된 폴더(설치 폴더)에
wsl -l -v
wsl -t Alpine321   # Alpine321을 종료
wsl --unregister Alpine321   # 제거
wsl -l -v   # 제거 확인

복구

  • 복구시 복구할 폴더 (ex. C:\WSL\Alpine321)로 먼저 이동한다. 필요하면 생성.
  • 복구 명령은 wsl --import (distribution) (install location) (file path) 이다.
cd C:\WSL\Alpine321
wsl --import Alpine321 D:\Alpine321.tar   # 백업 파일의 위치는 D:\Alpine321.tar
wsl -l -v   # 복구 확인

REFERENCE