[英]Everywhere that GHC/Haskell Platform installs
假设我想完全重新安装GHC / HP。 我想(尽可能多的迷信)删除以前的安装中的任何东西。 我实际需要删除什么(以及在哪里)?
编辑:我在OSX上,但是如果这些信息一般适用于所有系统,我会更好奇。
编辑2:到目前为止,我们有:
OSX:
/Library/Frameworks/GHC.framework/
〜/ .cabal /
/ usr / bin / - 符号链接
我将添加(基于此处定义的“前缀”: http : //www.vex.net/~trebla/haskell/sicp.xhtml#storage ):
前缀/ lib目录/
前缀/股/
前缀/斌/
前缀/共享/ 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版本]
的/ etc / [GHC版本]
〜/ .ghc /
编辑3:
OS X:
〜/库/哈斯克尔
Linux的:
??
视窗:
??
最近不得不在OS X上删除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
如果您从2012年开始在OS X上安装了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,那么其他帐户也需要清理。 (重复涉及~
的行。)
我在OSX(Lion atm)。 我在/Library/Frameworks/GHC.framework/(当前和以前的版本)中有GHC。 / usr / bin中还有一些符号链接,但这些符号链接将被新安装替换。
如果您使用cabal(本地)安装包,您也可能想要清除〜/ .cabal。 如果你有一个最近的cabal,你可以使用cabal install world轻松地重新安装'new'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
这些应该是安全的删除。
希望这对你有所帮助。
uninstall-hs
为你做了一些工作; 我不知道多少钱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.