
나는 얻으려고 노력하고있다npm일하다. 그 과정에서 두 가지 버전이 설치된 것 같습니다. 손상된 버전은 ~/bin에 설치되었고, 다른 버전은 방금 컴파일하고 실행 make install
하여 /usr/local/bin/npm
.
npm
그래서 전체 ~/bin 폴더를 ~/old/bin으로 옮겼지만 ~/bin에서 시스템 검색을 실행할 때 여전히 그렇습니다 .
$ which npm
/usr/local/bin/npm
$ alias npm
-bash: alias: npm: not found
$ npm
-bash: /home/ubuntu/bin/npm: No such file or directory
$ echo $PATH
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$
Ubuntu가 에서 npm을 찾는 이유는 무엇입니까 ~/bin/npm
? 우분투 11.10을 사용하고 있습니다. 질문이 우분투와 관련된 것인지 아닌지는 모르겠습니다. 필요한 경우 askubuntu로 이동할 수 있습니다.
PATH에서 ~/bin을 볼 수 있지만, 내가 이해하는 한 이것은 npm이 ~/bin에 존재했다면 그것을 사용했을 것이라는 의미일 뿐입니다. 그런데 bash는 왜 그곳에서 특별히 찾도록 고집합니까? 명령이 그것을 찾았 /usr/local/bin/npm
음에도 불구하고 왜 찾지 못합니까 ?which
답변1
실행 파일의 이전에 알려진 위치는 셸에 의해 해시될 가능성이 높습니다. 셸 캐시를 재설정하면 hash -r
문제가 해결됩니다.
전체 캐시를 재설정하지 않으려면 npm
사용을 위한 개별 항목을 삭제할 수 있습니다 hash -d npm
.