GHC/Haskell平台安装的所有地方

ami*_*dfv 26 haskell ghc haskell-platform

假设我想完全重新安装GHC/HP.我想(尽可能多的迷信)删除以前的安装中的任何东西.我实际需要删除什么(以及在哪里)?

编辑:我在OSX上,但是如果这些信息一般适用于所有系统,我会更好奇.

编辑2:到目前为止,我们有:

OSX:
/Library/Frameworks/GHC.framework/
〜/ .cabal/
在/ usr/bin中/ -符号链接

我将添加(基于此处定义的"前缀":http://www.vex.net/~trebla/haskell/sicp.xhtml#storage):
前缀/ lib/
前缀/共享/
前缀/ bin/
前缀/ share/doc/
/ usr(/ local)/ lib/[ghc-version]
/ usr(/ local)/ share/doc/ghc/html/libraries/ - documentation
/ usr(/ local)/ share/doc/ghc/
/ usr(/ local)/ bin
/ var/lib/[ghc-version]
/ etc/[ghc-version]
〜/ .ghc /

编辑3:
OS X:
〜/ Library/Haskell

Linux:
??

Windows:
??

pit*_*ess 22

最近不得不在OS X上删除Haskell平台.大多数都通过卸载程序清理:

sudo /Library/Frameworks/GHC.framework/Versions/Current/Tools/Uninstaller
Run Code Online (Sandbox Code Playgroud)

这些必须手动清理:

rm -r ~/.cabal
rm -r ~/.ghc
rm -r ~/Library/Haskell
Run Code Online (Sandbox Code Playgroud)

或者,如中所述

/Library/Haskell/doc/start.html
Run Code Online (Sandbox Code Playgroud)

现在有一个带选项的自定义卸载命令,

/Library/Haskell/bin/uninstall-hs
Run Code Online (Sandbox Code Playgroud)

通常,可以通过将工作目录中的活动括起来来记录由任何活动(安装程序,...)创建的文件

echo >timestamp
[activity]
sudo find -x / -newer timestamp -print >snapshot.txt
Run Code Online (Sandbox Code Playgroud)

  • 第二个选项`uninstall-hs`现在似乎是最好的答案. (2认同)

Mtn*_*ark 14

如果您从2012年开始在OS X上安装了Haskell平台,那么就运行吧

uninstall-hs
Run Code Online (Sandbox Code Playgroud)

并仔细阅读它输出的内容.您需要使用它提供的选项再次运行它.跑

uninstall-hs --help
Run Code Online (Sandbox Code Playgroud)

了解更多选择.


下面是我的原始答案,它仍然有效,但没有提供尽可能多的选项,有点"火腿拳击":

警告:此脚本极端.它甚至会删除 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`
Run Code Online (Sandbox Code Playgroud)

您可能需要添加行以保存并恢复配置文件,如:

mv ~/.cabal/config /tmp/cabal-config 2>/dev/null || true
mv ~/.ghc/gchi.conf /tmp/ghci-config 2>/dev/null || true
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

rm用这些来支撑线条.~/.cabal/config如果你升级到新的东西,你可能会或可能不想要你的旧.

请注意,这仅处理当前用户的主目录.如果您有多个用户帐户都使用Haskell,那么其他帐户也需要清理.(重复涉及的行~.)


小智 2

我使用的是 OSX (Lion atm)。我在 /Library/Frameworks/GHC.framework/ (当前和以前的版本)中有 GHC。/usr/bin 中还有一些符号链接,但这些符号链接将被新安装替换。

如果您使用 cabal (本地)安装软件包,您可能还需要清理 ~/.cabal。如果您有最新的 cabal,您可以使用 cabal install world 轻松地重新安装“新”GHC 版本的所有软件包,然后查找与您之前的 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 
Run Code Online (Sandbox Code Playgroud)

这些应该可以安全删除。

希望这对您有所帮助。