我有一個軟件應用程序,可以用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