Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

A Historical Analysis of Debian Package Incompatibilities

502 visualizaciones

Publicado el

Presentation by Maelick Claes of a paper at the Mining Software Repositories (MSR 2015) conference. Joint work with Tom Mens, Roberto Di Cosmo and Jerome Vouillon.
Abstract: Users and developers of software distributions are often confronted with installation problems due to conflicting packages. A prototypical example of this are the Linux distributions such as Debian. Conflicts between packages have been studied under different points of view in the literature, in particular for the Debian operating system, but little is known about how these package conflicts evolve over time. We present an extensive analysis of the evolution of package incompatibilities, spanning a decade of the life of the Debian stable and testing distributions for its most popular architecture, i386. Using the technique of survival analysis, this empirical study sheds some light on the origin and evolution of package incompatibilities, and provides the basis for building indicators that may be used to improve the quality of package-based distributions.

Publicado en: Software
  • Inicia sesión para ver los comentarios

A Historical Analysis of Debian Package Incompatibilities

  1. 1. A Historical Analysis of Debian Package Incompatibilities Ma¨elick Claes, Tom Mens, Roberto Di Cosmo, J´erˆome Vouillon MSR - 17th May 2015
  2. 2. Introduction Empirical analysis Conclusion GNU/Linux distribution since 1993 Well known for its stability deb packages and package manager APT Three different distributions: stable, testing and unstable Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 2 / 10
  3. 3. Introduction Empirical analysis Conclusion control files Debian packages defined by a Debian Control File (DCF) containing among other meta-data Dependencies with other packages Conflicts with other packages Providing a virtual package Example Package: xul-ext-adblock-plus Source: adblock-plus Version: 2.1-1+deb7u1 Installed-Size: 2487 Maintainer: Dmitry E. Oboukhov <unera@debian.org> Architecture: all Replaces: adblock-plus (<< 1.1.1-2) Provides: adblock-plus, iceape-adblock-plus, icedove-adblock-plus, iceweasel-adblock-plus Depends: iceweasel (>= 8.0) | icedove (>= 8.0) | iceape (>= 2.5) Conflicts: mozilla-firefox-adblock Breaks: adblock-plus (<< 1.1.1-2), iceape (>> 2.13 a1+), iceape (<< 2.5), icedove (<< 8.0), iceweasel (<< 8.0) [...] Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 3 / 10
  4. 4. Introduction Empirical analysis Conclusion Declared conflicts and strong conflicts Warning: conflicts propagate into strong conflicts! We call declared conflicts the conflicts declared inside DCF But all packages depending on xul-ext-adblock-plus will be incompatible with all packages depending on mozilla-firefox-adblock! These incompatibilities are called strong conflicts Data analysis Analysis of strong conflicts in snapshots of all DCF From 12th March 2005 to 4th May 2015 Stable and testing distributions for i386 architecture From 15k packages in 2005 to 43k packages > 100 Go of compressed raw data, > 1 To of compressed processed data. Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 4 / 10
  5. 5. Introduction Empirical analysis Conclusion How to track down all incompatibilities? Directly on the dependency graph? Too difficult! a b f v c d # e # g h Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 5 / 10
  6. 6. Introduction Empirical analysis Conclusion How to track down all incompatibilities? Directly on the dependency graph? Too difficult! a b f v c d # e # g h Using the coinst tool, we can manage it coinst output: c d a,e,f Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 5 / 10
  7. 7. Introduction Empirical analysis Conclusion Survival analysis Kaplan Meier estimator and curve: gives the probability that an event takes at least n units of time to occur Number of years before all conflicts get removed from a strong conflicting package 0 2 4 6 8 10 0.00.20.40.60.81.0 After package introduction Upon package introduction Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 6 / 10
  8. 8. Introduction Empirical analysis Conclusion Survival analysis Time before a strong conflict is introducted in a package The longer a package stays without conflict, the less likely one will appear 0 2 4 6 8 10 0.00.20.40.60.81.0 Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 7 / 10
  9. 9. Introduction Empirical analysis Conclusion Detecting new issues Trend breaks Main root cause (manually identified) Tool able to detect Relevance +4379/-4201 updated x11-common conflicts with videogen comigrate medium +2364/-2371 new libgdk-pixbuf* conflicts with libgtk2.0-0 this paper medium +1658 new liboss-salsa-asound2 conflicts with all alsa tools this paper minor +1279/-809 reinstallable cdebconf conflicts with debconf this paper serious +1268/-1270 updated initscripts conflicts with sysklogd comigrate serious +1188/-2442 updated python conflicts with ppmtofb challenged minor +1025/-1282 updated initscripts conflicts with selinux-policy-default comigrate serious +859/-1126 new libopenblas-base conflicts with libatlas3gf-* this paper medium +763 updated libsdl1.2debian conflicts with liboss-salsa-asound2 comigrate minor +758/-756 updated netbase conflicts with ifupdown comigrate serious +727 new libopenmpi1.6 conflicts with libopenmpi1.3 comigrate medium same less conflicts with man comigrate serious +706/-732 updated libldap-2.4-2 conflicts with libldap2 comigrate minor +682/-1074 updated libpam-modules conflicts with libpam-umask comigrate minor +633/-577 updated initscripts conflicts with bootchart comigrate minor +632 new package libgif4 conflicts with libungif4g this paper minor +536/-558 new packages libhttp-* conflicts with libwww-perl this paper medium Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 8 / 10
  10. 10. Introduction Empirical analysis Conclusion Conclusion While conflicts are declared for design reasons, they can break a lot of packages because of mistakes spreading through dependencies Such incompatibilities are generally detected and solved quickly thanks both to the work done by the community but also because of the existence of support tools Based on a historical analysis and trend breaks we can find problems not detected by existing tools! (i.e. we can build new tools or improve current ones) Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 9 / 10
  11. 11. Introduction Empirical analysis Conclusion Thanks for your attention Presentation slides http://maelick.net/presentations/msr2015 Replicate our study https://github.com/ecos-umons/DebianCoinstEvol Questions? Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 10 / 10

×