我有一个依赖算法的问题,依赖类似于 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 的依赖冲突
是否存在解决此类问题的算法?或类似(更容易)的问题。你有什么建议吗?
由于不应该有很多数据,所以不要考虑性能。
提前致谢!