OPIUM: Optimal Package Install/Uninstall Manager
@article{Tucker2007OPIUMOP, title={OPIUM: Optimal Package Install/Uninstall Manager}, author={Chris Tucker and David Shuffelton and Ranjit Jhala and Sorin Lerner}, journal={29th International Conference on Software Engineering (ICSE'07)}, year={2007}, pages={178-188}, url={https://api.semanticscholar.org/CorpusID:1279451} }
A new package-management tool that improves on current tools in two ways, and can optimize a user-provided objective function, which could for example state that smaller packages should be preferred over larger ones.
97 Citations
Flexible and Optimal Dependency Management via Max-SMT
- 2023
Computer Science
Pacsolve is presented, a unifying framework and implementation for dependency solving which allows for customizable constraints and optimization goals, and is used to build Maxnpm, a complete, drop-in replacement for NPM, which empowers developers to combine multiple objectives when installing dependencies.
Towards efficient optimization in package management systems
- 2014
Computer Science
A hybrid approach that integrates exact solving with approximate solving by invoking the approximate part whenever the solver is running out of time is devised, which enables returning high-quality package configurations with rapid response time.
A modular package manager architecture
- 2013
Computer Science
PacJam: Securing Dependencies Continuously via Package-Oriented Debloating
- 2022
Computer Science
Compared to a state-of-the-art approach, piecewise debloating, PacJam debloats 66% of the packages per application on average, reducing the attack surface by removing 46% of CVEs and 69% of gadgets with significantly less runtime overhead and without the need to install a custom loader.
Dependency Solvers à la Carte
- 2022
Computer Science
PacSolve is presented, a unifying formal semantics of dependency solving that is parameterized along several key axes, allowing it to compactly represent the key features and differences between NPM, PIP and Cargo, and to express a wide variety of alternative semantics for dependency solving.
Using Solver-Aided Languages to Build Package Managers
- 2022
Computer Science
P AC S OLVE is presented, a unifying formal semantics of dependency solving that can compactly represent the key features and differences between NPM, PIP and Cargo, and express a wide variety of alternative semantics for dependency solving.
PacMan: Securing Dependencies Continuously via Package-Oriented Debloating
- 2021
Computer Science
This work proposes a package-oriented debloating framework, PacMan, for adaptive and security-aware management of an application’s dependent packages, which improves upon existing debloating techniques and enables to rapidly mitigate newly discovered vulnerabilities with minimal impact on the application’s functionality.
MPM: a modular package manager
- 2011
Computer Science
A modular architecture allowing for pluggable dependency solvers and backends is proposed and it is argued that this is the path that leads to the next generation of package managers that will deliver better results, accept more expressive input languages, and can be easily adaptable to new platforms.
Solving Linux Upgradeability Problems Using Boolean Optimization
- 2010
Computer Science
Two different tools, both based on Boolean satisfiability (SAT), for solving Linux upgradeability problems are described, both of which can provide optimal solutions for many of the instances, but a few challenges remain.
Learning Software Constraints via Installation Attempts
- 2020
Computer Science
Algorithms for learning dependencies, conflicts and defective packages from installation attempts are presented and it is proved lower and upper bounds on the number of queries that these algorithms require to make for different settings of the problem are proved.
19 References
Managing the Complexity of Large Free and Open Source Package-Based Software Distributions
- 2006
Computer Science
This research presents the approach, the tools developed and their application with experimental results, and provides an effective and automatic way to support distribution editors in handling those issues that were, until now, mostly addressed using ad-hoc tools and manual techniques.
Pueblo: A Hybrid Pseudo-Boolean SAT Solver
- 2006
Computer Science
A new hybrid method for efficiently integrating Pseudo-Boolean constraints into generic SAT solvers in order to solve PB satisfiability and optimization problems is introduced, which benefits significantly from the pruning power of the learned PB constraints, while keeping the overhead of adding them into the problem low.
Validating SAT solvers using an independent resolution-based checker: practical implementations and other applications
- 2003
Computer Science
The implementation of an independent resolution-based checking procedure that can check the validity of unsatisfiable claims produced by the SAT solver zchaff is described and Experimental results show low overhead for the checking process.
Extracting (Easily) Checkable Proofs from a Satisfiability Solver that Employs both Preorder and Postorder Resolution
- 2002
Computer Science
Modifications of the classical backtracking-search satisfiability algorithm of Davis, Putnam, Loveland and Logemann (DPLL) are described that are designed to extract checkable proofs of practical length when the formula is believed to be unsatisfiable.
Tools and Algorithms for the Construction and Analysis of Systems: 25 Years of TACAS: TOOLympics, Held as Part of ETAPS 2019, Prague, Czech Republic, April 6–11, 2019, Proceedings, Part III
- 2019
Computer Science, Engineering
This volume is dedicated to the presentation of the 16 competitions that joined TOOLympics as part of the celebration of the 25 anniversary of the TACAS conference, and to understand their commonalities and differences.
Modules for standard ML
- 1984
Computer Science
The module facility described here has been proposed as part of the revised language, now called Standard ML, to facilitate the structuring of large ML programs and to employ new ideas in the semantics of data types to extend the power of ML's polymorphic type system.
Generalized resolution and cutting planes
- 1988
Mathematics, Computer Science
This paper illustrates how the application of integer programming to logic can reveal parallels between logic and mathematics and lead to new algorithms for inference in knowledge-based systems. If…
Architecture-level dependence analysis in support of software maintenance
- 1998
Computer Science
There are many kinds of questions one might want to ask at an architectural level for maintenance purposes as varied as reuse, reverse engineering, fault localization, impact analysis, regression testing, and workspace management.
Extended static checking for Java
- 2002
Computer Science
The Extended Static Checker for Java (ESC/Java) is introduced, an experimental compile-time program checker that finds common programming errors and provides programmers with a simple annotation language with which programmer design decisions can be expressed formally.
The SAT 2005 Solver Competition on Random Instances
- 2006
Computer Science, Mathematics
An analysis of the SAT 2005 sub-competition on random instances is given, clearly showing that the models used before are inadequate at the relatively small scale considered here.