26

GHC/HP を完全に再インストールしたいとします。私は(何よりも迷信のために)以前のインストールから何でもすべてを削除したい. 実際に削除する必要があるもの (およびその場所) は?

編集:私はOSXを使用していますが、この情報が一般的に、すべてのシステムで利用可能かどうかもっと知りたいです。

Edit2:これまでのところ:

OSX:
/Library/Frameworks/GHC.framework/
~/.cabal/
/usr/bin/ -- シンボリックリンク

それに追加します (ここで定義されている「プレフィックス」に基づいて: http://www.vex.net/~trebla/haskell/sicp.xhtml#storage ):
prefix/lib/
prefix/share/
prefix/bin/
prefix /share/doc/
/usr (/local) /lib/[ghc-version]
/usr (/local) /share/doc/ghc/html/libraries/ -- ドキュメント
/usr (/local) /share/doc/ ghc/
/usr (/local) /bin
/var/lib/[ghc-version]
/etc/[ghc-version]
~/.ghc/

編集 3:
OS X:
~/Library/Haskell

Linux:
??

窓:
??

4

4 に答える 4

23

最近、OSXでHaskellプラットフォームを削除する必要がありました。ほとんどはアンインストーラーを介してクリーンアップされます:

sudo /Library/Frameworks/GHC.framework/Versions/Current/Tools/Uninstaller

これらは手動でクリーンアップする必要があります。

rm -r ~/.cabal
rm -r ~/.ghc
rm -r ~/Library/Haskell

または、

/Library/Haskell/doc/start.html

オプション付きのカスタムアンインストールコマンドがあります。

/Library/Haskell/bin/uninstall-hs

一般に、作業ディレクトリ内のアクティビティを次のように括弧で囲むことにより、任意のアクティビティ(インストーラー、...)によって作成されたファイルを文書化できます。

echo >timestamp
[activity]
sudo find -x / -newer timestamp -print >snapshot.txt
于 2011-08-09T12:37:41.507 に答える
14

2012年頃からOSXにHaskellプラットフォームをインストールしている場合は、

uninstall-hs

そしてそれが出力するものを注意深く読んでください。提供されているオプションを使用して、再度実行する必要があります。走る

uninstall-hs --help

その他のオプションについては。


以下は私の元の答えです。これはまだ機能しますが、多くのオプションを提供しておらず、少し「ハムフィスト」です。

警告:このスクリプトは極端です。GHCとCabalのカスタム構成ファイル、およびまだまたはにあるビルド済みの実行可能ファイルも削除されます。注意して; 何をしようとしているのかを確認します。バックアップがあります。スクリプターに注意してください!~/Library/Haskell~/.cabal

#!/bin/bash
set -x

sudo rm -rf /Library/Frameworks/GHC.framework
sudo rm -rf /Library/Frameworks/HaskellPlatform.framework
sudo rm -rf /Library/Haskell
rm -rf ~/.cabal
rm -rf ~/.ghc
rm -rf ~/Library/Haskell
find /usr/bin /usr/local/bin -type l | \
  xargs -If sh -c '/bin/echo -n f /; readlink f' | \
  egrep '//Library/(Haskell|Frameworks/(GHC|HaskellPlatform).framework)' | \
  cut -f 1 -d ' ' > /tmp/hs-bin-links
sudo rm -f `cat /tmp/hs-bin-links`

次のように、構成ファイルを保存して復元するための行を追加することをお勧めします。

mv ~/.cabal/config /tmp/cabal-config 2>/dev/null || true
mv ~/.ghc/gchi.conf /tmp/ghci-config 2>/dev/null || true

mkdir ~/.cabal
mkdir ~/.ghc
cp /tmp/cabal-config ~/.cabal/config 2>/dev/null || true
cp /tmp/ghci-config ~/.ghc/gchi.conf 2>/dev/null || true

rmこれらで線を括弧で囲みます。~/.cabal/configあなたが新しいものにアップグレードしているなら、あなたはあなたの古いものを望むか​​もしれないし、望まないかもしれませんが。

これは、現在のユーザーのホームディレクトリのみを扱うことに注意してください。すべてHaskellを使用する複数のユーザーアカウントがある場合は、他のアカウントもクリーニングする必要があります。(以下を含む行を繰り返し~ます。)

于 2011-09-25T02:50:43.557 に答える
2

私はOSX(Lion atm)を使用しています。/Library/Frameworks/GHC.framework/ に GHC があります (現在および以前のバージョン)。/usr/bin にもいくつかのシンボリック リンクがありますが、これらは新しいインストールに置き換えられます。

パッケージを (ローカルに) インストールするために cabal を使用した場合は、~/.cabal も消去する必要があります。最近の cabal がある場合は、「新しい」GHC バージョンのすべてのパッケージを cabal install world を使用して簡単に再インストールし、次のように GHC の以前のバージョンに一致するディレクトリを探すことができます。

for package in `ls ~/.cabal/lib/`; do 
   if [ ! -d ~/.cabal/lib/${package}/ghc-7.0.3 ]; then 
       echo $package; 
   else 
       echo "OK for $package"; 
   fi;
done 

これらは安全に削除できるはずです。

これが多少役立つことを願っています。

于 2011-07-30T20:48:21.253 に答える
2

uninstall-hsあなたのためにいくつかの仕事をします。いくらかわかりません。

于 2012-03-05T04:40:14.413 に答える