9 research outputs found
Handling software upgradeability problems with MILP solvers
Upgradeability problems are a critical issue in modern operating systems. The
problem consists in finding the "best" solution according to some criteria, to
install, remove or upgrade packages in a given installation. This is a
difficult problem: the complexity of the upgradeability problem is NP complete
and modern OS contain a huge number of packages (often more than 20 000
packages in a Linux distribution). Moreover, several optimisation criteria have
to be considered, e.g., stability, memory efficiency, network efficiency. In
this paper we investigate the capabilities of MILP solvers to handle this
problem. We show that MILP solvers are very efficient when the resolution is
based on a linear combination of the criteria. Experiments done on real
benchmarks show that the best MILP solvers outperform CP solvers and that they
are significantly better than Pseudo Boolean solvers.Comment: In Proceedings LoCoCo 2010, arXiv:1007.083
Solving Linux Upgradeability Problems Using Boolean Optimization
Managing the software complexity of package-based systems can be regarded as
one of the main challenges in software architectures. Upgrades are required on
a short time basis and systems are expected to be reliable and consistent after
that. For each package in the system, a set of dependencies and a set of
conflicts have to be taken into account. Although this problem is
computationally hard to solve, efficient tools are required. In the best
scenario, the solutions provided should also be optimal in order to better
fulfill users requirements and expectations. This paper describes two different
tools, both based on Boolean satisfiability (SAT), for solving Linux
upgradeability problems. The problem instances used in the evaluation of these
tools were mainly obtained from real environments, and are subject to two
different lexicographic optimization criteria. The developed tools can provide
optimal solutions for many of the instances, but a few challenges remain.
Moreover, it is our understanding that this problem has many similarities with
other configuration problems, and therefore the same techniques can be used in
other domains.Comment: In Proceedings LoCoCo 2010, arXiv:1007.083
Aligning component upgrades
Modern software systems, like GNU/Linux distributions or Eclipse-based
development environment, are often deployed by selecting components out of
large component repositories. Maintaining such software systems by performing
component upgrades is a complex task, and the users need to have an expressive
preferences language at their disposal to specify the kind of upgrades they are
interested in. Recent research has shown that it is possible to develop solvers
that handle preferences expressed as a combination of a few basic criteria used
in the MISC competition, ranging from the number of new components to the
freshness of the final configuration. In this work we introduce a set of new
criteria that allow the users to specify their preferences for solutions with
components aligned to the same upstream sources, provide an efficient encoding
and report on the experimental results that prove that optimising these
alignment criteria is a tractable problem in practice.Comment: In Proceedings LoCoCo 2011, arXiv:1108.609
Adoption of Academic Tools in Open Source Communities: The Debian Case Study
Part 4: Case StudiesInternational audienceComponent repositories play a key role in the open software ecosystem. Managing the evolution of these repositories is a challenging task, and maintainers are confronted with a number of complex issues that need automatic tools to be adressed properly.In this paper, we present an overview of 10 years of research in this field and the process leading to the adoption of our tools in a FOSS community. We focus on the Debian distribution and in particular we look at the issues arising during the distribution lifecycle: ensuring buildability of source packages, detecting packages that cannot be installed and bootstrapping the distribution on a new architecture. We present three tools, distcheck, buildcheck and botch, that we believe of general interest for other open source component repositories.The lesson we have learned during this journey may provide useful guidance for researchers willing to see their tools broadly adopted by the community
aspcud: A Linux Package Configuration Tool Based on Answer Set Programming
We present the Linux package configuration tool aspcud based on Answer Set
Programming. In particular, we detail aspcud's preprocessor turning a CUDF
specification into a set of logical facts.Comment: In Proceedings LoCoCo 2011, arXiv:1108.609