Nix 如何确保软件包可以安装?

Nix 如何确保软件包可以安装?

我试图了解包管理器,特别是 Nix,如何确保可以安装包。

我知道 Nix 包明确声明了它们的所有依赖项。但是 Nix 能否提供保证,或者至少高度确定包安装在开始之前会成功?如果是这样,它是如何做到这一点的?如果没有,为什么不呢?有没有什么方法可以让软件包安装获得类似的确定性?

是否有命令在实际运行安装之前检查软件包的兼容性,例如正式验证的操作系统?

答案1

软件包存储库的维护者可以做很多事情来确保向公众提供的软件包始终是可安装的。显而易见的是最终的冒烟测试:在支持的硬件(或模拟此类硬件的虚拟机)上实际安装并运行包中包含的可执行文件。我对 nixpkgs 的相关系统一无所知,但不断出现的名字是九头蛇

除了运行包之外,维护人员还可以运行上游包测试,验证库的核心功能在与其他包一起使用时是否正常工作,冒烟测试诸如运行时间或包大小之类的东西,以及包“工作”的任何其他启发式方法。正式验证现代包存储库可能需要几十年的时间,因为绝大多数软件都没有以任何方式进行正式验证。

相关内容