这不是关于“薄片与通道”的——塞缪尔·迪翁-里尔(samueldr)

主要观点:人们常将“不使用 Flakes”与“使用‘channels’”等同,但实际情况更复杂,“channels”在 NixOS 生态中有多种含义,包括整体概念、builtins.fetchTarball的参数等,且使用nix-channel管理输入存在全局值、非声明性等问题,Flakes 可替代nix-channel语义但不是唯一替代方式,还有其他管理输入的方法如fetchTarballnpins
关键信息:

  • “channels”定义多样,如组织内 Hydra 实例上构建和测试的 Nixpkgs 版本等。
  • channel:...语法是nixos.org通道 tarball 地址的缩写。
  • Hydra 通道已弃用。
  • NIX_PATH易混淆,其值和语义受多种因素影响。
  • nix-channel命令常被误与 Flakes 对立,用于系统范围管理输入,存在问题。
  • Flakes 使用“channels”概念,可替代nix-channel语义但不是唯一替代。
  • 其他管理输入的方式有fetchTarball(繁琐但单文件可复制)和npins(单用途管理输入工具)。
    重要细节:
  • 不同用户和环境下NIX_PATH的值和语义不同。
  • 使用nix-channel可能导致用户意外管理多个nixpkgs输入。
  • fetchTarball在单文件复制时有用,多输入时更新较麻烦。
  • npins简单直接,用于管理 NixOS 系统输入。
阅读 12
0 条评论