所以我尝试在 Ubuntu 10.04 上安装 Mercurial。首先我使用了 ppa repo,但得到了python路径错误,我放弃了。下一次尝试从源代码安装,一切顺利,只是找不到 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
非常感谢您的帮助!
答案1
Bash 维护着 中可执行文件位置的缓存$PATH
。您曾经hg
在 中/usr/bin
,并从该 shell 中运行它。现在您已经删除了/usr/bin/hg
。您需要告诉正在运行的 shell 忘记此位置:
hash hg
新的 shell 不会出现此问题,因为缓存不在 shell 实例之间共享。