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

时间:2015-05-30 11:52:39

标签: haskell cabal cabal-install

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

2 个答案:

答案 0 :(得分:3)

Idris 链接到PATH文件夹

如果您使用的是Linux,就像在路径中放置符号链接一样简单 - 我有一个~/bin。所以它和bheklilr一样只提到我通常从github获得dev-version:

git clone git://github.com/idris-lang/Idris-dev idris
cd idris
cabal sandbox init
cabal update
cabal install --dependencies only
make

在此之后我转到~/bin并使用ln -s [path to idris]/.cabal-sandbox/bin/idris - 如果您愿意,您也可以链接其他可执行文件,但这个应该足以使用 idris < / p>

答案 1 :(得分: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

在Windows上你必须做

> cp .cabal-sandbox\bin\tool1.exe %APPDATA%\Roaming\cabal\bin
> cp .cabal-sandbox\bin\tool2.exe %APPDATA%\Roaming\cabal\bin

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

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