cabal通过沙箱从Hackage安装可执行文件?

时间:2014-12-03 14:42:00

标签: haskell cabal

当我运行cabal install [pkg]并且pkg是命令行可执行程序而不是库时,它经常会通过以下消息警告我:“警告:重新安装可能会破坏以下软件包”

我总是使用--force-reinstalls选项继续。

但是由于我正在安装可执行文件而不是库,有没有办法运行cabal install来隔离cabal沙箱中的构建过程,然后在~/.cabal/bin中安装可执行文件?或者这是我需要为?

编写自定义bash脚本的东西

1 个答案:

答案 0 :(得分:9)

我总是为我的工具创建一个沙箱,例如hooglepointfreehaddockghc-modhlintshake,和stylish-haskell等。只需按照以下步骤操作:

  • 在您选择的位置创建一个cabal sandbox init的cabal沙箱
  • 运行cabal install [pkg1 [pkg2 ...]]
  • 完成后,将所需的可执行文件从.cabal-sandbox/bin文件夹复制到~/.cabal/bin/文件夹。
  • 运行cabal sandbox delete以删除您不再需要的非常大的沙箱。

这些可执行文件通常是完全独立的,因此您可以针对它们在沙箱中请求的依赖项构建它们,然后将它们移动到您想要的位置。这绝对有助于保持系统范围内的安装清洁,并且没有冲突。