构建一个nix包

时间:2018-01-09 04:55:29

标签: nix nixos

我正在尝试为数据库数据库构建一个nix包。

这是迄今为止的推导:

See system requirements

网址:

{ stdenv, fetchurl, unzip }:                                                                                                                                                                  

stdenv.mkDerivation rec {                                                                                                                                                                     
  name    = "datomic-${version}";                                                                                                                                                             
  version = "0.9.5561";                                                                                                                                                                       

  src = fetchurl {                                                                                                                                                                            
    url    = "https://my.datomic.com/downloads/free/${version}";                                                                                                                              
    sha256 = "145c3yx9ylmvvxmwgk2s14cdirxasdlglq3vs9qsnhyaz5jp1xjh";                                                                                                                          
  };                                                                                                                                                                                          
}                                                                                                                                                                                             

是一个zip文件,没有zip扩展名,因此https://my.datomic.com/downloads/free/0.9.5561 会抛出以下错误:

fetchurl

有关如何获取此源代码的任何建议,也许还有* .zip扩展名,以便它可以自行解压缩?

2 个答案:

答案 0 :(得分:1)

默认情况下使用的通用构建器具有可配置的阶段(source)。

您可以查看unpack phase,其中您可以指定解压缩下载源的命令(unpackCmd可能正是您想要的那样)。

或者看起来您只需指定fetchurl的名称参数,并将下载的文件设为' * .zip'姓名(见name argument)。

答案 1 :(得分:0)

似乎nixpkgs附带的通用构建器脚本并不知道如何处理下载。您可以尝试使用自定义构建器shell脚本。只需在builder = ./builder.sh;之后写version之类的内容,然后在builder.sh中编写一个shell脚本。脚本应该是这样的:

source $stdenv/setup

unzip $src

# more stuff

您必须通过一次修复一条错误消息来自行了解详细信息。

P.S。 Datomic不是开源的,因此我没有名为src的变量。