Ich kann keine Binärdatei finden, aber der Pfad ist in $ PATH enthalten

9

Also habe ich versucht, Mercurial unter Ubuntu 10.04 zu installieren. Zuerst habe ich das ppa-Repo verwendet, aber einen Pythonpath- Fehler erhalten, den ich aufgegeben habe. Der nächste Versuch war die Installation von der Quelle, alles lief gut, außer es kann hg nicht finden:

$ hg
-bash: /usr/bin/hg: No such file or directory

Hg ist jedoch in / usr / local / bin / installiert:

$ which hg
/usr/local/bin/hg

Der PATH enthält dieses Verzeichnis. Warum wird hg nicht gefunden?

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Wenn ich hg mit dem vollständigen Pfad ausführe, funktioniert es:

$ /usr/local/bin/hg --version

Jede Hilfe wird sehr geschätzt!

bodenständig
quelle

Antworten:

9

Bash verwaltet einen Cache mit Speicherorten für ausführbare Dateien in $PATH. Sie hatte hgin /usr/bineinem bestimmten Zeitpunkt, und es lief aus dieser Schale. Jetzt hast du entfernt /usr/bin/hg. Sie müssen Ihrer laufenden Shell mitteilen, dass sie diesen Speicherort vergessen soll:

hash hg

Eine neue Shell hätte dieses Problem nicht, da der Cache nicht von Shell-Instanzen gemeinsam genutzt wird.

Gilles 'SO - hör auf böse zu sein'
quelle
Vielen Dank!! So einfach, aber es dauert Stunden, um herauszufinden, ob Sie in derselben Shell bleiben.
Floorish