【发布时间】:2017-10-21 07:23:14
【问题描述】:
我有一个可以使用stack 构建和安装的软件应用程序。我也想为 Linux 和 Mac 提供一个二进制包。为此,我正在考虑nix,因为它可以在Linux 和Mac 中使用。这将省去我必须维护两种包类型的麻烦。
在阅读了nix 包是如何定义的之后,我希望可以使用如下配置构建一个基于stack 的项目:
{ stdenv, fetchurl, stack }: # we need to depend on stack
stdenv.mkDerivation {
name = "some-haskell-package-0.1";
builder = ./builder.sh; # here we would call `stack install`
src = fetchurl { # ...
};
}
查看网上可用的资源,我找不到任何关于如何做到这一点的描述。我不知道这是否意味着stack 和nix 不打算以这种方式使用。
我在手册中唯一能找到的是how stack can use nix 和一个stack to nix 转换工具。
我也对多平台打包的替代方案持开放态度。
【问题讨论】:
-
Nix 手册中有一个名为“如何使用 Stack 构建 Haskell 项目”nixos.org/nixpkgs/manual/… 的部分。使用
haskell.lib.buildStackProject而不是stdenv.mkDerivation。
标签: haskell package-managers haskell-stack nix