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

所以我试图在Ubuntu 10.04上安装Mercurial。 首先,我使用ppa回购,但得到了一个pythonpath错误,我放弃了。 接下来的尝试是从源代码安装,一切都很顺利,除了找不到hg:

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

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

 $ which hg /usr/local/bin/hg 

PATH包含这个目录,为什么没有findhg?

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

如果我用完整的path执行hg,它的工作原理是:

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

任何帮助真的很感激!

Bash维护$PATH中可执行文件的位置caching。 你在/usr/bin中有一些hg ,并从那个shell运行。 现在你已经删除了/usr/bin/hg 。 你需要告诉你的运行shell忘记这个位置:

 hash hg 

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