问题标签 [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.

0 投票
1 回答
261 浏览

nix - 在非 NixOS Linux 上从 Nix 为 Amazon 构建 NixOS AMI 映像

我正在尝试使用nixos-generators在安装了 nix 包管理器的 Ubuntu 机器中构建 AMI。我有这个配置:

然后我使用这个命令来创建一个 AMI:

您可以看到我得到的上述错误。我确实知道我的系统能够运行 KVM 虚拟机:

根据阅读文档,我填充了nix.conf这个:

为此,我收到了这个奇怪的错误:

关于如何解决此问题并构建 AMI 的任何想法?

0 投票
1 回答
271 浏览

haskell - 你如何在 nix 中从 haskell 包(使用 stack / cabal)构建可执行文件?

我正在寻找类似的东西:

shell.nix

然后我可以使用nix-shell

您通常只是从 github/hackage/stackage 的源代码构建还是使用pkgs.haskellPackages.<my-package>

0 投票
1 回答
521 浏览

nix - vim 插件的自定义 Nix 派生失败

编辑:将此作为其他搜索类似问题的历史记录其中一些已解决,但最后一个问题仍未解决 请参阅 ==== 行之后。

我正在使用家庭管理器,我将其设置为为我提供包含一些插件的 neovim。不幸的是 coc-nvim 插件不再是最新的所以现在我想从 github 打包它然后导入。我是 nixos 的新手,所以我仍然想念很多东西,我相信。

到目前为止,我天真的方法是: .../neovim/default.nix

接着.../neovim/coc-new.nix

该错误告诉我导入的任何内容都不是某种“包”类型:

所以请帮帮我:

  1. 我是否正确,它现在正在定义一个包但没有实际构建它?我该如何解决这个问题?
  2. rev 的值:...我将其设置为在 github 上的 coc repo 中找到的提交哈希,对吗?
  3. sha值..我在哪里得到那个?

感谢您帮助一位新用户来到这里!

==================================================== =========================

编辑:在评论和一些阅读的帮助下,man nix-has我设法让哈希和构建工作。我按照建议添加了 {} 参数,所以...neovim/default.nix我现在有了

现在.../neovim/coc-new.nix阅读:

这一切都运行了,但是......新创建的派生没有被拾取。我的 vim 包目录中没有任何内容。为什么 ?我在 (home-manager/neovim.nix)[https://github.com/nix-community/home-manager/blob/master/modules/programs/neovim.nix] 中看到:

0 投票
2 回答
805 浏览

nix - 如何找到 Nix 频道指向的提交?

在尝试恢复旧项目时,有时我不得不四处寻找旧的 Nixpkgs 提交以开始工作。

例如,我的大部分shell.nix文件都是这样开始的,

这将从当前通道指向的提交中导入所有表达式,但是一段时间后,发生了太多更改,以至于我的项目将不再构建;然后我将不得不找到一个仍然有效的提交,然后从那里开始。

如果我当时可以从频道中保存工作提交,并在以后需要时有一些可靠的东西可以回退,那可能是最好的。

0 投票
0 回答
103 浏览

godot - nixos mkDerivation godot 单声道版本(C# 支持)

我在 nixos 20.09 上并尝试构建支持 C# 的 godot-3.2.3-stable。

我正在按照godot docs上的说明进行操作,其中指出首先必须启用单声道模块,然后生成单声道胶水。我尝试根据我的需要调整 NixOS/nixpkgs 存储库的default.nix ,但失败了。

我尝试的是首先生成 godot 文档中提到的胶水,然后使用 C# 支持进行编译。

但是,如果我运行它,nix-build我会得到错误:

很抱歉,但我完全迷路了,因为这是我正在尝试构建的第一个推导。我已经搜索了nixpkgs 手册,但无法解决我的问题。可能是因为我不确定我在寻找什么。我还问自己这是否会起作用,因为 godot 文档指出,在生成胶水之后,必须:

而且我不知道我是否可以简单地使用适当的 sconsFlags 重新运行上述推导,或者我是否以及如何简单地编写一个完成相同工作的文件。

如果有人可以帮助我并为我指明正确的方向,以便我至少知道我究竟要寻找什么,我将非常感激。提前致谢。

0 投票
0 回答
133 浏览

nix - 我的 .config/nixpkgs/config.nix 文件未加载

有需要使用的配置.config/nixpkgs/config.nix吗?

.config/nixpkgs/config.nix的在这里。

我试图安装 myPackages 但失败了:

0 投票
1 回答
100 浏览

shell - Nix 构建表达式中的 `patchShebangs` 命令是什么?

在查看Nixpkgs repo中的包时遇到了该patchShebangs命令,并看到它在标准环境的通用构建器的各个阶段中使用,但不确定它的用途或首先需要它的原因。

0 投票
2 回答
78 浏览

shell - 在 shell 脚本中,字符串周围的两个 at (@) 符号是什么意思?

例如,

对于上下文,这是来自Nixpkgs repo 中 2004 年提交中shell 脚本;试图查看这是否可能是一个参考功能,但字符串“ shell ”在整个文件中只出现一次(在区分大小写的搜索中)。

0 投票
1 回答
267 浏览

nix - Nix派生中的隔离临时文件

我还没有找到有关在 Nix 派生中处理临时文件的任何信息。

我找到了$TMP$TMPDIRenv vars,但它们都指向/tmp,这是系统全局的。

变量$tmp未在 mkDerivation 中定义。我会期待这样的事情,因为其他派生范围变量遵循小写风格,例如$out.

/tmp 的问题很明显——它是全局目录。我需要担心碰撞和清洁。

我的派生挂钩存档了一个大文件夹树。

0 投票
0 回答
346 浏览

r - 与 guix 相比,nix 中 rPackages(包的 pin 版本)的可重复性更好

实际上,我正在评估不同的解决方案以增强/探索我的 R/Python 科学工作流程中的可重复性:具有可重复分析(绘图、分析)和纸张的数据。

如您所知,有两种大的 linux 风格提供了一些解决方案:Nix 和 Guix

在 nix 中,通常描述的使用 R 开发的方式是,例如,使用rWrapperand rPackages

我的问题(不是那么……)很简单,就像 Python 一样,众所周知,R 在可重现性方面是一场噩梦,即使在中期也是如此。为了好玩,您可以尝试使用最新版本的 R 运行 2 年的 ggplot2 代码...

为了提出从科学论文的相同数据产生相同结果的薄片,我有兴趣在推导中修复 R 的版本和用于计算分析或绘图的 R 包的版本。

例如,我怎样才能更精确地定义我想使用的编译我的test.Rmd,只有 tidyverse 1.3.1 和 R 4.1.O ?即使在5年内?

我发现 Guix 显示了 R 和 tidyverse 的不同可用包/版本:

tidyverse.1.3.1 所需的版本清楚地呈现:

在我搜索一种方法来实现类似rPackagesNix东西,即。一种将 R 或 R 包的版本显式引用到派生中的方法,但我没有找到它。

有了 rPackages nix 开发者已经提供了很好的基础,但也许我们需要更多......

我们如何才能使用 Nix 共同在 R 包上实现更好的可重复性?我对任何想法感兴趣?

或许我们可以直接从 cran 档案中获取包源并进行编译?例如 tidyverse :

Ps :我知道 Nix 和 Guix 都是https://archive.softwareheritage.org/的合作伙伴,这是存档和调用 cran 包的好方法:

Ps:答案也可以添加到https://nixos.wiki/wiki/R

更新 1

在与 nix discord 上的一些伟人讨论后,我了解到 nix 不需要版本,因为flake.nix + flake.lock存储哈希(请参阅 nix flake metadata)将我的构建和下载与 nixpkgs 上的非常具体的提交联系起来。

但这并不能解决:

  • RPackages 在这个非常具体的提交中声明的这个包链接/需要的 tar.gz 源的问题?我想软件遗产会在这一点上有所帮助吗?
  • 一些 R 版本和 R 版本的包之间不兼容的常见问题。例如,您使用 R 3.0.0 和 tidyverse 1.2.3 编写代码,您更新您的 R 版本,因为其他一些包需要更新,并且仅适用于 R 3.2.0 可用的依赖项,但是ahum, tidyverse 1.2.3 不要对于 R 3.2.0 不存在...修复版本和访问旧的 tar.gz 解决了这个问题的一部分,我想。

我们如何使用 nix 定义这样的东西?

更新 2

似乎有人建立了一个非官方索引来帮助人们使用 tidyverse 搜索旧版本的包 Ex: https ://lazamar.co.uk/nix-versions/?channel=nixpkgs-unstable&package=r-tidyverse

感谢@dram 提供链接和讨论。