2012-12-11 7 views
5

私はHaskellのプラットフォーム(here is why)を再インストールし、Haskellのプラットフォームを再インストールした後に私が取得:再インストール後に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シェルは、以前使用したコマンドへのパスをキャッシュします。 (それはシェルの外部だとちょうどPATH照会ので)、しかしtypeは、この状況を明らかにするbash -internalコマンドであり、これを表示されませんwhich ghcを使用して、そのtype ghc

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

修正のようなものが表示されますは簡単だ。新しいシェルを開始するか(ゼロから始めます)、hash -rと言ってキャッシュをクリアしてください。

+0

なぜ「which ghc」が役に立たなかったのかを説明する+1 –

1

あなたの$PATHにあるあなたのディレクトリの1つに、存在しなくなった/usr/local/bin/ghcを指し示す実行可能なシンボリックリンクがあります。調べるには、bashにwhich ghcと入力してください。結果が実際にシンボリックリンクであれば、単純に削除してください。カスタムスクリプトの場合は、後で必要になった場合に備えて、削除する代わりに名前を変更することができます。

+0

ghcが/ usr/bin/ghcを指しています – Drew

+1

必須のコマンドは 'type ghc'です。あなたのシェルには古い 'ghc'パスがキャッシュされているかもしれません。 'bash'では、' hash -r'を実行してキャッシュをクリアすることができます。あるいは、新しいシェルを起動することもできます。 – kosmikus

+0

私の問題を解決した@kosmikus、ありがとう!あなたがその答えをしたいなら、私はそれを受け入れるでしょう。 – Drew

関連する問題