fragen stichworte

Kann binär nicht finden, aber Pfad in $ PATH enthalten

Also habe ich versucht, Mercurial auf Ubuntu 10.04 zu installieren. Zuerst habe ich das ppa-Repo verwendet, aber ich habe den Fehler pythonpath, den ich aufgegeben habe. Der nächste Versuch war die Installation aus dem Quellcode. Alles lief gut, außer dass hg:

nicht gefunden werden konnte
$ 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 Pfad 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ührt, funktioniert es:

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

Jede Hilfe wird sehr geschätzt!

antworten

Bash verwaltet einen Cache mit Positionen ausführbarer Dateien in $PATH. Sie hatten irgendwann hg in /usr/bin und liefen es von dieser Shell aus. Jetzt haben Sie /usr/bin/hg entfernt. 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 zwischen Shell-Instanzen geteilt wird.