我有一个软件应用程序,可以用stack
构建和安装。我想为Linux和Mac提供一个二进制包。为此,我正在考虑nix
,因为除此之外,它可以用于Linux和Mac。这将为我节省维护两种包装类型的麻烦。从堆栈项目生成Nix包
阅读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手册有一个名为“如何使用堆栈构建Haskell项目”的章节https://nixos.org/nixpkgs/manual/#how-to-build-a-haskell-project-using-stack。使用'haskell.lib.buildStackProject'而不是'stdenv.mkDerivation'。 – MarcDefiant