全局安装在沙箱中构建的程序

sve*_*son 5 haskell cabal cabal-install

在构建Haskell程序和库时,我一直在使用沙箱.但偶尔,我会构建一个我想在系统范围内安装的程序.似乎没有一种简单的方法来获取一个内置在沙盒中并将其安装在沙箱之外的程序.

bhe*_*ilr 1

如果二进制文件是静态链接的(在大多数情况下都是如此),那么您可以执行以下操作

> mkdir tools
> cd tools
> cabal sandbox init
> cabal install tool1 tool2
# Wait a long time
> cp .cabal-sandbox/bin/tool1 ~/.cabal/bin
> cp .cabal-sandbox/bin/tool2 ~/.cabal/bin
Run Code Online (Sandbox Code Playgroud)

在 Windows 上你必须做

> cp .cabal-sandbox\bin\tool1.exe %APPDATA%\Roaming\cabal\bin
> cp .cabal-sandbox\bin\tool2.exe %APPDATA%\Roaming\cabal\bin
Run Code Online (Sandbox Code Playgroud)

显然,您的路径上应该有您的用户 cabal 目录。

您的里程可能会有所不同,这取决于正在构建的可执行文件,因此对于某些人来说,做这类事情可能会更困难。不过,根据我的经验,这非常有效。我将它用于 ghc-mod、hlint、pointfree 等。