【问题标题】:Does Nix recognize already installed packages?Nix 能识别已安装的软件包吗?
【发布时间】:2015-11-23 16:03:14
【问题描述】:

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

【问题讨论】:

    标签: dependencies nix


    【解决方案1】:

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

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

    然而,在某些平台上使用了一个所谓的 native stdenv,它使用了本机目录中的一些工具(/usr/bin 和朋友)。

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

    【讨论】:

    • 在 Nix 系统内共享包怎么样?如果我安装 2 个 gtk 应用程序,它们都会安装所有 gtk 库吗?也就是Nix包系统会安装2个gtk库吗?
    • 他们当然会共享他们的依赖关系,除非他们需要不同的版本,但是 :) 因此,在您的情况下,您只需要安装一次 gtk 版本。
    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2021-08-24
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    相关资源
    最近更新 更多