Why is my system only looking in /snap for binaries?
Olivia Zamora
I tried to use snap to install node. The package was stale. So, I snap remove'd that, and I installed node via apt from the nodesource PPA. Great:
$ node -v
v14.15.5However, when I try to use npm, I get the following error:
$ npm
bash: /snap/bin/npm: No such file or directoryThis is weird to me, since /usr/bin is on my $PATH and:
$ ls /usr/bin/npm
/usr/bin/npmWhat has snap done to my system's normal method of looking for binaries in $PATH?
Also, how do I fix this?
31 Answer
Your shell doesn't constantly search for binaries once it's found one-- to do so would be a waste of time in most cases. It caches the result. That bites hard if you end up removing a binary after it's already cached where it found it, though.
You can fix this by simply starting a new shell, or clearing the cache in an existing shell with hash -r.