Windows WSL과 관련된dotfiles 구성

최근 Windows WSL(Windows Subsystem for Linux)을 사용하여 개발되었습니다.
WSL 개발 때 dotfiles를 제작했을 때 WSL 특유의 문제점이 조금 있어서 정리해봤어요.
https://github.com/mkizka/dotfiles
또한dotfiles가 WSL에서 실행된다고 가정합니다.

WSL에서 Windows로의 홈 디렉토리 구성 파일

.wslconfig와 같이 Windows 홈 디렉토리에 파일을 배치할 수 있습니다.
Windows 파일은 WSL/mnt/c 등에 설치되어 있으며 홈 디렉토리의 경로는 다음과 같습니다.
WINHOME="$(wslpath "$(wslvar USERPROFILE)")"
cp -f .wslconfig $WINHOME/
Windows의 홈 디렉토리를 나타내는 환경 변수wslvarUSERPROFILE에 커밋하면 C:\Users\username와 같은 값을 얻을 수 있습니다.
이후 얻은 Windows 형식의 경로 사용wslpath/mnt/c/User/username와 같은 WSL이 사용할 수 있는 형식으로 전환되었다.

WSL에서 수행 판정


셸 스크립트가 WSL에서 실행되는지 여부를 판단하는 몇 가지 방법이 있는 것 같습니다.
예를 들어 https://get.docker.com에 공개된 https://github.com/docker/docker-install에서 uname -r에 문자열Microsoft 또는 microsoft이 포함되어 있는지 판단한다.
https://github.com/docker/docker-install/blob/fa5e8eaa2b048065a151f805d451903099144e25/install.sh#L133-L139 uname -r에서 판정이 이뤄졌을 때 용기에서 집행해도 같은 결과가 나오기 때문에 자신의 경우wslpath는 명령의 존재 여부에 따라 판단한다.
if [ -n "$(which wslpath)" ]; then
  # WSLでのみ実行する処理
fi

WSL 및 Windows에서git 인증 정보 공유


개발은 기본적으로 WSL에서 이루어졌지만 Windows에서 작업을 할 수 있도록 git의 인증 정보를 공유했다.
방법은 다음과 같다.
https://qiita.com/snaka/items/cc83553a81e00b2d26f3
위와 같이WINPATH Windows 측에서 Scop에 Giit를 설치하는 경우 아래와 같습니다.
git config --global credential.helper "${WINHOME}/scoop/apps/git/current/mingw64/libexec/git-core/git-credential-manager-core.exe"

끝맺다


나는 WSL에dotfiles를 육성할 때의 여러 가지를 썼다.앞으로 키울 분들은 참고해주세요.

좋은 웹페이지 즐겨찾기