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.