【问题标题】:How does Homebrew resolve dependencies?Homebrew 如何解决依赖关系?
【发布时间】:2023-03-11 19:32:01
【问题描述】:

Homebrew(和一般的其他包管理器)如何解决依赖关系?像循环依赖这样的特殊情况呢?此任务是否有通用模式、算法和/或数据结构?

【问题讨论】:

    标签: npm homebrew rpm


    【解决方案1】:

    解决有向无环图中依赖问题的通用算法称为topological sorting。我很确定这也是包管理器使用的。然而,这不适用于循环依赖。

    对于循环(运行时)依赖项,您可以(至少在 RPM 中)跳过对其中一个包的检查,或者通过在同一命令行上指定它们“同时”安装相互依赖的包。然后包管理器知道另一个包也将被安装,因此依赖关系得到满足。

    我不认为有构建时循环依赖的解决方案。

    【讨论】:

    • 谢谢!我实际上正在开发一个需要它的.NET 项目。我有一个有向图,我使用拓扑排序来获取顶点数组。 Quickgraph 库派上用场了(以防阅读此文的任何人有相同的要求)。
    猜你喜欢
    • 1970-01-01
    • 2012-01-31
    • 2014-12-18
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2017-02-20
    相关资源
    最近更新 更多