前回の入れ方はなかったことに
この方法はやっぱなしで。再インストール時に若干面倒なことになったので、もう少しちゃんと入れることにします。
今回は、前回の方法(つまり、./configureとmake installで普通に入れた方法)で入れたghcを消して、ちゃんとした方法で入れなおします。
まずはghc-7.8.3を綺麗に消す
GHCのサイトから7.8.3のMac用バイナリをダウンロードして中身を見てみます。するとconfigureに
By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'.
て事なので、binとlibにしかインストールしないようです。
見てみると:
/usr/local/bin
$ ls -l | grep ghc | grep -v arm | grep -v i386 lrwxr-xr-x 1 root admin 9 Jan 20 2015 ghc -> ghc-7.8.3 -rwxr-xr-x 1 root admin 262 Jan 20 2015 ghc-7.8.3 lrwxr-xr-x 1 root admin 13 Jan 20 2015 ghc-pkg -> ghc-pkg-7.8.3 -rwxr-xr-x 1 root admin 294 Jan 20 2015 ghc-pkg-7.8.3 lrwxr-xr-x 1 root admin 10 Jan 20 2015 ghci -> ghci-7.8.3 -rwxr-xr-x 1 root admin 66 Jan 20 2015 ghci-7.8.3 lrwxr-xr-x 1 root admin 17 Jan 20 2015 haddock -> haddock-ghc-7.8.3 -rwxr-xr-x 1 root admin 253 Jan 20 2015 haddock-ghc-7.8.3 lrwxr-xr-x 1 root admin 12 Jan 26 2015 runghc -> runghc-7.8.3 -rwxr-xr-x 1 root admin 245 Jan 20 2015 runghc-7.8.3 lrwxr-xr-x 1 root admin 6 Jan 26 2015 runhaskell -> runghc
で、
/usr/local/lib
$ ls -l | grep ghc | grep -v arm | grep -v i386 drwxr-xr-x 44 username admin 1496 Jan 20 2015 ghc-7.8.3
てことなのでこれらを全部削除します。GHC iOSやってたのでarmとかi386とか用のコンパイラも入っているのですが、それらはきちんと避けて消しましょう。
/usr/local/libで
$ sudo rm -rf ghc-7.8.3
で、/usr/local/binで
$ sudo rm ghc ghc-7.8.3 ghc-pkg ghc-pkg-7.8.3 ghci ghci-7.8.3 haddock haddock-ghc-7.8.3 runghc runghc-7.8.3 runhaskell
です。さらに
- ~/.ghc
- ~/.cabal
も全て消してしまいましょう。
$ cd ~ $ sudo rm -rf .cabal $ sudo rm -rf .cabal
これでアンインストールは完了です。
$ ghc bash: ghc: command not found $ cabal bash: cabal: command not found
ghcもcabalも使えなくなりました。
ghcの最新版をインストール
先ほど7.8.3のconfigureで見つけたものをもう一度見てみると
By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'.
ということで--prefixをつけるとその場所にインストールしてくれるようですね。binとlibに散らばると面倒なので、このprefixをつけて全て一箇所にインストールしましょう。次に再インストールするときはそのディレクトリと~/.ghc, ~/.cabalだけを消せば全て綺麗に入れなおしができます…とこちらで学びました:
実際にインストールしてみる
インストールを始めましょう。アーカイブをダウンロードして解凍します。
$ curl -O http://downloads.haskell.org/~ghc/7.10.2/ghc-7.10.2-x86_64-apple-darwin.tar.xz $ tar -xvzf ghc-7.10.2-x86_64-apple-darwin.tar.xz $ cd ghc-7.10.2
ここからが公式のドキュメントと少し変わるところです。
./configure --prefix=/usr/local/ghc-7.10.2
としてインストール先を指定します。そして
$ make install
でインストールしましょう。adminのグループユーザであればsudoはいらないんじゃないかな…(多分)。とにかくこれでうまくはいりました。 パスを通しましょう。
export PATH="/usr/local/ghc-7.10.2/bin:$PATH"
を~/bash_profileかどっかに追加しておきます。新しいセッションを立ち上げるかsourceしてPATHを追加します。
$ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.10.2
アップグレード完了です。ダウンロードしたアーカイブとか展開したディレクトリとかを消しておしまいです。
cabalをインストール
追いかけてcabalをインストールします。
$ curl -O https://hackage.haskell.org/package/cabal-install-1.22.6.0/cabal-install-1.22.6.0.tar.gz $ tar -xzf cabal-install-1.22.6.0.tar.gz $ cd cabal-install-1.22.6.0 $ ./bootstrap.sh $ cabal update
必要があればcabal install cabala-install
しておきましょう。
他に必要なライブラリやユーティリティをインストールする
$ cabal install happy $ cabal install hlint
これで完了です…が
ghc-modをまだ入れていません。なので、次はghc-modをインストールします。これがすこし一筋縄ではいかない模様です。