갑작스럽게 kubectl not found가 발생했다면 😫

평소에 잘 쓰던 kubectl이 갑자기 not found가 발생했습니다. (아마 특정 시점에 brew upgrade로 인해 문제가 됬을 것 같아요)

zsh: command not found: kubectl

이미 설치된 상태이고, 재 설치를 해도 동일했습니다. 여기저기 찾아보니 homebrew로 설치한 경우에서 이 이슈가 발생하는 것 같은데요. brew로 kubectl을 재 설치하고 brew link로 설치된 파일을 심볼릭 링크로 homebrew prefix와 연결해주면 다시 명령을 사용할 수 있습니다.

brew reinstall kubectl
brew link --overwrite kubernetes-cli

참고로 homebrew prefix는 homebrew에서 사용하는 PATH 경로입니다. 기본적으로 /usr/local로 지정되며 패키지 설치 시 전용 디렉토리에 패키지를 설치하고 prefix 하위의 Cellar에 심볼릭 링크로 연결됩니다.

그리고 brew link 명령은 지정된 패턴의 설치된 파일을 homebrew의 prefix로 강제 심볼릭 링크를 걸어줍니다. 그래서 혹시라도 Cli에서 사용할 수 없도록 명령이 끊긴 경우 이를 이어줄 수 있겠죠.

Symlink all of formula’s installed files into Homebrew’s prefix. This is done automatically when you install formulae but can be useful for DIY installations.

prefix 경로는 아래 명령으로 체크가 가능합니다.

brew --prefix
/usr/local

해당 경로의 Cellar 디렉토리를 보면 설치된 패키지들을 확인할 수 있습니다.