OPIUM: Optimal Package Install/Uninstall Manager

  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)},
Linux distributions often include package management tools such as apt-get in Debian or yum in RedHat. Using information about package dependencies and conflicts, such tools can determine how to install a new package (and its dependencies) on a system of already installed packages. Using off-the-shelf SAT solvers, pseudo-boolean solvers, and Integer Linear Programming solvers, we have developed a new package-management tool, called Opium, that improves on current tools in two ways: (1) Opium is… 

Figures from this paper

Towards efficient optimization in package management systems
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
PacJam: Securing Dependencies Continuously via Package-Oriented Debloating
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.
Using Solver-Aided Languages to Build Package Managers
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.
MPM: a modular package manager
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
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
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.
Introduction to 0 install
This talk is both an introduction to 0install and an experience report from a new OCaml user.
On SAT Technologies for Dependency Management and Beyond
SAT solvers technology is now mature enough to be part of the engineer toolbox side by side with Mixed Integer Programming and Constraint Programming tools. As of June 2008, two great pieces of
On Static Verification of Puppet System Configurations
A sound, complete, and scalable algorithm to verify that configurations are deterministic is presented, which is to encode configurations as logical formulas in an SMT solver and apply partial order reduction and program slicing to achieve scalability.


Managing the Complexity of Large Free and Open Source Package-Based Software Distributions
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
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
  • Lintao Zhang, S. Malik
  • Computer Science
    2003 Design, Automation and Test in Europe Conference and Exhibition
  • 2003
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
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.
Modules for standard ML
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
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
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
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
  • O. Kullmann
  • Physics
    J. Satisf. Boolean Model. Comput.
  • 2006
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.
Introduction to Algorithms
The updated new edition of the classic Introduction to Algorithms is intended primarily for use in undergraduate or graduate courses in algorithms or data structures and presents a rich variety of algorithms and covers them in considerable depth while making their design and analysis accessible to all levels of readers.