【发布时间】:2023-03-11 19:32:01
【问题描述】:
Homebrew(和一般的其他包管理器)如何解决依赖关系?像循环依赖这样的特殊情况呢?此任务是否有通用模式、算法和/或数据结构?
【问题讨论】:
Homebrew(和一般的其他包管理器)如何解决依赖关系?像循环依赖这样的特殊情况呢?此任务是否有通用模式、算法和/或数据结构?
【问题讨论】:
解决有向无环图中依赖问题的通用算法称为topological sorting。我很确定这也是包管理器使用的。然而,这不适用于循环依赖。
对于循环(运行时)依赖项,您可以(至少在 RPM 中)跳过对其中一个包的检查,或者通过在同一命令行上指定它们“同时”安装相互依赖的包。然后包管理器知道另一个包也将被安装,因此依赖关系得到满足。
我不认为有构建时循环依赖的解决方案。
【讨论】: