3 ms·
Can somebody explain this to somebody without a background in graph theory?
by tyho 11y ago
Can somebody explain this to somebody without a background in graph theory?
- somerandomone 11y agoI'll take a shot. If I understand it correctly, basically components have dependencies. For example, A depends on B and B depends on C, etc. If you have A depends on B... and somehow along the path you have a cycle, eg. E depends on A, you have a problem because in order to install A, you need to install B, C,... E. But in order to install E you need to install A first. So you have to break the dependency cycle.
- josch1337 11y agoOn top of what somerandomone said (which is already correct) imagine you have source packages A, B, C and D which depend on each other through the binary packages they build and the binary packages they build depend on like this: A->B->C->D->A This would then form a simple cycle where a dependency has to be broken to make it acyclic. A strongly connected component now is a graph where every vertex is in the cycle with every other vertex in the graph. So for example if we add a package E to the above simple cycle where B depends on E and E depends on D, then we would not have a simple cycle anymore. Now imagine scaling this up to a couple of hundred vertices and you see how this quickly becomes a hideous mess. I once tried to visualize such a strongly connected component and it looks like this: http://blog.mister-muffin.de/images/hideous_mess.png http://blog.mister-muffin.de/images/hideous_mess.png