【发布时间】:2015-11-23 16:03:14
【问题描述】:
我想澄清一下 Nix 安装的依赖项。我有一个安装了包 D1 和 D2 的 linux 安装。现在我安装 Nix,然后通过 Nix 安装一个需要依赖项 D1 和 D2 的包。 Nix 会重新安装 D1 和 D2 还是会忽略这些依赖项,因为它们已经安装在基础 linux 系统上?
【问题讨论】:
标签: dependencies nix
我想澄清一下 Nix 安装的依赖项。我有一个安装了包 D1 和 D2 的 linux 安装。现在我安装 Nix,然后通过 Nix 安装一个需要依赖项 D1 和 D2 的包。 Nix 会重新安装 D1 和 D2 还是会忽略这些依赖项,因为它们已经安装在基础 linux 系统上?
【问题讨论】:
标签: dependencies nix
不,Nix 不识别已安装的软件包。它不能不打破其核心概念之一:可靠性。
考虑如果基本系统管理员(可能不是您)删除其中一个软件包(D1 或 D2)会发生什么情况:Nix 安装的依赖于这些软件包的软件包将不再工作。或者,更微妙的是,当安装在基础系统上的依赖项更新到较新版本时,Nix 打包的软件不兼容时会发生什么?
然而,在某些平台上使用了一个所谓的 native stdenv,它使用了本机目录中的一些工具(/usr/bin 和朋友)。
在此基础上,您可以编写自己的 stdenv,它使用您的基本系统中的一组工具(您可以确保它们在那里并正常工作)。
【讨论】: