我正在尝试在 Ubuntu 16.04 上使用 Nix。
\n\n设置完成后,我尝试构建以下表达式:
\n\nlet\n pkgs = import <nixpkgs> {};\n stdenv = pkgs.stdenv;\nin rec {\n scalaEnv = stdenv.mkDerivation rec {\n name = "scala-env";\n shellHook = \'\'\n alias cls=clear\n \'\';\n CLANG_PATH = pkgs.clang + "/bin/clang";\n CLANGPP_PATH = pkgs.clang + "/bin/clang++";\n buildInputs = with pkgs; [\n stdenv\n sbt\n openjdk\n boehmgc\n libunwind\n re2\n clang\n zlib\n ammonite\n ];\n };\n} \nRun Code Online (Sandbox Code Playgroud)\n\n但这以错误结束:
\n\n*** Downloading \xe2\x80\x98https://cache.nixos.org/nar/022mrfa98hxccsn9znr9z9s7sh3kfc5wzvgfx45x5drcz9wq3wyv.nar.xz\xe2\x80\x99 to \xe2\x80\x98/nix/store/y1scdckyi7ij30771rl1pdq4s9gj683a-sbt-1.0.1\xe2\x80\x99...\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 50.0M 100 50.0M 0 0 12.5M 0 0:00:04 0:00:04 --:--:-- 10.7M\n\nbuilding path(s) \xe2\x80\x98/nix/store/9xykkj5z6szrwamji3gshylxca092nv9-scala-env\xe2\x80\x99\nunpacking sources\nvariable $src or $srcs should point to the source\nbuilder for \xe2\x80\x98/nix/store/wg0kd6z5kik46xza5xsdqw4yf10ifksv-scala-env.drv\xe2\x80\x99 failed with exit code 1\nerror: build of \xe2\x80\x98/nix/store/wg0kd6z5kik46xza5xsdqw4yf10ifksv-scala-env.drv\xe2\x80\x99 failed\nThe command \'/bin/sh -c $nixenv && nix-build scala-default.nix -A scalaEnv\' returned a non-zero code: 100\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,这/bin/sh -c $nixenv只是尝试设置 nix 环境 - 如果有帮助,我可以发布更多详细信息。
我过去在另一个系统上构建了一个非常相似的表达式 - 我不确定这个系统上可能出了什么问题 - 如何调试这个?
\n您应该查看错误消息:
variable $src or $srcs should point to the source
Run Code Online (Sandbox Code Playgroud)
您可能可以在 nixpkgs 存储库中搜索该错误消息,以准确找到它的生成位置。
发生的情况是您没有提供构建器 shell 脚本,因此 nixpkgs 只是试图根据您的其他参数来猜测如何构建您的项目mkDerivation。但它无法猜测如何构建你的东西,因为你没有给它一些源文件来编译。我建议您编写类似builder = ./builder.sh添加构建器脚本的内容,然后在该文件中放入用于构建软件的命令。
| 归档时间: |
|
| 查看次数: |
4517 次 |
| 最近记录: |