当我运行cabal install [pkg]
并且pkg是命令行可执行程序而不是库时,它经常会通过以下消息警告我:“警告:重新安装可能会破坏以下软件包”
我总是使用--force-reinstalls
选项继续。
但是由于我正在安装可执行文件而不是库,有没有办法运行cabal install
来隔离cabal沙箱中的构建过程,然后在~/.cabal/bin
中安装可执行文件?或者这是我需要为?
答案 0 :(得分:9)
我总是为我的工具创建一个沙箱,例如hoogle
,pointfree
,haddock
,ghc-mod
,hlint
,shake
,和stylish-haskell
等。只需按照以下步骤操作:
cabal sandbox init
的cabal沙箱cabal install [pkg1 [pkg2 ...]]
.cabal-sandbox/bin
文件夹复制到~/.cabal/bin/
文件夹。cabal sandbox delete
以删除您不再需要的非常大的沙箱。这些可执行文件通常是完全独立的,因此您可以针对它们在沙箱中请求的依赖项构建它们,然后将它们移动到您想要的位置。这绝对有助于保持系统范围内的安装清洁,并且没有冲突。