我在构建Haskell程序和库时经常使用沙盒。但偶尔会有一些想要系统范围内安装的程序。似乎没有一种简单的方法可以将在沙盒中构建的程序安装到沙盒之外。
我在构建Haskell程序和库时经常使用沙盒。但偶尔会有一些想要系统范围内安装的程序。似乎没有一种简单的方法可以将在沙盒中构建的程序安装到沙盒之外。
如果你使用的是 Linux,只需要在路径中放置一个符号链接即可 - 我通常会在 ~/bin
中创建。所以这与 bheklilr 提到的方法相同,只是我通常从 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 [idris路径]/.cabal-sandbox/bin/idris
命令。如果您需要,也可以链接其他可执行文件,但只链接此文件就足以使用idris了。
> 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
> 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等工具。