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!

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.


Vielen Dank!! So einfach, aber es dauert Stunden, um herauszufinden, ob Sie in derselben Shell bleiben.
Floorish
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.