zsh: command not found: nvm 오류해결법

palette·2021년 7월 21일
32

시행착오🛠

목록 보기
1/2
post-thumbnail

zsh: command not found: nvm

bash: command not found: nvm
zsh: command not found: nvm

위 오류 메시지 해결법을 알려주는 블로그는 이미 많다. 그리고 nvm 공식 문서도 사실 차근차근 읽어보면 'Troubleshooting on Linux'에서 해결법을 안내해주고 있다.

https://github.com/nvm-sh/nvm#install--update-script

그런데 내가 이 글을 쓰고 있는 이유는 당시의 나에겐 그 수많은 블로그 글들이 하나도 이해가 되지 않았고, 시키는 대로 재설치를 하면 설치는 이미 완료됐다고 하는데 터미널에 'nvm -v'를 아무리 쳐봐도 저 오류 메시지와 만나야 했기 때문이다. 그래서 이 글은 나같이 코딩에 대한 기본지식 하나도 없는, 어쩌면 오늘 막 터미널을 처음 실행해본 사람들이 같은 오류를 해결하는데 쓰는 시간을 줄일 수 있었으면 해서 쓰는 공익 목적의 글입니다…

오류가 발생하는 이유


이 'command not found' 오류는 MacOS Mojave 운영체제부터 환경변수가 적용되어 터미널을 새로 실행시킬 때마다 .bash_profile 혹은 .zshr이 새로 로드되기 때문에 발생한다.

…뭔소리야.
이제 막 코딩 배우는 사람이 환경변수가 뭔지 알 리가 있나.

하지만 환경변수가 뭔지는 몰라도 우리는 이 오류를 해결해야 하고, 해결할 수 있다.
일단 오류 메시지가 어떻게 뜨는지를 알아야 하는데 아마 이 둘 중 하나일 것이다.

1) bash: command not found: nvm
2) zsh: command not found: nvm

앞의 bash와 zsh가 현재 사용중인 쉘(운영체제에서 사용자가 입력하는 명령어를 읽고 해석해서 실행해주는 인터페이스 프로그램)을 말해준다. OS에 따라 쉘이 다르고, 쉘이 무엇이냐에 따라 수정해줘야 하는 파일이 달라지기 때문에 bash인지 zsh인지 꼭 확인해야 한다.

나는 2020년에 공개된 Big Sur OS를 사용하고 있기 때문에 쉘은 zsh를 쓰고 있다.
그래서 나처럼 zsh 쉘 쓰는 사람이 아무것도 모르고, 2019년 블로그 따라서 vi ~/.bash_profile를 아무리 따라쳐봤자… 아무 일도 일어나지 않는다…

오류 해결법


일단 zsh 쉘을 기준으로 설명하자면,

1. 일단 touch로 zshrc 파일을 생성해준다.
bash 쉘의 경우 '.zshrc' 대신 '.bash_profile'이라고만 써주면 된다.

touch ~/.zshrc

2. vi 에디터로 zshrc 파일을 실행한다.

vi ~/.zshrc

꼭 vi 에디터가 아니어도 된다. 비쥬얼 스튜디오 코드로 열어도 되고, 나노 에디터여도 되고 사용하기 편한 에디터를 사용하면 된다.

3. 파일 내에 코드 입력

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

vi 에디터로 편집 중이라면, ':wq' 를 입력해서 저장후 종료한다.

4. 터미널을 재로그인하거나, source 명령어로 스크립트 실행

source ~/.zshrc

이제 터미널을 재실행해도 nvm이 문제없이 실행될 것이다! 🎉

혹시…


다른 블로그들에서 시키는 대로 vi ~/.bash_profile 을 쳐보다가 이런 메시지를 봤을 수도 있다…

".bash_profile.swp" already exists!

이 오류 메시지는, vi 에디터를 저장 없이 종료했기 때문에 발생하는 메시지다.

vi 명령어를 치면 나오는 '~~' 끝없는 물결표에 당황해서 그냥 종료 버튼을 누른 거라면… 내가 그랬다.
(vi 에디터 기본 명령어로 검색하면, 좋은 블로그들이 많다……
:q(저장 없이 종료)나 :wq(저장 후 종료)치고 종료하기………… 🥲)

vi 에디터는 실행하고 파일을 저장하지 않은 채로 비정상 종료한 경우, 파일 확장자를 자동으로 .swp로 수정하여 임시저장 파일 같은 형식으로 만들어버린다.

터미널에 'ls -a' 명령어를 쳐 숨김 파일까지 전부 표시하면, 폴더 내에 .bash_profile.swp이 존재하는 것을 확인할 수 있을 것이다.

.swp 확장자 파일은 rm 명령어로 삭제해줘도 되고, mv로 변경해줘도 되고…

rm .bash_profile.swp
mv .bash_profile.swp .bash_profile

아무튼 swp 파일을 처리한 후, 위의 해결법을 따라하면 'command not found' 오류는 해결이 될 것이다! 🙂

해결!


아무튼 이 글을 읽으시면서 아마 '뭐 이런 것도 몰라?' 싶은 부분이 많겠지만, 나는 정말 노베이스로 코딩을 시작했다. 분명 나 같은 사람도 있을 거라 생각하기에 이 글을 썼다. 그런 사람들에게 조금이나마 도움이 됐길…

내가 2019년 글 정도면 오류 해결에 아무 문제가 없을 거라고 생각했지만, 2년 전 글조차 낡은 글이었듯… OS는 또 업데이트될 것이고, 오류 해결법은 또 달라질 수 있다.

오류메시지에 이미 지쳐서 당장은 한국말로 쓰인 블로그 글을 읽고 싶겠지만, 일단 공식 설치 페이지를 차근차근 읽어보는 걸 추천한다. 결국 블로그 글들도 다 공식 페이지에서 나오는 거니까…

아무튼 이런 나도 하고 있으니… 다들 포기하지 말고 화이팅!! 🔥

profile
지속가능한 삶을 위해

13개의 댓글

comment-user-thumbnail
2021년 10월 15일

감사합니다

답글 달기
comment-user-thumbnail
2021년 11월 17일

와 정말 감사합니다

답글 달기
comment-user-thumbnail
2021년 11월 19일

큰 절 받으십시오

답글 달기
comment-user-thumbnail
2021년 12월 22일

감사합니다~

답글 달기
comment-user-thumbnail
2021년 12월 22일

많은 도움 되었습니다!

답글 달기
comment-user-thumbnail
2022년 1월 21일

감사합니다....!!!

답글 달기
comment-user-thumbnail
2022년 1월 28일

와 진짜 별짓 다해도 안됐는데....넘 감사합니다 ㅠㅠ

답글 달기
comment-user-thumbnail
2022년 2월 5일

똑같이 따라해도 안 되는 저는 뭘까요?

답글 달기
comment-user-thumbnail
2022년 2월 14일

감사합니다^^

답글 달기
comment-user-thumbnail
2022년 11월 17일

정말.. 감사드려요 ㅠ___

답글 달기
comment-user-thumbnail
2022년 12월 5일

해결했습니다 감사합니다!

답글 달기
comment-user-thumbnail
2023년 1월 31일

감사합니다 덕분에 해결했네요.. !

답글 달기
comment-user-thumbnail
2024년 8월 30일

코딩 배우고있는 후배입니다 참고 링크 타고 왔습니다 그전 링크만 보고도 해결했지만 정말 귀중한 정보 알고갑니다 감사합니다 저의경우 sqlDeveloper사용중 재부팅후 터미널이 브루고 도커고 콜리마고 아무것도 못알아 먹어서 당황했는데 해결했습니다 사용중인 기기는 맥북 에어 M3 입니다!

답글 달기