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

Modified on: Tue, 05 Nov 2019 10:40:02 +0800

所以我尝试在Ubuntu 10.04上安装Mercurial。
首先我使用了ppa repo,但得到了一个pythonpath错误,我给了它在上面。
接下来尝试从源代码安装,一切顺利,除了它找不到hg:

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

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

$ which hg
/usr/local/bin/hg

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

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

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

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

非常感谢任何帮助!

最佳答案

Bash在$PATH中维护可执行文件位置的缓存。您在某些时候在hg中有/usr/bin,并从该shell运行它。现在你已经删除了/usr/bin/hg。您需要告诉正在运行的shell忘记这个位置:

hash hg

新shell不会出现此问题,因为shell实例之间不共享缓存。

作者:Gilles

相关问答

添加新评论