Dan*_*ton 1 haskell ghc cabal-install
我一直在使用的最新cabal-install(0.13.3,来自darcs repo)很不错; 它会告诉您何时可以通过重新安装来破坏GHC安装.我想知道的是:假设一个人cabal install foo 会重新安装会破坏我的GHC.如果我cabal-dev install foo反而会怎么样?我能避免打破GHC吗?我真的可以foo在cabal-dev沙箱中使用该软件包,还是只是一个破碎的沙箱?
示例:yesod,GHC 7.4.1,cabal-dev 0.9由github源码构建,Cabal 1.14.0库.
只是为了澄清,如果我理解你的话,你不会在任何一种情况下打破GHC.我相信你指的是安装一个包,然后重新安装另一个包的一个底层依赖项,因此打破了其他包的依赖链并阻止它在使用时正常工作/编译.简单地从您的主文件夹中删除.ghc并重新进行cabal安装通常可以解决这个问题,尽管这是一种非常痛苦的方式.
当您使用cabal-dev时,所有cabal安装步骤和ghc-pkg注册步骤都在本地沙箱环境中完成.您的全局/用户ghc软件包根本没有触及.由于您通常会为每个项目实例化一个cabal-dev沙箱,因此通常不会发生上述冲突.
要了解您的问题 - 它完全取决于特定cabal-dev沙箱中已安装的内容.如果没有冲突,它就不会破坏任何东西.如果您强制使用--reinstall,则可能必须--reinstall使用本地cabal-dev沙箱中依赖于刚刚重新安装的软件包的任何软件包.
在任何情况下,您的GHC安装本身都不会中断(或以任何方式进行更改),您可以始终rm -rf cabal-dev在项目文件夹下重做cabal-dev install.
希望这可以帮助.