2012-12-11 99 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