问题标签 [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.
nix - 在非 NixOS Linux 上从 Nix 为 Amazon 构建 NixOS AMI 映像
我正在尝试使用nixos-generators在安装了 nix 包管理器的 Ubuntu 机器中构建 AMI。我有这个配置:
然后我使用这个命令来创建一个 AMI:
您可以看到我得到的上述错误。我确实知道我的系统能够运行 KVM 虚拟机:
根据阅读文档,我填充了nix.conf
这个:
为此,我收到了这个奇怪的错误:
关于如何解决此问题并构建 AMI 的任何想法?
haskell - 你如何在 nix 中从 haskell 包(使用 stack / cabal)构建可执行文件?
我正在寻找类似的东西:
shell.nix
然后我可以使用nix-shell
:
您通常只是从 github/hackage/stackage 的源代码构建还是使用pkgs.haskellPackages.<my-package>
?
nix - vim 插件的自定义 Nix 派生失败
编辑:将此作为其他搜索类似问题的历史记录其中一些已解决,但最后一个问题仍未解决 请参阅 ==== 行之后。
我正在使用家庭管理器,我将其设置为为我提供包含一些插件的 neovim。不幸的是 coc-nvim 插件不再是最新的所以现在我想从 github 打包它然后导入。我是 nixos 的新手,所以我仍然想念很多东西,我相信。
到目前为止,我天真的方法是:
.../neovim/default.nix
接着.../neovim/coc-new.nix
该错误告诉我导入的任何内容都不是某种“包”类型:
所以请帮帮我:
- 我是否正确,它现在正在定义一个包但没有实际构建它?我该如何解决这个问题?
- rev 的值:...我将其设置为在 github 上的 coc repo 中找到的提交哈希,对吗?
- 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] 中看到:
nix - 如何找到 Nix 频道指向的提交?
在尝试恢复旧项目时,有时我不得不四处寻找旧的 Nixpkgs 提交以开始工作。
例如,我的大部分shell.nix
文件都是这样开始的,
这将从当前通道指向的提交中导入所有表达式,但是一段时间后,发生了太多更改,以至于我的项目将不再构建;然后我将不得不找到一个仍然有效的提交,然后从那里开始。
如果我当时可以从频道中保存工作提交,并在以后需要时有一些可靠的东西可以回退,那可能是最好的。
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 重新运行上述推导,或者我是否以及如何简单地编写一个完成相同工作的文件。
如果有人可以帮助我并为我指明正确的方向,以便我至少知道我究竟要寻找什么,我将非常感激。提前致谢。
nix - 我的 .config/nixpkgs/config.nix 文件未加载
有需要使用的配置.config/nixpkgs/config.nix
吗?
我.config/nixpkgs/config.nix
的在这里。
我试图安装 myPackages 但失败了:
shell - Nix 构建表达式中的 `patchShebangs` 命令是什么?
在查看Nixpkgs repo中的包时遇到了该patchShebangs
命令,并看到它在标准环境的通用构建器的各个阶段中使用,但不确定它的用途或首先需要它的原因。
shell - 在 shell 脚本中,字符串周围的两个 at (@) 符号是什么意思?
例如,
对于上下文,这是来自Nixpkgs repo 中 2004 年提交中的shell 脚本;试图查看这是否可能是一个参考功能,但字符串“ shell ”在整个文件中只出现一次(在区分大小写的搜索中)。
nix - Nix派生中的隔离临时文件
我还没有找到有关在 Nix 派生中处理临时文件的任何信息。
我找到了$TMP
和$TMPDIR
env vars,但它们都指向/tmp
,这是系统全局的。
变量$tmp
未在 mkDerivation 中定义。我会期待这样的事情,因为其他派生范围变量遵循小写风格,例如$out
.
/tmp 的问题很明显——它是全局目录。我需要担心碰撞和清洁。
我的派生挂钩存档了一个大文件夹树。
r - 与 guix 相比,nix 中 rPackages(包的 pin 版本)的可重复性更好
实际上,我正在评估不同的解决方案以增强/探索我的 R/Python 科学工作流程中的可重复性:具有可重复分析(绘图、分析)和纸张的数据。
如您所知,有两种大的 linux 风格提供了一些解决方案:Nix 和 Guix
在 nix 中,通常描述的使用 R 开发的方式是,例如,使用rWrapper
and 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 所需的版本清楚地呈现:
在我搜索一种方法来实现类似rPackages
的Nix
东西,即。一种将 R 或 R 包的版本显式引用到派生中的方法,但我没有找到它。
有了 rPackages , nix 开发者已经提供了很好的基础,但也许我们需要更多......
我们如何才能使用 Nix 共同在 R 包上实现更好的可重复性?我对任何想法感兴趣?
或许我们可以直接从 cran 档案中获取包源并进行编译?例如 tidyverse :
- https://cran.r-project.org/web/packages/tidyverse/index.html,
- https://cran.r-project.org/src/contrib/Archive/tidyverse/?
Ps :我知道 Nix 和 Guix 都是https://archive.softwareheritage.org/的合作伙伴,这是存档和调用 cran 包的好方法:
- https://guix.gnu.org/fr/blog/2019/connecting-reproducible-deployment-to-a-long-term-source-code-archive/
- https://www.tweag.io/blog/2020-06-18-software-heritage/
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 提供链接和讨论。