
Ich versuche zu bekommennpmzu arbeiten. Dabei habe ich anscheinend zwei Versionen davon installiert: Eine beschädigte, die in ~/bin installiert ist, und eine andere, die ich gerade kompiliert und ausgeführt habe, make install
um sie in zu speichern /usr/local/bin/npm
.
Also habe ich den gesamten Ordner ~/bin nach ~/old/bin verschoben ... aber beim Ausführen npm
sucht das System immer noch in ~/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
$
Was veranlasst Ubuntu, in nach npm zu suchen ~/bin/npm
? Ich verwende Ubuntu 11.10. Ich weiß nicht, ob die Frage Ubuntu-spezifisch ist oder nicht, sie kann bei Bedarf nach Askubuntu verschoben werden.
Ich sehe zwar ~/bin im PATH, aber soweit ich das verstehe, bedeutet das nur, dass npm es verwendet hätte, wenn es in ~/bin vorhanden gewesen wäre ... aber warum besteht Bash darauf, speziell dort danach zu suchen? Warum findet es es nicht /usr/local/bin/npm
, obwohl der which
Befehl es findet?
Antwort1
Der bisher bekannte Speicherort der ausführbaren Datei wird wahrscheinlich von der Shell gehasht. Das Zurücksetzen des Cache der Shell hash -r
sollte das Problem beheben.
Wenn Sie nicht den gesamten Cache zurücksetzen möchten, können Sie die einzelnen Einträge für npm
die Verwendung löschen hash -d npm
.