找不到二进制文件,但 $PATH 中包含路径

flo*_*ish 9 mercurial path

所以我尝试在 Ubuntu 10.04 上安装 Mercurial。首先我使用了 ppa repo,但是遇到了pythonpath错误,我放弃了。下一次尝试从源代码安装,一切顺利,除了找不到 hg:

$ hg
-bash: /usr/bin/hg: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是, hg 安装在 /usr/local/bin/ 中:

$ which hg
/usr/local/bin/hg
Run Code Online (Sandbox Code Playgroud)

PATH 包含此目录,为什么找不到 hg?

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)

如果我使用完整路径执行 hg ,它会起作用:

$ /usr/local/bin/hg --version
Run Code Online (Sandbox Code Playgroud)

任何帮助真的很感激!

Gil*_*il' 9

Bash 在$PATH. 你必须hg/usr/bin一些点,并从外壳运行它。现在你已经删除了/usr/bin/hg. 您需要告诉正在运行的 shell 忘记此位置:

hash hg
Run Code Online (Sandbox Code Playgroud)

新的 shell 不会有这个问题,因为缓存不在 shell 实例之间共享。