더듬이

kubectl 자동완성 에러 _get_comp_words_by_ref command not found (feat. m1 ) 해결방법 본문

Kubernetes

kubectl 자동완성 에러 _get_comp_words_by_ref command not found (feat. m1 ) 해결방법

dbhang 2022. 8. 31. 14:22

m1 os 업데이트 이후 kubectl 자동완성이 안된다 ㅜㅜ 

 

https://my-grope-log.tistory.com/37

 

mac m1에서 kubectl 자동완성 설정하기 (feat. m1은 bash path가 달라요~ )

이전 맥버전에서는 bash 를 새로 설치하면 /usr/local/bin/bash 에 깔렸는데 빅서에서는 /opt/homebrew/bin/bash 에깔렷다. 근데 kubernets 공식문서에서는 /usr/local/bin을 prefix로 생각하기 때문에 기존꺼 그..

my-grope-log.tistory.com

위 글 그대로 진행했을때 문제 없지만 위에 처럼 에러가나면bash_completion 자동완성 실행파일을 못찾는 경우이다.

 

그럼 path를 직접 찾아서 bash 쉘 시작시 실행되는 파일 (ex: ~/.bashrc,~/.bash_profile)  에 추가해주면된다. 

일단 bash path 부터 보면 

아래와 같이 /opt/hombrew/bin 아래에 있는 bash 사용시에는

(base) iyui-MacBookAir:~ whatiy$ which bash
/opt/homebrew/bin/bash

아래와 같이 실행파일을 수정 해주면된다.

export BASH_COMPLETION_COMPAT_DIR="/opt/homebrew/etc/bash_completion.d"
[[ -r "/opt/homebrew/etc/profile.d/bash_completion.sh" ]] && . "/opt/homebrew/etc/profile.d/bash_completion.sh"
source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k

 

보통 이전 버전 mac os쓰시는 분들은 bash 패스가 다를것이다.  /usr/local/bin/bash 로 되어있으신 분들은 위에 두줄만 path 바꿔서 해주시면된다. 

### 여기부터 
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
## 여기까지 수정
source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k