首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跟踪/etc/nixos/结果在VCS?

跟踪/etc/nixos/结果在VCS?
EN

Unix & Linux用户
提问于 2017-12-29 20:34:09
回答 2查看 316关注 0票数 0

虽然可以轻松地回滚NixOS构建代,但这不会给出/etc/nixos/configuration.nix中相应的NixOS配置。因此,在版本控制系统(VCS)中跟踪/etc/nixos/似乎很常见,例如在Git中。

在这样做时,是否也应该跟踪/etc/nixos/result符号链接?为什么?/为什么不?

EN

回答 2

Unix & Linux用户

发布于 2017-12-30 07:45:29

我看不出这样做有什么明显的好处,但也许我的用例在这方面太简单了。

我更喜欢看ls -l /nix/var/nix/profiles/和/或ls -l /nix/var/nix/profiles/system-profiles,这取决于您是否命名系统配置文件(S),而且我通常会手动删除我希望垃圾收集的符号链接。

票数 1
EN

Unix & Linux用户

发布于 2018-01-02 01:15:07

您可以在相应的代中跟踪您的configuration.nix。您只需创建对它的引用(在其内部),以便它成为闭包的一部分。下面是一个例子:

configuration.nix

代码语言:javascript
复制
{ config, lib, pkgs, ... }:
{
  # yada, yada

  environment.etc."configuration.nix".source = /etc/nixos/configuration.nix;
};

environment.etc 选项允许您在/etc中声明性地创建文件。Nix将将/etc/nixos/configuration.nix检测为path类型(路径是Nix中的头等类型),从而将其内容复制到Nix存储中。结果是一个符号链接/etc/configuration.nix指向(间接)到/nix/store/blah-blah-configuration.nix,这意味着每一代将有一个指向其相应配置的/etc/configuration.nix符号链接。然后,您可以对其他文件(如hardware-configuration.nix )执行类似的操作。

捕获

虽然上面的命令会存储您的配置,但是它不会使nix-envnix-shellnixos-rebuild等使用它,因为这些命令使用$NIX_PATH来定位信任。虽然您可能能够解决这个问题(请参阅这里),但我不建议这样做,因为当您运行nixos-rebuild时,它将使用错误的配置文件(/etc/nixos/configuration.nix而不是Nix存储中的副本,无论如何,它是只读的)。事情会很快变得不稳定。

当然,Nix商店也是世界可读的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/413710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档