2012-12-11 68 views
5

我刚刚重新安装哈斯克尔平台(here is why),并重新安装哈斯克尔平台后,我得到:Bash重新安装后找不到ghc?

Drews-MacBook-Pro:Blokus-AI drewgross$ ghc 
-bash: /usr/local/bin/ghc: No such file or directory 

任何想法,为什么?我怀疑这是与我的道路或类似的东西有关,但我还没有发现任何奇怪的东西。我可以直接使用GHC:

Drews-MacBook-Pro:Blokus-AI drewgross$ /usr/bin/ghc 
ghc: no input files 
Usage: For basic information, try the `--help' option. 

和/ usr/bin中/在我的路径:

Drews-MacBook-Pro:Blokus-AI drewgross$ echo $PATH 
/Users/drewgross/.rvm/gems/ruby-1.9.3-p327/bin:/Users/drewgross/.rvm/gems/[email protected]/bin:/Users/drewgross/.rvm/rubies/ruby-1.9.3-p327/bin:/Users/drewgross/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin 

还有什么我能做什么?

+0

符号链接'/ usr/local/bin/ghc'到'/ usr/bin/ghc'? –

+0

这听起来像一个丑陋的黑客,虽然我认为它会工作,我宁愿避免像这样的东西 – Drew

回答

9

bash shell将高速缓存到您以前使用的命令的路径。使用which ghc不显示这个(因为它是外部的外壳,只是查询PATH),但typebash -internal命令,将显示这种状况,使type ghc会显示类似

ghc is hashed (/usr/local/bin/ghc) 

的修复简单。要么启动一个新的shell(从头开始),要么通过说hash -r来清除缓存。

+0

+1解释为什么'哪个ghc'没有帮助 –

1

您的$PATH中的一个目录中有一个可执行的符号链接,指向不再存在的/usr/local/bin/ghc。要了解详情,请在bash中键入which ghc。如果结果确实是符号链接,只需将其删除即可。如果是自定义脚本,您可能需要重命名它,而不是删除,以备日后需要时使用。

+0

ghc指向/ usr/bin/ghc – Drew

+1

基本命令是'键入ghc'。你的shell可能会缓存旧的'ghc'路径。在'bash'中,您可以使用'hash -r'来清除缓存。或者你可以开始一个新的外壳。 – kosmikus

+0

@kosmikus解决了我的问题,谢谢!如果你想做出答案,我会接受它。 – Drew