SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Mancoosi: bridging communities to improve
         package-based systems

                Roberto Di Cosmo
    University Paris Diderot Paris 7 and INRIA
                    Fossa 2009


              November 18th, 2009
The promise of GNU/Linux distributions

   GNU/Linux distributions are intermediaries between FOSS projects
   and their users




   They factor the work needed to mainain, configure, test, package
   together tens of thousands of different software components.
Package-based distributions: a very successful idea . . .




   Central notion : package, together with package management
   software
   A main innovations of GNU/Linux distributions: it opens the door
   to flexible configuration and management of complex systems via
   reusability and modularity.
Package management: a key industrial issue


   A few facts:
       In 2011, 80% of commercial software will contain Open
       Source code. . . 49,7% of critical application come from
       the Open Source world...
                                    Mark Driver (Gartner) sept.07

   A key industrial issue is to build faster, stronger, harder, better,
   more user oriented packaging technology, to master the challenge
   of the Open Source success.
   And yet, surprisingly little has been done in terms of R&D
   specifically related to package technology (as opposed to
   components or web services).
The Challenge of Distributions

   Mandriva, Debian, Ubuntu, and all other distribution editors are
   responsible for maintaining a free software distribution. It is a
   challenging task! (smooth upgrades, automatic dependency
   solving, up to date software . . . )

   Help is needed to build: better infrastructure for package
   maintainers and better package managers for final users.

   Two projects to the rescue:
         EDOS [2004–2007] aim: provide FOSS distribution editors
              with better QA tools
     Mancoosi [2008–2011] aim: provide with better package
              managers to improve their “platform management”
              experiences (upgrade, downgrade)
Packages, metadata, installation
            some files
Package =   some scripts         Example
            metadata             Package: aterm
                                 Version: 0.4.2-11
   Identification
                                 Section: x11
   Inter-package rel.            Installed-Size: 280
         Dependencies            Maintainer: G¨ran Weinholt ...
                                              o
         Conflicts                Architecture: i386
   Feature declarations          Depends: libc6 (>= 2.3.2.ds1-4),
                                   libice6 | xlibs (>> 4.1.0), ...
   Other
                                 Conflicts: suidmanager (<< 0.50)
       Package maintainer        Provides: x-terminal-emulator
       Textual descriptions      ...
       ...

       a package is the elemental component of modern distribution
       systems (not GNU/Linux specific)
       a working system is deployed by installing a package set
       (≈ 1000/2000 for GNU/Linux distro)
Sample installation
    Phase                   Trace
    User request            # apt-get install aterm
                            8Reading package lists... Done
                            >
                            >Building dependency tree... Done
                            >
                            >
                            >
                            >The following extra packages will be installed:
                            >
                            >
                            >
                            > libafterimage0
                            >
                            >
                            >
                            >The following NEW packages will be installed
                            <
    Constraint resolution       aterm libafterimage0
                            >
                            >0 upgraded, 2 newly installed, 0 to remove and 1786 not upgraded.
                            >
                            >
                            >Need to get 386kB of archives.
                            >
                            >
                            >
                            >After unpacking 807kB of additional disk space will be used.
                            >
                            >
                            >
                            >Do you want to continue [Y/n]? Y
                            >
                            :
                            8
                            >Get: 1 http://debian.ens-cachan.fr testing/main libafterimage0 2.2.8-2 [301kB]
                            <
    Package retrieval         Get: 2 http://debian.ens-cachan.fr testing/main aterm 1.0.1-4 [84.4kB]
                            >Fetched 386kB in 0s (410kB/s)
                            :
    Pre-configuration        {
                            8Selecting previously deselected package libafterimage0.
                            >
                            >(Reading database ... 294774 files and directories currently installed.)
                            >
                            >
                            <
                              Unpacking libafterimage0 (from .../libafterimage0_2.2.8-2_i386.deb) ...
    Unpacking
                            >Selecting previously deselected package aterm.
                            >
                            >Unpacking aterm (from .../aterm_1.0.1-4_i386.deb) ...
                            >
                            :
                            (
                              Setting up libafterimage0 (2.2.8-2) ...
    Configuration              Setting up aterm (1.0.1-4) ...


          each phase can fail (it actually happens quite often . . . )
          efforts are needed to identify errors as early as possible
One of EDOS outcomes: edos-debcheck

  EDOS has brought some major results for distribution editors:
        theory : checking if the dependencies of a package can be
               satisfied is NP-complete
      practice : several tools have been developed during EDOS (≈
               110’000 OCaml LOCs), some examples:
               edos-debcheck command line checker for package
                              installability
                     pkglab interactive, console-based environment
                              for repository inspection
                        ceve parser/converter between package list
                              formats
                         tart optimised algorithm to cut a repository
                              into slices (e.g. media), so that
                              packages available on the i-th slice are
                              installable using only slices up to i
Focus on edos-debcheck

  Written by Jerˆme Vouillon, edos-debcheck takes as input an
                o
  APT package list (e.g. /var/lib/apt/lists/*) and checks
  whether one, several, or all packages in it are installable wrt that
  repository.
  Customized SAT solver, quite fast: checking installability of all
  package in main testing/amd64 takes 5 seconds on an entry-level
  machine.
  Example
  edos-debcheck </var/lib/apt/lists/... main binary-amd64 Packages
  Parsing package file... 1.2 seconds    21617 packages
  Generating constraints... 2.3 seconds
  Checking packages... 1.5 seconds
  acx100-source (= 20070101-3): FAILED
  alien-arena (= 7.0-1): FAILED
  alien-arena-browser (= 7.0-1): FAILED
  alien-arena-server (= 7.0-1): FAILED
  alsa-firmware-loaders (= 1.0.16-1): FAILED
  amoeba (= 1.1-19): FAILED
  ...
  # explanation can be required as well
The Mancoosi project            [ http://www.mancoosi.org ]




       project strep FP7 (2008–2011)
        focus coherence and maintenance of a FOSS distribution
              installation (user point of view)
      Tools for user-side package management (package managers /
      meta-installer)
          installation
          removal
          upgrade
          downgrade
          ...
An upgrade problem example
   # sudo apt-get install debhelper
   Reading Package Lists... Done
   Building Dependency Tree... Done
   The following extra packages will be installed:
    armagetron armagetron-common autoconf bonobo-activation codebreaker debconf
    debconf-i18n debconf-utils dialog esound-common fb-music-high fontconfig
    frozen-bubble-data grepmail gv intltool-debian libaiksaurus-data
    libaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0
    libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0
    ...
   The following packages will be REMOVED:
     autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-dev
     libbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4
     libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-common
     libgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perl
     libpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-dev
     libsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-dev
     x-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-dev
     xlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
   The following NEW packages will be installed:
     armagetron-common debconf-i18n fb-music-high fontconfig intltool-debian
     libaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perl
     libfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6
     libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perl
     libmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1
     libplrpc-perl libsdl-console ...

   75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.
   Need to get 67.1MB of archives. After unpacking 26.9MB will be used.
   Do you want to continue? [Y/n] Abort.
Goals, approach and strategy

   Mancoosi’s goal:
       enable safe, efficient maintainability of the Open Source
       software infrastructure built out of software packages
   A twofold approach to reach this objective:
       design algorithms and tools to tackle the upgradeability
       problem;
       this allows to find good upgrade paths w.r.t. the user’s needs.
       conceive and implement a transactional update process;
       this allows to roll-back an unsatisfactory upgrade.
   A long term, ecosystem strategy to reach this objective:
       bring users, distributions, developers and researchers together!
       set up virtous cycles
All in a picture
Mancoosi architecture




    In Mancoosi, there are really two main activities, corresponding to
    the architecture of our design, and they are loosely coupled

                          User request WP4,WP5
                                     ↓
                      Platform management interface
               Optimal upgrade path computation WP4, WP5
               Transactional component manager WP2, WP3
                                     ↓
                             Software Platform
Upgrade resolution




   Abstract view of packages through the metadata lens.
Transactional updates




   Concrete view of packages through the maintainer scripts lens.
Mancoosi technology preview: strong dependencies

   GNU/Linux software distributions: probably the most complex
   system of systems on the planet




   HOW can you visualize such a system of systems?
Draw a graph, no deep knowledge


   kde-amusements and kde-toys in Debian 3.1 (aka sarge, 2005)
   were unnecessary components, overlapping kde-games and
   kde-edu.They are waste, and are gone today (2009).
   Should be easy to spot, only 244 components are concerned!
   Can you see this fact here?
Let’s try a more systemic approach

   Here is a graph of strong dominators for the KDE subsystem:




   See the problem, now?

   More on this at http://www.mancoosi.org
Concluding remark



   Everything developed in Mancoosi is already relevant for some, and
   will be increasingly relevant to all component based technologies
         Linux : packages
        Eclipse : plugins
        Firefox : extensions
          Java : beans
   Web services : predictable service assembly
            ... ...
Project Partners
Family pictures. . .




                       the Mancoosi team, Feb 2008
Questions




            Thank you for your attention.

Weitere ähnliche Inhalte

Was ist angesagt?

101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package managementAcácio Oliveira
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linuxnejadmand
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!Etsuji Nakai
 
Hunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory ForensicsHunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory ForensicsAndrew Case
 
Debian Secrets Loadays
Debian Secrets LoadaysDebian Secrets Loadays
Debian Secrets Loadaysloadays
 
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库maclean liu
 
Unix commands in etl testing
Unix commands in etl testingUnix commands in etl testing
Unix commands in etl testingGaruda Trainings
 
Linux Kernel Programming
Linux Kernel ProgrammingLinux Kernel Programming
Linux Kernel ProgrammingNalin Sharma
 
Linux internal
Linux internalLinux internal
Linux internalmcganesh
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolTorrid Networks Private Limited
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)skalaivanibutp
 

Was ist angesagt? (20)

Aix commands
Aix commandsAix commands
Aix commands
 
Linuxppt
LinuxpptLinuxppt
Linuxppt
 
Linux IO
Linux IOLinux IO
Linux IO
 
101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management101 2.5 use rpm and yum package management
101 2.5 use rpm and yum package management
 
Registry
RegistryRegistry
Registry
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linux
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!
 
Hunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory ForensicsHunting Mac Malware with Memory Forensics
Hunting Mac Malware with Memory Forensics
 
Debian Secrets Loadays
Debian Secrets LoadaysDebian Secrets Loadays
Debian Secrets Loadays
 
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
图文详解安装Net backup 6.5备份恢复oracle 10g rac 数据库
 
Unix commands in etl testing
Unix commands in etl testingUnix commands in etl testing
Unix commands in etl testing
 
Linux scheduler
Linux schedulerLinux scheduler
Linux scheduler
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Linux Kernel Programming
Linux Kernel ProgrammingLinux Kernel Programming
Linux Kernel Programming
 
RPM (LINUX)
RPM (LINUX)RPM (LINUX)
RPM (LINUX)
 
101 1.2 boot the system
101 1.2 boot the system101 1.2 boot the system
101 1.2 boot the system
 
Linux internal
Linux internalLinux internal
Linux internal
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)
 

Andere mochten auch

The 7 Habits of Highly Effective Search Engine Marketing
The 7 Habits of Highly Effective Search Engine MarketingThe 7 Habits of Highly Effective Search Engine Marketing
The 7 Habits of Highly Effective Search Engine Marketingdogpatchlabs
 
Nyc bid conference
Nyc bid conferenceNyc bid conference
Nyc bid conferenceREBNY
 
NDCC Presentation Final
NDCC Presentation FinalNDCC Presentation Final
NDCC Presentation Finallaureen920
 
Gauss jordan
Gauss jordanGauss jordan
Gauss jordanuis
 
Benchmarking New York City
Benchmarking New York CityBenchmarking New York City
Benchmarking New York CityREBNY
 
A2 co eu28e
A2 co eu28eA2 co eu28e
A2 co eu28eseraphy
 
REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...
REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...
REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...REBNY
 
Benvenuti nel gruppo curcio
Benvenuti nel gruppo curcioBenvenuti nel gruppo curcio
Benvenuti nel gruppo curciogiuseppe
 
视频编码原理简介
视频编码原理简介视频编码原理简介
视频编码原理简介pluschen
 
Cv, Daisy Mafubelu, December 2011
Cv, Daisy Mafubelu, December 2011Cv, Daisy Mafubelu, December 2011
Cv, Daisy Mafubelu, December 2011Daisy Mafubelu
 

Andere mochten auch (20)

The 7 Habits of Highly Effective Search Engine Marketing
The 7 Habits of Highly Effective Search Engine MarketingThe 7 Habits of Highly Effective Search Engine Marketing
The 7 Habits of Highly Effective Search Engine Marketing
 
Rep Rap - 3D OSS Printers - by adrian bowyer- fossa2011
Rep Rap - 3D OSS Printers -  by adrian bowyer- fossa2011Rep Rap - 3D OSS Printers -  by adrian bowyer- fossa2011
Rep Rap - 3D OSS Printers - by adrian bowyer- fossa2011
 
A recipe for happiness 2
A recipe for happiness 2A recipe for happiness 2
A recipe for happiness 2
 
Nyc bid conference
Nyc bid conferenceNyc bid conference
Nyc bid conference
 
NDCC Presentation Final
NDCC Presentation FinalNDCC Presentation Final
NDCC Presentation Final
 
Gauss jordan
Gauss jordanGauss jordan
Gauss jordan
 
Simulationroundtablept1
Simulationroundtablept1Simulationroundtablept1
Simulationroundtablept1
 
OSS Community management
OSS Community managementOSS Community management
OSS Community management
 
Benchmarking New York City
Benchmarking New York CityBenchmarking New York City
Benchmarking New York City
 
A2 co eu28e
A2 co eu28eA2 co eu28e
A2 co eu28e
 
REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...
REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...
REBNY NYC Benchmarking Seminar: NYSERDA ncentive Programs for Multi‐family Bu...
 
Benvenuti nel gruppo curcio
Benvenuti nel gruppo curcioBenvenuti nel gruppo curcio
Benvenuti nel gruppo curcio
 
Oss for undergraduate - fossa2010
Oss for undergraduate - fossa2010Oss for undergraduate - fossa2010
Oss for undergraduate - fossa2010
 
视频编码原理简介
视频编码原理简介视频编码原理简介
视频编码原理简介
 
%Ba%b7%b7%d5%e8 2
%Ba%b7%b7%d5%e8 2%Ba%b7%b7%d5%e8 2
%Ba%b7%b7%d5%e8 2
 
Eco System over code!
Eco System over code!Eco System over code!
Eco System over code!
 
OSS Project Quality & management
OSS Project Quality & managementOSS Project Quality & management
OSS Project Quality & management
 
Gallery
GalleryGallery
Gallery
 
fOSSa2012- l grisoni - collbaoration between art and science
fOSSa2012- l grisoni - collbaoration between art and sciencefOSSa2012- l grisoni - collbaoration between art and science
fOSSa2012- l grisoni - collbaoration between art and science
 
Cv, Daisy Mafubelu, December 2011
Cv, Daisy Mafubelu, December 2011Cv, Daisy Mafubelu, December 2011
Cv, Daisy Mafubelu, December 2011
 

Ähnlich wie Managing package upgrades and downgrades

101 2.4 use debian package management
101 2.4 use debian package management101 2.4 use debian package management
101 2.4 use debian package managementAcácio Oliveira
 
How to make debian package from scratch (linux)
How to make debian package from scratch (linux)How to make debian package from scratch (linux)
How to make debian package from scratch (linux)Thierry Gayet
 
Kernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: DebianKernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: DebianAnne Nicolas
 
Oracle11g On Fedora14
Oracle11g On Fedora14Oracle11g On Fedora14
Oracle11g On Fedora14kmsa
 
Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5Carlos Eduardo
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87Max Kleiner
 
Enterprise manager cloud control 12c(12.1) &agent安装图文指南
Enterprise manager cloud control 12c(12.1) &agent安装图文指南Enterprise manager cloud control 12c(12.1) &agent安装图文指南
Enterprise manager cloud control 12c(12.1) &agent安装图文指南maclean liu
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...Eric Smalling
 
Debian Packaging tutorial
Debian Packaging tutorialDebian Packaging tutorial
Debian Packaging tutorialnussbauml
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh thingsMarcus Deglos
 
the NML project
the NML projectthe NML project
the NML projectLei Yang
 
Docker Security
Docker SecurityDocker Security
Docker SecurityBladE0341
 
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris WhitepaperEucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris WhitepaperTorry Harris Business Solutions
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 

Ähnlich wie Managing package upgrades and downgrades (20)

101 2.4 use debian package management
101 2.4 use debian package management101 2.4 use debian package management
101 2.4 use debian package management
 
How to make debian package from scratch (linux)
How to make debian package from scratch (linux)How to make debian package from scratch (linux)
How to make debian package from scratch (linux)
 
Kernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: DebianKernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: Debian
 
Oracle11g On Fedora14
Oracle11g On Fedora14Oracle11g On Fedora14
Oracle11g On Fedora14
 
Oracle11g on fedora14
Oracle11g on fedora14Oracle11g on fedora14
Oracle11g on fedora14
 
Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5
 
Rac on NFS
Rac on NFSRac on NFS
Rac on NFS
 
Debian packaging
Debian packagingDebian packaging
Debian packaging
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87
 
Enterprise manager cloud control 12c(12.1) &agent安装图文指南
Enterprise manager cloud control 12c(12.1) &agent安装图文指南Enterprise manager cloud control 12c(12.1) &agent安装图文指南
Enterprise manager cloud control 12c(12.1) &agent安装图文指南
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
 
Debian Packaging tutorial
Debian Packaging tutorialDebian Packaging tutorial
Debian Packaging tutorial
 
Performance all teh things
Performance all teh thingsPerformance all teh things
Performance all teh things
 
the NML project
the NML projectthe NML project
the NML project
 
OTRS
OTRSOTRS
OTRS
 
Install oracle11gr2 rhel5
Install oracle11gr2 rhel5Install oracle11gr2 rhel5
Install oracle11gr2 rhel5
 
Docker Security
Docker SecurityDocker Security
Docker Security
 
Habilitar repositorio EPEL RHEL
Habilitar repositorio EPEL RHELHabilitar repositorio EPEL RHEL
Habilitar repositorio EPEL RHEL
 
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris WhitepaperEucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
Eucalyptus on Xen - Build Enterprise Private Cloud | Torry Harris Whitepaper
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 

Mehr von fOSSa - Free Open Source Software Academia Conference

Mehr von fOSSa - Free Open Source Software Academia Conference (20)

Les douze commandements du community manager
Les douze commandements du community managerLes douze commandements du community manager
Les douze commandements du community manager
 
Les licences open source simplement ?
Les licences open source simplement ? Les licences open source simplement ?
Les licences open source simplement ?
 
Diffuser les résultats de recherche ?
Diffuser les résultats de recherche ? Diffuser les résultats de recherche ?
Diffuser les résultats de recherche ?
 
- Protection du logiciel - **François Pelligrini**
- Protection du logiciel - **François Pelligrini** - Protection du logiciel - **François Pelligrini**
- Protection du logiciel - **François Pelligrini**
 
La valorisation de logiciels de recherche au sein de l'Inria? / Transfert ma...
La valorisation de logiciels de recherche au sein de l'Inria?  / Transfert ma...La valorisation de logiciels de recherche au sein de l'Inria?  / Transfert ma...
La valorisation de logiciels de recherche au sein de l'Inria? / Transfert ma...
 
Resultats nuit info 2013
Resultats nuit info 2013Resultats nuit info 2013
Resultats nuit info 2013
 
In trust we trust ! Blablacar by frederic mazzella
In trust we trust ! Blablacar by frederic mazzellaIn trust we trust ! Blablacar by frederic mazzella
In trust we trust ! Blablacar by frederic mazzella
 
Open sourcing of Journalism by James Corbett
Open sourcing of Journalism by James CorbettOpen sourcing of Journalism by James Corbett
Open sourcing of Journalism by James Corbett
 
Open intelligence by tom secker
Open intelligence by tom seckerOpen intelligence by tom secker
Open intelligence by tom secker
 
Eco Nomy Eco Trust Eco Systems - Introduction
Eco Nomy Eco Trust Eco Systems - IntroductionEco Nomy Eco Trust Eco Systems - Introduction
Eco Nomy Eco Trust Eco Systems - Introduction
 
Innovation & Massive data
Innovation & Massive dataInnovation & Massive data
Innovation & Massive data
 
#SAIFC késako - Semantic Analysis for Flow Computing
 #SAIFC késako - Semantic Analysis for Flow Computing #SAIFC késako - Semantic Analysis for Flow Computing
#SAIFC késako - Semantic Analysis for Flow Computing
 
OWF2013 INTERNET OF THINGS
OWF2013 INTERNET OF THINGSOWF2013 INTERNET OF THINGS
OWF2013 INTERNET OF THINGS
 
Afup 10 ans plus tard
Afup 10 ans plus tardAfup 10 ans plus tard
Afup 10 ans plus tard
 
HP Fossology v5.3
HP Fossology v5.3HP Fossology v5.3
HP Fossology v5.3
 
Analyse de la propriete intellectuel
Analyse de la propriete intellectuelAnalyse de la propriete intellectuel
Analyse de la propriete intellectuel
 
From open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysfera
 
Management de communaute
Management de communauteManagement de communaute
Management de communaute
 
Methods about Open Source Governance v2.5
Methods about Open Source Governance v2.5Methods about Open Source Governance v2.5
Methods about Open Source Governance v2.5
 
Systematic / GTLL / Ecosystemes logiciel-libre in PARIS region
Systematic / GTLL / Ecosystemes logiciel-libre in PARIS regionSystematic / GTLL / Ecosystemes logiciel-libre in PARIS region
Systematic / GTLL / Ecosystemes logiciel-libre in PARIS region
 

Kürzlich hochgeladen

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Kürzlich hochgeladen (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Managing package upgrades and downgrades

  • 1. Mancoosi: bridging communities to improve package-based systems Roberto Di Cosmo University Paris Diderot Paris 7 and INRIA Fossa 2009 November 18th, 2009
  • 2. The promise of GNU/Linux distributions GNU/Linux distributions are intermediaries between FOSS projects and their users They factor the work needed to mainain, configure, test, package together tens of thousands of different software components.
  • 3. Package-based distributions: a very successful idea . . . Central notion : package, together with package management software A main innovations of GNU/Linux distributions: it opens the door to flexible configuration and management of complex systems via reusability and modularity.
  • 4. Package management: a key industrial issue A few facts: In 2011, 80% of commercial software will contain Open Source code. . . 49,7% of critical application come from the Open Source world... Mark Driver (Gartner) sept.07 A key industrial issue is to build faster, stronger, harder, better, more user oriented packaging technology, to master the challenge of the Open Source success. And yet, surprisingly little has been done in terms of R&D specifically related to package technology (as opposed to components or web services).
  • 5. The Challenge of Distributions Mandriva, Debian, Ubuntu, and all other distribution editors are responsible for maintaining a free software distribution. It is a challenging task! (smooth upgrades, automatic dependency solving, up to date software . . . ) Help is needed to build: better infrastructure for package maintainers and better package managers for final users. Two projects to the rescue: EDOS [2004–2007] aim: provide FOSS distribution editors with better QA tools Mancoosi [2008–2011] aim: provide with better package managers to improve their “platform management” experiences (upgrade, downgrade)
  • 6. Packages, metadata, installation some files Package = some scripts Example metadata Package: aterm Version: 0.4.2-11 Identification Section: x11 Inter-package rel. Installed-Size: 280 Dependencies Maintainer: G¨ran Weinholt ... o Conflicts Architecture: i386 Feature declarations Depends: libc6 (>= 2.3.2.ds1-4), libice6 | xlibs (>> 4.1.0), ... Other Conflicts: suidmanager (<< 0.50) Package maintainer Provides: x-terminal-emulator Textual descriptions ... ... a package is the elemental component of modern distribution systems (not GNU/Linux specific) a working system is deployed by installing a package set (≈ 1000/2000 for GNU/Linux distro)
  • 7. Sample installation Phase Trace User request # apt-get install aterm 8Reading package lists... Done > >Building dependency tree... Done > > > >The following extra packages will be installed: > > > > libafterimage0 > > > >The following NEW packages will be installed < Constraint resolution aterm libafterimage0 > >0 upgraded, 2 newly installed, 0 to remove and 1786 not upgraded. > > >Need to get 386kB of archives. > > > >After unpacking 807kB of additional disk space will be used. > > > >Do you want to continue [Y/n]? Y > : 8 >Get: 1 http://debian.ens-cachan.fr testing/main libafterimage0 2.2.8-2 [301kB] < Package retrieval Get: 2 http://debian.ens-cachan.fr testing/main aterm 1.0.1-4 [84.4kB] >Fetched 386kB in 0s (410kB/s) : Pre-configuration { 8Selecting previously deselected package libafterimage0. > >(Reading database ... 294774 files and directories currently installed.) > > < Unpacking libafterimage0 (from .../libafterimage0_2.2.8-2_i386.deb) ... Unpacking >Selecting previously deselected package aterm. > >Unpacking aterm (from .../aterm_1.0.1-4_i386.deb) ... > : ( Setting up libafterimage0 (2.2.8-2) ... Configuration Setting up aterm (1.0.1-4) ... each phase can fail (it actually happens quite often . . . ) efforts are needed to identify errors as early as possible
  • 8. One of EDOS outcomes: edos-debcheck EDOS has brought some major results for distribution editors: theory : checking if the dependencies of a package can be satisfied is NP-complete practice : several tools have been developed during EDOS (≈ 110’000 OCaml LOCs), some examples: edos-debcheck command line checker for package installability pkglab interactive, console-based environment for repository inspection ceve parser/converter between package list formats tart optimised algorithm to cut a repository into slices (e.g. media), so that packages available on the i-th slice are installable using only slices up to i
  • 9. Focus on edos-debcheck Written by Jerˆme Vouillon, edos-debcheck takes as input an o APT package list (e.g. /var/lib/apt/lists/*) and checks whether one, several, or all packages in it are installable wrt that repository. Customized SAT solver, quite fast: checking installability of all package in main testing/amd64 takes 5 seconds on an entry-level machine. Example edos-debcheck </var/lib/apt/lists/... main binary-amd64 Packages Parsing package file... 1.2 seconds 21617 packages Generating constraints... 2.3 seconds Checking packages... 1.5 seconds acx100-source (= 20070101-3): FAILED alien-arena (= 7.0-1): FAILED alien-arena-browser (= 7.0-1): FAILED alien-arena-server (= 7.0-1): FAILED alsa-firmware-loaders (= 1.0.16-1): FAILED amoeba (= 1.1-19): FAILED ... # explanation can be required as well
  • 10. The Mancoosi project [ http://www.mancoosi.org ] project strep FP7 (2008–2011) focus coherence and maintenance of a FOSS distribution installation (user point of view) Tools for user-side package management (package managers / meta-installer) installation removal upgrade downgrade ...
  • 11. An upgrade problem example # sudo apt-get install debhelper Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: armagetron armagetron-common autoconf bonobo-activation codebreaker debconf debconf-i18n debconf-utils dialog esound-common fb-music-high fontconfig frozen-bubble-data grepmail gv intltool-debian libaiksaurus-data libaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0 libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0 ... The following packages will be REMOVED: autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-dev libbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4 libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-common libgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perl libpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-dev libsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-dev x-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-dev xlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader The following NEW packages will be installed: armagetron-common debconf-i18n fb-music-high fontconfig intltool-debian libaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perl libfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6 libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perl libmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1 libplrpc-perl libsdl-console ... 75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded. Need to get 67.1MB of archives. After unpacking 26.9MB will be used. Do you want to continue? [Y/n] Abort.
  • 12. Goals, approach and strategy Mancoosi’s goal: enable safe, efficient maintainability of the Open Source software infrastructure built out of software packages A twofold approach to reach this objective: design algorithms and tools to tackle the upgradeability problem; this allows to find good upgrade paths w.r.t. the user’s needs. conceive and implement a transactional update process; this allows to roll-back an unsatisfactory upgrade. A long term, ecosystem strategy to reach this objective: bring users, distributions, developers and researchers together! set up virtous cycles
  • 13. All in a picture Mancoosi architecture In Mancoosi, there are really two main activities, corresponding to the architecture of our design, and they are loosely coupled User request WP4,WP5 ↓ Platform management interface Optimal upgrade path computation WP4, WP5 Transactional component manager WP2, WP3 ↓ Software Platform
  • 14. Upgrade resolution Abstract view of packages through the metadata lens.
  • 15. Transactional updates Concrete view of packages through the maintainer scripts lens.
  • 16. Mancoosi technology preview: strong dependencies GNU/Linux software distributions: probably the most complex system of systems on the planet HOW can you visualize such a system of systems?
  • 17. Draw a graph, no deep knowledge kde-amusements and kde-toys in Debian 3.1 (aka sarge, 2005) were unnecessary components, overlapping kde-games and kde-edu.They are waste, and are gone today (2009). Should be easy to spot, only 244 components are concerned! Can you see this fact here?
  • 18. Let’s try a more systemic approach Here is a graph of strong dominators for the KDE subsystem: See the problem, now? More on this at http://www.mancoosi.org
  • 19. Concluding remark Everything developed in Mancoosi is already relevant for some, and will be increasingly relevant to all component based technologies Linux : packages Eclipse : plugins Firefox : extensions Java : beans Web services : predictable service assembly ... ...
  • 21. Family pictures. . . the Mancoosi team, Feb 2008
  • 22. Questions Thank you for your attention.