Managing the Complexity of Large Free and Open Source Package-Based Software Distributions
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
OPIUM: Optimal Package Install/Uninstall Manager
ICSE '07 Proceedings of the 29th international conference on Software Engineering
IEEE Transactions on Software Engineering
Dependency management for the eclipse ecosystem: eclipse p2, metadata and resolution
Proceedings of the 1st international workshop on Open component ecosystems
Expressing advanced user preferences in component installation
Proceedings of the 1st international workshop on Open component ecosystems
Apt-pbo: solving the software dependency problem using pseudo-boolean optimization
Proceedings of the IEEE/ACM international conference on Automated software engineering
Feature diagrams as package dependencies
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
MPM: a modular package manager
Proceedings of the 14th international ACM Sigsoft symposium on Component based software engineering
An empirical study of the component dependency resolution search space
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
Dependency solving: A separate concern in component evolution management
Journal of Systems and Software
Hi-index | 0.00 |
Context: The success of modern software distributions in the Free and Open Source world can be explained, among other factors, by the availability of a large collection of software packages and the possibility to easily install and remove those components using state-of-the-art package managers. However, package managers are often built using a monolithic architecture and hard-wired and ad-hoc dependency solvers implementing some customized heuristics. Objective: We aim at laying the foundation for improving on existing package managers. Package managers should be complete, that is find a solution whenever there exists one, and allow the user to specify complex criteria that define how to pick the best solution according to the user's preferences. Method: In this paper we propose a modular architecture relying on precise interface formalisms that allows the system administrator to choose from a variety of dependency solvers and backends. Results: We have built a working prototype-called MPM-following the design advocated in this paper, and we show how it largely outperforms a variety of current package managers. Conclusion: We argue that a modular architecture, allowing for delegating the task of constraint solving to external solvers, is the path that leads to the next generation of package managers that will deliver better results, offer more expressive preference languages, and be easily adaptable to new platforms.