2007 · 87 citations · 17 references
ComputingComputer ScienceOptimizationSoftware EngineeringSystems ProgrammingPackage DesignPackage ManagementDependency OptimizationInteger Linear ProgrammingObjective Function FormulationOptimality CriteriaPackage Dependency ManagementPackage InstallationSoftware Package DependenciesSource Package Management
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 complete, in that if there is a solution, Opium is guaranteed to find it, and (2) Opium can optimize a user-provided objective function, which could for example state that smaller packages should be preferred over larger ones. We performed a comparative study of our tool against Debian's apt-get on 600 traces of real-world package installations. We show that Opium runs fast enough to be usable, and that its completeness and optimality guarantees provide concrete benefits to end users.
17
Adhi Harmoko S, M.Komp, Joseph Marie Jacquard et al. · 2005 · 18.4K citations
V. J. Rayward‐Smith, Thomas H. Cormen, Charles E. Leiserson et al. · Journal of the Operational Research Society · 1991 · 17K citations
Extended static checking for Java
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge et al. · 2002 · 1.3K citations
Jonathan Aldrich, Craig Chambers, David Notkin · 2002 · 449 citations
Computing, Computer Science, Design +12
An interpolating theorem prover
Kenneth L. McMillan · Theoretical Computer Science · 2005 · 272 citations