我在一个依赖算法上遇到了问题,该依赖类似于Maven依赖,但它是基于严格版本范围的。
例如:
component A, version 1 depends on: component B, version 1~3; and component C, version 2~3
component D, version 1 depends on: component B, version 2~4; and component C, version 1~2
现在,我想要安装组件 A 的版本 1 和组件 D 的版本 1 时获取它们的依赖关系。因为它们都依赖于组件 B、C,所以我需要一个正确的算法来获取正确的 B 和 C 版本。
此外,我可能需要升级组件 A 和 D。例如,现在我有以下新版本:
component A, version 2 depends on: component B, version 3~5; and component C, version 4~5
component A, version 3 depends on: component B, version 6~7; and component C, version 4~5
component D, version 2 depends on: component B, version 3~4; and component C, version 3~4
现在我需要一个算法来获取可以升级到的正确版本A和D以及它们所有的依赖项。问题是组件A,版本3和组件D,版本2具有组件B的依赖冲突。
是否存在解决这种问题的现有算法?或类似(更简单)的问题。您有任何建议吗?
由于数据不应该很多,所以不考虑性能。
提前感谢!