问题标签 [nixpkgs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nixos - 在我的存储库中实现覆盖
我想要的是
https://nixos.org/nixpkgs/manual/#sec-pkg-overrideAttrs文档overrideAttrs
,它可以与top-level/all-packages.nix
.
所以我希望能够在我自己的 nixpkgs 覆盖中使用 overrideAttrs!
编码
问题
但问题是评估AAA
不起作用:
相比之下,评估helloWithDebug
作品:
暗示
在 nixpkgs 我看到:
lib/customisation.nix
用于lib/default.nix
其中我还不能说它是在哪里注入的。
破解nixpkgs
查看堆栈,我刚刚将中断代码添加到lib/customisation.nix
:
nix - perlPackages 的 nix-shell
问题
我想玩一个名为 perl 的包Mail::SPF
,但有一个 Build.PL 问题。现在我想在运行buildPhase
.
对于基于 c/c++ 的项目,这运行良好,但对于 perl 它失败了:
那我做错了什么?
nix-env
nix - nix-build nix-generate-from-cpan:表达式不计算为派生
我正在尝试使用nix-generate-from-cspan安装sqitch
从nix-generate-from-cpan App::Sqitch DBD::Pg
,我制作了这个文件:
但运行nix-build -E 'with import <nixpkgs> { }; callPackage ./sqitch.nix'
给出了这个错误:
为了调试,我试过nix-instantiate --eval --expr 'with import <nixpkgs> { }; callPackage ./sqitch.nix'
了,它给出了:
所以我尝试nix-build -E 'with import <nixpkgs> { }; callPackage callPackage ./sqitch.nix'
了,但它仍然给出同样的错误,并nix-instantiate --eval --expr 'with import <nixpkgs> { }; callPackage callPackage ./sqitch.nix'
给出:
这对我没有多大帮助。
nix - 如何获取更新的 Nixpkgs stdenv 版本来为“libav”设置 NIX_CFLAGS/NIX_LDFLAGS?
较新的 Nixpkgs 版本的 stdenv 无法为包设置 NIX_CFLAGS/NIX_LDFLAGS libav
,这在旧版本中有效。我在做什么汪?
以下脚本说明了该问题。它使用不同版本的 stdenv 运行多个构建,并打印和buildInputs = [ libav ];
的各自值:NIX_LDFLAGS
NIX_CFLAGS_COMPILE
输出:
nix - 如何调试自定义 nix 文件的 nix-build 错误?
我正在尝试在 Ubuntu 16.04 上使用 Nix。
设置后,我尝试构建以下表达式:
但这以错误结束:
请注意,这/bin/sh -c $nixenv
只是尝试设置 nix 环境 - 如果有帮助,我可以发布更多详细信息。
我过去在另一个系统上构建了一个非常相似的表达式——我不确定这个系统会出现什么问题——如何调试这个?
nix - Nix 的“callPackage”如何调用没有省略号定义的函数?
要调用使用集合解构的 Nix 函数,您需要向它传递一个具有所需键的集合,不多也不少:
例外情况是函数的参数列表末尾包含省略号:
但是,nixpkgs中的大多数包都包含一个文件,该default.nix
文件包含一个未使用此省略号定义的函数。然而,不知何故,当您使用 时callPackage
,它设法调用这些函数并仅将它们需要的参数传递给它们。这是如何实施的?
nix - 对于独立的 nix 表达式,构建器脚本应该位于哪里?
我有一个 nix 表达式文件 ( .nix
) 和一个 shell 脚本生成器,指定如下:
./my-builder.sh: No such file or directory
当我跑步时nix-build ./my-env.nix
;nix 表达式文件和构建器脚本并排放置在我的主目录中。
我的意图是使用这个 nix 表达式文件来准备一个环境nix-build
,然后在我想使用它时实际快速运行环境(使用nix-shell
)。
编辑:我只是注意到nix-shell ./ my-env.nix
效果很好;到目前为止,我实际上并没有构建任何东西,所以我可能应该省略builder
.
编辑#2:我的具体示例如下:
这一行将nix 表达式和构建器放在同一个目录中。另一行用于nix-shell
准备环境,但我假设nix-build
可以使用类似的命令(特别是如果想要安装自定义包作为环境的一部分,但在 Nix 中这可能不是很惯用)
解决方案
围绕建造者路径的报价显然是禁止的。我最终遇到了其他问题,并将其拼凑起来最终让事情运行:
docker - 如何在 nixpkgs 中正确配置 OpenJDK 应用程序的字体?
当我使用 nixpkgs 环境在 Docker 中运行 IntelliJ 时,我在 GUI 中看到很多缺失的字符:
一个可能不相关的问题是选择文本的行为(当可选择时)似乎改善了这种情况 - 请参阅所附屏幕截图中从第二张图像到第三张图像的过渡。
我有一个相对容易重现的例子(假设一个有 docker 可用)。我没有直接在 NixOS 上测试过这个,但可能必须在接下来尝试排除问题:我当前的设置基于kurron/docker-intellij 的设置,它没有这个问题(我的和他的最终都是基于在同一个 Ubuntu 16.04 docker 映像上),这让我相信这是 nixpkgs 中的 OpenJDK 中的一个问题,或者是 nixpkgs X/fonts 和使用的 Ubuntu 基本系统之间的一些不良交互。
要重现,您现在可以忽略 README,只需执行以下操作:
请注意,idea.sh
运行xhost +
并执行一些卷挂载,因此如果您担心,请在运行前检查。
在同一个容器中没有字体问题的情况下似乎可以工作:
gedit
(不涉及Javanix-env -i gedit
:)- JDiskReport:(涉及java - 字体工作但看起来不太好,所以可能是一个单独的问题);下载
wget
,解压unzip
,运行java -jar ...
我认为 IntelliJ 仍然基于 Swing - 但最近没有看到任何对此的确认。如果是这样,我可以做更有针对性的测试。
nix - 如何从 nix-shell 使用的 nix 表达式中的 nixpkgs 派生中获取名称?
我正在编写一个 .nix 表达式,主要由 .nix 使用nix-shell
。我不知道该怎么做。请注意,这不在 NixOS 上,但我认为这不是很相关。
我正在查看的特定示例是我想获得这个与版本相关的名称,如下所示:
我的 nix 表达式如下:
我已经注释掉了设置PATH
,因为它取决于进入idea_name
-let
子句。作为一个有趣的旁注,如果我不加注释,这不会失败,但是在执行时会导致一个非常奇怪的错误,因为nix-shell
not able to execute bash
。我也尝试过更简单的情况,let
idea_name = pkgs.jetbrains.idea-ultimate.name;
但后来idea_name
在设置中使用时失败,PATH
因为idea_name
最终未定义。
更新:
我开始探索nix-instantiate
,但兴趣的推导似乎是空的:
nix - 如何让派生不与 Nix 中的派生环境发生冲突?
我在尝试构建一个环境时遇到以下冲突错误,据我所知,该环境不应该发生冲突(在这种情况下,scala-env 依赖于ideaLocal,所以它不应该与它冲突):
这是 nix 表达式(大部分可以忽略,但不会太长,所以我会粘贴整个内容):
编辑:
所以它看起来像是ideaLocal
作为一个环境被导入 - 将它安装为依赖于的包的正确方法是scalaEnv
什么?