【发布时间】:2021-10-11 13:09:15
【问题描述】:
人们会天真地认为包管理器的核心功能是“构建包”。对于 nix,情况似乎有点不同:一个分发 nix-files/expression(在通道或 .nix 文件中)定义派生(nix-instantiate),可以构建(nix-build)以生成安装的二进制工件(nix-env -i) 进入环境。在任何时候都不会生成包含构建工件的传统“包文件”,可以将其复制到不同的机器和/或分发,例如作为 GitHub 发布。
问题:
-
是否可以使用 nix 工具生成二进制包(即预构建的派生)?
-
如果不是,这是故意遗漏还是只是缺少功能。
【问题讨论】:
-
您可能正在寻找
nix-copy-closure(可以将派生及其依赖项从一台机器传输到另一台机器)和 Nix binary cache 的组合。 -
顺便说一句——对于有关 Nix 及其设计原理的高级问题,我真的,真的建议在快速拨号上保留Eelco's doctoral thesis。尽管它已经很老了,而且在其间的几年里有很多积极的发展,但它回答了这里讨论的所有问题。
-
真的,我会把这个问题带到 NixOS Discourse。不过,我个人的看法?不好的做法,故意不受支持。但这是一个很大的生态系统;其他人可能已经构建了自动化工具。
-
发布者:discourse.nixos.org/t/… 编辑
sources.list.d也不例外,我也不希望用户这样做。我正在寻找与rpm -i <filename>等效的版本。 -
我使用 cachix 私有缓存来分发 Hercules CI Enterprise。
标签: nix