Skip to content

WSL을 처음 개발 환경으로 잡을 때 제일 먼저 해두면 좋은 설정이 하나 있습니다.

바로 Windows PATH가 WSL 안으로 자동으로 섞이지 않게 막는 것입니다.

처음에는 이 설정이 왜 중요한지 잘 안 와닿을 수 있습니다. 하지만 이걸 초반에 정리해 두지 않으면, 나중에 python, node, git, java 같은 명령이 내가 생각한 리눅스 바이너리가 아니라 윈도우 쪽 프로그램으로 연결되면서 환경이 꼬이기 시작합니다.

예를 들어 WSL 안에서 작업하고 있는데도, 실제로는 Windows PATH에 잡혀 있는 실행 파일이 먼저 선택되면 버전이 섞이거나 패키지 설치 위치가 달라지고, 경로 처리 방식도 미묘하게 어긋날 수 있습니다.

초보자 입장에서는 "분명 WSL인데 왜 윈도우 프로그램이 실행되지?" 같은 혼란이 생기기 쉬운데, 그 원인 중 하나가 WSL이 시작될 때 Windows PATH를 자동으로 뒤에 붙여주는 기본 동작입니다.

그래서 WSL을 리눅스 개발 환경처럼 예측 가능하게 쓰고 싶다면, Windows PATH 자동 섞임을 막아두는 것을 가장 먼저 추천할 수 있습니다.

왜 이걸 제일 먼저 해야 하나

  • 리눅스에서 설치한 도구와 윈도우 도구가 섞이지 않습니다.
  • which python, which node, which git 결과가 더 예측 가능해집니다.
  • 프로젝트마다 버전 충돌이 나는 일을 줄일 수 있습니다.
  • 문제를 찾을 때 "지금 어떤 실행 파일이 호출되는지"를 훨씬 쉽게 확인할 수 있습니다.

WSL을 막 설치한 초반에는 환경이 단순할수록 좋습니다. 개발 도구를 하나씩 설치하고 익혀야 하는 시점에 실행 경로까지 섞여 버리면, 문제가 생겼을 때 어디부터 봐야 할지 파악하기가 훨씬 어려워집니다.

물론 이 설정을 한다고 해서 WSL에서 윈도우 프로그램을 완전히 못 쓰게 되는 것은 아닙니다. PATH 자동 추가만 막는 것이고, interop 자체는 그대로 유지할 수 있습니다.

설정 방법

먼저 /etc/wsl.conf 파일을 엽니다.

bash
sudo nano /etc/wsl.conf

그리고 아래 내용을 추가합니다.

ini
[interop]
enabled=true
appendWindowsPath=false

이미 같은 섹션이 있다면 중복으로 만들지 말고, 기존 값만 맞춰주면 됩니다.

이 설정의 핵심은 appendWindowsPath=false 입니다. WSL이 시작될 때 윈도우 PATH를 자동으로 섞지 않게 만드는 역할을 합니다.

적용 방법

파일을 저장한 뒤에는 WSL을 완전히 종료해야 설정이 반영됩니다.

Windows PowerShell 또는 명령 프롬프트에서 아래 명령을 실행합니다.

powershell
wsl --shutdown

그 다음 WSL을 다시 실행합니다.

제대로 적용됐는지 확인하는 방법

다시 들어온 뒤에는 PATH가 이전보다 짧아졌는지 먼저 확인해 보면 됩니다.

bash
echo $PATH

그리고 자주 쓰는 명령이 어느 바이너리를 가리키는지 확인합니다.

bash
which python
which node
which git

정상이라면 /usr/bin/..., /usr/local/bin/..., 또는 사용 중인 리눅스 환경의 경로가 먼저 보이는 쪽이 자연스럽습니다.

알아두면 좋은 점

  • 이 설정을 하면 예전에는 바로 실행되던 윈도우 프로그램이 더 이상 PATH에서 자동으로 잡히지 않을 수 있습니다.
  • 그래도 필요하면 절대 경로로 직접 실행하거나, 정말 필요한 경로만 셸 설정 파일에 수동으로 추가하면 됩니다.
  • 개발 환경이 자꾸 꼬이는 것을 줄이고 싶다면, "전부 자동으로 섞기"보다 "필요한 것만 명시적으로 추가"하는 쪽이 보통 더 안정적입니다.

정리

윈도우에서 WSL 개발 환경을 잡을 때는 이것저것 설치하기 전에 먼저 실행 경로부터 단순하게 만들어 두는 편이 좋습니다.

WSL에서 Windows PATH 자동 섞임을 끄면 처음에는 조금 불편해 보일 수 있지만, 장기적으로는 어떤 명령이 어디서 실행되는지 분명해지고, 도구 버전 충돌도 줄어들어서 오히려 관리가 쉬워집니다.

WSL을 리눅스 개발 환경처럼 안정적으로 쓰고 싶다면, /etc/wsl.conf 에 아래 설정을 가장 먼저 넣어두는 것을 추천할 수 있습니다.

ini
[interop]
enabled=true
appendWindowsPath=false

Last updated: