Haskell 程序内置沙盒的全局安装

Haskell 程序内置沙盒的全局安装,haskell,cabal,cabal-install,Haskell,Cabal,Cabal Install,在构建Haskell程序和库时,我一直在使用沙盒。但偶尔,我会构建一个我想在系统范围内安装的程序。似乎没有一种简单的方法可以将构建在沙盒中的程序安装到沙盒之外。如果二进制文件是静态链接的(在大多数情况下是这样),那么您可以执行以下操作 > mkdir tools > cd tools > cabal sandbox init > cabal install tool1 tool2 # Wait a long time > cp .cabal-sandbox/bin/

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

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

> 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
显然,您的路径上应该有您的用户阴谋集团目录

您的里程数可能会有所不同,这取决于正在构建的可执行文件,因此对于某些人来说,执行此类操作可能会更加困难。但根据我的经验,这很有效。我将其用于ghc mod、hlint、pointfree和其他应用程序。

链接Idris到路径文件夹 如果你在linux上,只需在路径的某个地方放置一个符号链接,我有一个
~/bin
。因此,这与Bheklillr提到的相同,只是我通常从github获得开发版本:

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

我当前要安装的程序是idris,它附带大量额外的东西,如库。我不想去想如何手工复制所有的数据。谢谢。这是一个非常简单实用的解决方案。尽管我还是希望阴谋集团能提供一个解决问题的方法。