터미널 tab 자동완성 오류

이재훈·2020년 8월 31일
3
post-custom-banner
  • 터미널 tab 자동완성 오류
  • complete:96: bad math expression: operand expected at end of string
  • zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]?
  • 이에 대한 정확한 정보가 딱히 없는 것 같아 혹시 나와 같은 분이 계신다면 미천하지만 이 글을 보고 조금이나마 도움이 되셨으면 한다.

아무래도 아직까지 컴퓨터와 친해지지않은 모양이다.

개발 공부의 길로 들어오면서 여러가지의 오류들을 만나왔지만
터미널에서 발생하는 오류는 정말인지.. 손이 벌벌 떨린다.
자칫 잘못하면 노트북 설정이 뻑이 날 것만 같은 느낌이 왠지 모르게 들기 때문이다..

오늘 발생한 오류는 nvm을 설치하고자 homebrew를 설치하였고, homewbrew가 제대로 작동하지 않아 다시 삭제를 하였다. 문제는 여기서 발생하였다.

기존에 잘 작동하던 tab 자동완성 기능이 안되는 것이다.

아래 사진처럼 'De'까지만 적고 tab을 press하면 'Desktop'이 자동작성이 되었지만...

"complete:96: bad math expression: operand expected at end of string" 라는 에러메세지와 함께 먹통이 된 것이다.
순간 욱하는 감정이 올라왔지만 Mac을 부실순 없었기에 차분한 마음으로 에러메세지를 구글링을 해보았다.

github
stackoverflow
blog
등등 모든 검색어를 동원하여 구글링을 해봤지만 나의 에러를 해결해주는 명확한 답은 없었다.

그렇게 1시간 이상을 삽질하고.. 문제의 근원지를 다시 한 번 생각해보았다.
우선 터미널을 종료 후 다시 실행해보니 실행되자마자 아래 사진과 같은 메세지가 뜨더라.
아이고.. 이것도 난생 처음 보는 메세지였다.

위의 메세지를 구글링 해본 결과

'zsh 소유권 문제 해결'의 문제라더라.
이 문제를 해결하면 "complete:96: bad math expression: operand expected at end of string" 의 문제도 해결할 것 같았다.


아래 글은 CHANN님의 블로그에서 발췌한 글이다.

가끔 터미널로 작업하다 보면 아래와 같은 상황을 직면한다.

Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-66-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
Last login: Sat Oct 31 15:15:36 2015 from 203.229.151.243
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

이러한 상황의 문제점은 대부분 zshell과 관련된 소유권과 권한의 문제일 가능성이 큼. 특정 패키지나 라이브러리 등을 설치할 때 외부의 스크립트를 사용할 경우, 가끔 /usr/local/share/ 의 소유권과 권한을 변경해버리기 때문.

아래의 두 가지 방법이 있음. zshell을 사용하는 OS X, Linux 모두 적용 가능.

* site-functions 의 소유권 문제일 경우
 $ cd /usr/local/share/zsh
 $ sudo chown -R root:root ./site-functions

* zsh 권한과 소유권 문제일 경우
 $ cd /usr/local/share/
 $ sudo chmod -R 755 zsh
 $ sudo chown -R root:staff zsh

		출처: https://til.chann.kr/shell/zsh-ownership-issue-fix

.....
안된다..
해결됐으면 내가 이렇게 블로그에 옮겨적지는 않았겠지...
심지어 root:는 올바르지 않은 입력이란다.

후.. 다시 마음을 다잡고.. 아무리 열심히 구글링을 해봐도 비슷한 답변들이 줄을 지었지만, 우연히 github를 검색하다 아래 사진과 같은 답변을 발견했다.

이 역시도 비슷한 답변이지만 한가지 다른 점은 homebrew의 유무.

일단, 저 사진의 해결책도 통하지는 않았지만
본인은 앞서 homebrew를 설치했다 삭제한 이력이 있기에
미처 삭제되지 않고 남아있는 homebrew의 파일들이 위의 chann님께서 말씀하신 zsh소유권, 권한에 '간섭'하고 있을지도 모른다는 생각이 들었다.

그래서 /usr/local/에 잔류하고 있는 Homebrew 디렉토리와 하위 디렉토리 를 모두 삭제하고 위에 chann님의 해결방안대로 하니 작동이... 된다..ㅜㅜ

* Homebrew는 그냥 삭제가 되지않았고 sudo를 이용하여 삭제가 가능했으니 참고 바란다.


이에 대한 정확한 정보가 딱히 없는 것 같아 혹시 나와 같은 분이 계신다면 미천하지만 이 글을 보고 조금이나마 도움이 되셨으면 한다.

이제.. 개운한 마음으로 자러가야지 :(
내일 일어나서 다시 깔끔하게 정리할래..


추가!!

본인은 필요에 의해 다시 homebrew를 설치했고, 또 다시

라는 메세지가 떴다.

다시 설정하기 귀찮다면 'y'를 누르고 그냥 실행하여 사용해도 되고,
chann님의 해결방법으로 접근한 후 다음 포스트 글을 참고하길 바란다.

많은 도움이 되지 못할 수도 있지만 나만큼 삽질을 덜 했으면 한다.

다음 포스트: https://velog.io/@potter/homebrew-node-링크-문제

profile
코딩에서 인생을 배우다.
post-custom-banner

0개의 댓글