Dependencies Nix是否识别已安装的软件包?

Dependencies Nix是否识别已安装的软件包?,dependencies,nix,Dependencies,Nix,我想澄清有关Nix安装的依赖项。我安装了linux,安装了D1和D2包。现在我安装Nix,然后通过Nix安装一个需要依赖项D1和D2的包。Nix会重新安装D1和D2吗?还是会忽略这些依赖项,因为它们已经安装在基本linux系统上?否,Nix不会识别已安装的软件包。它必须打破它的核心概念之一:可靠性 考虑如果基本系统管理员(可能不是您)删除其中一个包(D1或D2)会发生什么情况:Nix安装的包(依赖于这些包)将不再工作。或者,更微妙的是,当安装在基础系统上的依赖项更新到新版本时会发生什么情况,Ni

我想澄清有关Nix安装的依赖项。我安装了linux,安装了D1和D2包。现在我安装Nix,然后通过Nix安装一个需要依赖项D1和D2的包。Nix会重新安装D1和D2吗?还是会忽略这些依赖项,因为它们已经安装在基本linux系统上?

否,Nix不会识别已安装的软件包。它必须打破它的核心概念之一:可靠性

考虑如果基本系统管理员(可能不是您)删除其中一个包(D1或D2)会发生什么情况:Nix安装的包(依赖于这些包)将不再工作。或者,更微妙的是,当安装在基础系统上的依赖项更新到新版本时会发生什么情况,Nix打包的软件与新版本不兼容

然而,在某些平台上使用了一种所谓的工具,它使用本机目录中的一些工具(
/usr/bin
和friends)


基于此,您可以从基本系统编写自己的
stdenv
,该工具使用一组工具(您可以确保它们在那里并正常工作)。

在Nix系统内共享软件包如何?如果我安装2个gtk应用程序,它们是否都会安装所有gtk库?也就是说,在Nix软件包系统中是否会安装2个gtk库?它们当然会共享它们的依赖关系,除非它们需要不同的版本,但是:)因此,在您的情况下,您只需要安装一次gtk版本。