[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

How does APT Resolve Dependencies of Abstract Packages



This is a two question email, with embedded questions!!

1) How does APT resolve dependencies. I have been looking at algorithms to resolve dependencies from various sources. APT seems to be lazy in it takes the best version that a dependency depends on, i.e. depending on Version >1 but <2 will resolve to 2 if it can find it. What overall algorithm is used when generating the tree?
1.1)How does it determine install order to resolve without breaking? It says it generates a tree, but this would look more like a graph if two higher order nodes rely on the same package. Does it just install nodes first that are leafs?  
1.2)How does APT scale up, I don't think it will scale down very easily if all repository contents are stored locally(this is not based on much), but is it the best option for Servers and clusters?

2)I have read about abstract packages, but found very little on their documentation. How are these worked out with APT dependencies? For instance if I depended on an abstract package, when I install the package dependencies it will not include the functionality so it's dependencies will be resolved but will it just throw errors until you explicitly install an implementation of the abstract package?

Thank you to any one who responds. I do not have the coding knowledge of C to be able to delve too deeply into the source to answer these questions, and I will take answers or references or what ever knowledge you have.
Cheers
Graham

Reply to: