SlideShare a Scribd company logo
1 of 38
Download to read offline
Introduction
                     APT-PBO
          Experimental Results
                  Conclusions




    APT-PBO: improving the Software
Dependency Problem using Pseudo-Boolean
              Optimization
          FOSDEM 2011 - Brussels


                  Paulo Trezentos


                  February 6, 2011



                    Trezentos    APT-PBO   1/ 23
Introduction
                                  APT-PBO
                       Experimental Results
                               Conclusions



Agenda
  1   Introduction
         Problem
  2   APT-PBO
        Architecture
        Algorithm
  3   Experimental Results
        Unmet dependencies analysis
        Meta-installers performance
        Solutions assessment
        Multicriteria
  4   Conclusions

                                 Trezentos    APT-PBO   2/ 23
Introduction
                                  APT-PBO
                                              Problem
                       Experimental Results
                               Conclusions



Agenda
  1   Introduction
         Problem
  2   APT-PBO
        Architecture
        Algorithm
  3   Experimental Results
        Unmet dependencies analysis
        Meta-installers performance
        Solutions assessment
        Multicriteria
  4   Conclusions

                                 Trezentos    APT-PBO   3/ 23
Introduction
                             APT-PBO
                                         Problem
                  Experimental Results
                          Conclusions



Installing Linux packages (software components) is...




      XKCD Webcomics, http://xkcd.com/754/




                            Trezentos    APT-PBO   4/ 23
Introduction
                               APT-PBO
                                           Problem
                    Experimental Results
                            Conclusions



Introduction to the problem

      Relevance:
          Installation process is critical for Operating Systems
          dissemination




                              Trezentos    APT-PBO   5/ 23
Introduction
                               APT-PBO
                                           Problem
                    Experimental Results
                            Conclusions



Introduction to the problem

      Relevance:
          Installation process is critical for Operating Systems
          dissemination
      Problem:
          It is often reported that problems of broken dependencies
          between software packages in Linux




                              Trezentos    APT-PBO   5/ 23
Introduction
                               APT-PBO
                                           Problem
                    Experimental Results
                            Conclusions



Introduction to the problem

      Relevance:
          Installation process is critical for Operating Systems
          dissemination
      Problem:
          It is often reported that problems of broken dependencies
          between software packages in Linux
      Solution:
          Use SAT to solve dependencies or, better, use PBO to
          choose between solutions




                              Trezentos    APT-PBO   5/ 23
Introduction
                               APT-PBO
                                           Problem
                    Experimental Results
                            Conclusions



Introduction to the problem

      Relevance:
          Installation process is critical for Operating Systems
          dissemination
      Problem:
          It is often reported that problems of broken dependencies
          between software packages in Linux
      Solution:
          Use SAT to solve dependencies or, better, use PBO to
          choose between solutions
      Related work:
          EDOS, MANCOOSI, Opium / Linspire, SuSE Libzypp,
          Eclipse P2 / SAT4J,...


                              Trezentos    APT-PBO   5/ 23
Introduction
                                    APT-PBO
                                                    Problem
                         Experimental Results
                                 Conclusions



Dependencies solving
                                     turbo          1
                           1
                engine
                           2
                            2                   1
                 wheel               tyre                     conflicts
  car    2                    3
                                                2                            1
                                                        0        glass
                          1
                                     window             1                    2
                 door
                          2                                      glass
                                                        2
        Install car




                                   Trezentos        APT-PBO          6/ 23
Introduction
                                     APT-PBO
                                                         Problem
                          Experimental Results
                                  Conclusions



Dependencies solving
                                      turbo          1
                            1
                 engine        2
                               2                 1
                  wheel               tyre                         conflicts
   car    2                 3
                                                 2                                 1
                                                          0           glass
                           1
                                      window              1                        2
                   door
                           2                                          glass
                                                          2

         Install car
         Need to install the dependencies / avoid conflicts
         NP-problem


                                    Trezentos            APT-PBO           6/ 23
Introduction
                                  APT-PBO     Architecture
                       Experimental Results   Algorithm
                               Conclusions



Agenda
  1   Introduction
         Problem
  2   APT-PBO
        Architecture
        Algorithm
  3   Experimental Results
        Unmet dependencies analysis
        Meta-installers performance
        Solutions assessment
        Multicriteria
  4   Conclusions

                                 Trezentos    APT-PBO        7/ 23
Introduction
                             APT-PBO     Architecture
                  Experimental Results   Algorithm
                          Conclusions



APT-PBO Architecture




     pboinstall: encoding of the problem




                            Trezentos    APT-PBO        8/ 23
Introduction
                             APT-PBO     Architecture
                  Experimental Results   Algorithm
                          Conclusions



APT-PBO Architecture




     pboinstall: encoding of the problem
     PBO solver: external solver




                            Trezentos    APT-PBO        8/ 23
Introduction
                             APT-PBO     Architecture
                  Experimental Results   Algorithm
                          Conclusions



APT-PBO Architecture




     pboinstall: encoding of the problem
     PBO solver: external solver
     Parsing / processing: analyse the solution and iterate




                            Trezentos    APT-PBO        8/ 23
Introduction
                              APT-PBO     Architecture
                   Experimental Results   Algorithm
                           Conclusions



APT-PBO Architecture




     pboinstall: encoding of the problem
     PBO solver: external solver
     Parsing / processing: analyse the solution and iterate
     apt-get install: install packages



                             Trezentos    APT-PBO        8/ 23
Introduction
                                 APT-PBO     Architecture
                      Experimental Results   Algorithm
                              Conclusions



APT-PBO Algorithm
  Require: Package to install p1 , Pol
   1: repeat
   2:   (f , c) ← call_pboinstall(p1 , Pc , Pol, R, PI)
   3:   S ← call_solver (f , c)
   4:   Pc ← 0
   5:   for all pi ∈ S such that pi = 0 do
   6:       Pc ← check _rdeps(pi )
   7:   end for
   8:   for all pj ∈ S such that pj = 1 do
   9:       Pc ← check _rconfs(pj )
  10:   end for
  11: until Pc = 0
  12: return f , c


                                Trezentos    APT-PBO        9/ 23
Introduction
                                APT-PBO     Architecture
                     Experimental Results   Algorithm
                             Conclusions



Multicriteria
       If we try to satisfy different criteria, we have a MCDM
       (Multicriteria Decision Making problem)




                               Trezentos    APT-PBO        10/ 23
Introduction
                                APT-PBO         Architecture
                     Experimental Results       Algorithm
                             Conclusions



Multicriteria
       If we try to satisfy different criteria, we have a MCDM
       (Multicriteria Decision Making problem)
       APT-PBO integrates different objective function as a
       multiobjective problem (MOP) and transforming into a
       single objective problem through weighted sum
       scalarization:
                                            3
                                min             Wk · fk (P)
                                        k =1

       and therefore:

                min (Wr · f1 (P) + Wp · f2 (P) + Wv · f3 (P))


                               Trezentos        APT-PBO        10/ 23
Introduction   Unmet dependencies analysis
                                  APT-PBO     Meta-installers performance
                       Experimental Results   Solutions assessment
                               Conclusions    Multicriteria



Agenda
  1   Introduction
         Problem
  2   APT-PBO
        Architecture
        Algorithm
  3   Experimental Results
        Unmet dependencies analysis
        Meta-installers performance
        Solutions assessment
        Multicriteria
  4   Conclusions

                                 Trezentos    APT-PBO         11/ 23
Introduction                 Unmet dependencies analysis
                                   APT-PBO                   Meta-installers performance
                        Experimental Results                 Solutions assessment
                                Conclusions                  Multicriteria



Unmet dependencies analysis
                                                 ksplash




               kdelibs4c2a   libc6    libgcc1   libstdc++6      kdebase-data      libx11-6   libxext6




                                                   3.5.9.dfsg.1-6              4.2.2-1




       Meta-installer                Possible                      No                           Wrong
                                     Solutions                  Solutions                      Solutions
       Apt-get                         591                        123                              0
       Aptitude                        713                          0                              1
       Smart                           714                          0                              0
       Apt-pbo                         714                          0                              0



                                      Trezentos              APT-PBO                     12/ 23
Introduction                  Unmet dependencies analysis
                                                         APT-PBO                    Meta-installers performance
                                              Experimental Results                  Solutions assessment
                                                      Conclusions                   Multicriteria



Meta-installers performance
                                          00-14
                                                                                                                apt-get
                                                                                                               aptitude
                                                                                                                 smart
                                          00-12                                                                apt-pbo


                                          00-10


               Execution time (seconds)
                                          00-08


                                          00-06


                                          00-04


                                          00-02


                                          00-00
                                                  0   20      40            60            80             100       120       140
                                                                   Problem size (# installed packages)



      Meta-installer                                  Average Time                                 Standard Deviation
      Apt-get                                           00:00.21                                       00:00.17
      Aptitude                                          00:00.62                                       00:00.15
      Smart                                             00:02.63                                       00:00.25
      Apt-pbo                                           00:03.77                                       00:01.91
                                                           Trezentos                APT-PBO                         13/ 23
Introduction   Unmet dependencies analysis
                              APT-PBO     Meta-installers performance
                   Experimental Results   Solutions assessment
                           Conclusions    Multicriteria



Solutions assessment

      Each package transaction can include installation, update,
      removal or downgrade
      In 1.000 package transactions, how each meta-installer
      behaves?
   Tool             Installed Updated Removed Down-
                                                        graded
   apt-get            7,766        17         12           0
   aptitude           8,423        18        161          464
   smart              7,786        92        124          479
   PBO freshness      6,808      20,449       25          567
   PBO removal        7,767        11        162          443
   PBO number         7,729        13        102          500

                             Trezentos    APT-PBO         14/ 23
Introduction              Unmet dependencies analysis
                                            APT-PBO                Meta-installers performance
                                 Experimental Results              Solutions assessment
                                         Conclusions               Multicriteria



Solutions assessment
                                                                                        Downgrade
                                                                                        Remove
                                                                                        Updates
                                                                                        Install
   % of total



                A



                        A



                                 Sm



                                          PB



                                                       PB



                                                                     PB
                 pt



                         pt




                                           O



                                                           O



                                                                        O
                                  ar
                   -g



                           itu




                                               -F



                                                            -R



                                                                          -N
                                      t
                   et



                            de




                                                  r



                                                               e



                                                                            um
                                                 es



                                                               m
                                                  hn



                                                                ov



                                                                               be
                                                      es



                                                                   al



                                                                                 r
                                                       s




                                           Trezentos               APT-PBO           15/ 23
Introduction   Unmet dependencies analysis
                               APT-PBO     Meta-installers performance
                    Experimental Results   Solutions assessment
                            Conclusions    Multicriteria



Multi-criteria




       In APT-PBO, varying the weights, we can have different
       solutions.




                              Trezentos    APT-PBO         16/ 23
Introduction   Unmet dependencies analysis
                               APT-PBO     Meta-installers performance
                    Experimental Results   Solutions assessment
                            Conclusions    Multicriteria



Multi-criteria
       In APT-PBO, varying the weights, we can have different
       solutions.
       For example, varying freshness weight we can obtain
       different solutions for package at-spi:

                               Aggressive            Conservative
             Install                9                    37
             Updates               35                    35
             Remove                 1                     0
             Downgrade              7                    10
             Time               00:19.45              00:17.37


                              Trezentos    APT-PBO         16/ 23
Introduction                       Unmet dependencies analysis
                                                            APT-PBO                         Meta-installers performance
                                                 Experimental Results                       Solutions assessment
                                                         Conclusions                        Multicriteria



ap-spi - conservative freshness

            To avoid the removal of “file-roller” we perform the
            installation of 28 extra-packages
                                libgconf2-4     conflicts < 2.24        libbonobo2-0             at-spi
                               2.26 -> 2.22                                 2.22                 1.22




               breaks < 2.24    file-roller     breaks < 2.24      libnautilus-extension1
    ..+2
                               2.26 ->2.22                              2.26 ->2.20




           libgnomevfs2-0
                                       ...+24
                2.22




               libhal1
                 0.5




                                                                       Trezentos            APT-PBO         17/ 23
Introduction                      Unmet dependencies analysis
                                                                 APT-PBO                        Meta-installers performance
                                                      Experimental Results                      Solutions assessment
                                                              Conclusions                       Multicriteria



ap-spi - agressive freshness



             With “just” one removal of “file-roller” with avoid the
             installation of 28 packages and the downgrade of 3.
                                             libgconf2-4   conflicts < 2.24      libbonobo2-0         at-spi
                                            2.26 -> 2.22                             2.22             1.22




   libnautilus-extension1   breaks < 2.24    file-roller
            2.26                            2.26 ->2.22




                                                                              Trezentos         APT-PBO         18/ 23
Introduction
                                  APT-PBO
                       Experimental Results
                               Conclusions



Agenda
  1   Introduction
         Problem
  2   APT-PBO
        Architecture
        Algorithm
  3   Experimental Results
        Unmet dependencies analysis
        Meta-installers performance
        Solutions assessment
        Multicriteria
  4   Conclusions

                                 Trezentos    APT-PBO   19/ 23
Introduction
                             APT-PBO
                  Experimental Results
                          Conclusions



Conclusions


     APT-PBO is a freely available tool (GPL) that can be
     tested, available for Debian, Mandriva and Caixa Magica




                            Trezentos    APT-PBO   20/ 23
Introduction
                             APT-PBO
                  Experimental Results
                          Conclusions



Conclusions


     APT-PBO is a freely available tool (GPL) that can be
     tested, available for Debian, Mandriva and Caixa Magica
     PBO encoding proved to be suitable for the problem and
     provides extra-flexibility compared with SAT tools




                            Trezentos    APT-PBO   20/ 23
Introduction
                              APT-PBO
                   Experimental Results
                           Conclusions



Conclusions


     APT-PBO is a freely available tool (GPL) that can be
     tested, available for Debian, Mandriva and Caixa Magica
     PBO encoding proved to be suitable for the problem and
     provides extra-flexibility compared with SAT tools
     Multi-criteria is a desirable and achievable option




                             Trezentos    APT-PBO   20/ 23
Introduction
                              APT-PBO
                   Experimental Results
                           Conclusions



Conclusions


     APT-PBO is a freely available tool (GPL) that can be
     tested, available for Debian, Mandriva and Caixa Magica
     PBO encoding proved to be suitable for the problem and
     provides extra-flexibility compared with SAT tools
     Multi-criteria is a desirable and achievable option
     Performance is an issue for large repositories and some
     combination of weights.




                             Trezentos    APT-PBO   20/ 23
Introduction
                             APT-PBO
                  Experimental Results
                          Conclusions



Future work



      Better tuning of PBO encoding and work with PBO solver
      researchers to improve performance issues




                            Trezentos    APT-PBO   21/ 23
Introduction
                              APT-PBO
                   Experimental Results
                           Conclusions



Future work



      Better tuning of PBO encoding and work with PBO solver
      researchers to improve performance issues
      Support new features like using APT-PBO for removals,et
      all




                             Trezentos    APT-PBO   21/ 23
Introduction
                              APT-PBO
                   Experimental Results
                           Conclusions



Future work



      Better tuning of PBO encoding and work with PBO solver
      researchers to improve performance issues
      Support new features like using APT-PBO for removals,et
      all
      Enhance interactive mode




                             Trezentos    APT-PBO   21/ 23
Introduction
                              APT-PBO
                   Experimental Results
                           Conclusions



More information


      Paulo Trezentos, Ines Lynce, and Arlindo L. Oliveira.
      Apt-pbo: solving the software dependency problem using
      pseudo-boolean optimization. In ASE 10: Proceedings of
      the IEEE/ACM international conference on Automated
      software engineering, pages 427-436, New York, NY, USA,
      2010. ACM




                             Trezentos    APT-PBO   22/ 23
Introduction
                              APT-PBO
                   Experimental Results
                           Conclusions



More information


      Paulo Trezentos, Ines Lynce, and Arlindo L. Oliveira.
      Apt-pbo: solving the software dependency problem using
      pseudo-boolean optimization. In ASE 10: Proceedings of
      the IEEE/ACM international conference on Automated
      software engineering, pages 427-436, New York, NY, USA,
      2010. ACM
      http://aptpbo.caixamagica.pt




                             Trezentos    APT-PBO   22/ 23
Introduction
                             APT-PBO
                  Experimental Results
                          Conclusions



Thank you.




     Questions.




                            Trezentos    APT-PBO   23/ 23

More Related Content

Similar to Aptpbo fosdem

Speech quality Learnings
Speech quality LearningsSpeech quality Learnings
Speech quality LearningsLoly Correa
 
On the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency networkOn the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency networkTom Mens
 
On the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency networkOn the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency networkeconst
 
PEPPOL Test Guidelines
PEPPOL Test GuidelinesPEPPOL Test Guidelines
PEPPOL Test GuidelinesFriso de Jong
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsightchiportal
 
PIDtuningsoftwareApracticalreview.pdf
PIDtuningsoftwareApracticalreview.pdfPIDtuningsoftwareApracticalreview.pdf
PIDtuningsoftwareApracticalreview.pdfAbdulSalamSagir1
 
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...Puppet
 
Comparing the code quality of ECMs
Comparing the code quality of ECMsComparing the code quality of ECMs
Comparing the code quality of ECMsNuxeo
 
TPOT: The data science assistant
TPOT: The data science assistantTPOT: The data science assistant
TPOT: The data science assistantHoffman Lab
 
PoR_evaluation_measure_acm_mm_2020
PoR_evaluation_measure_acm_mm_2020PoR_evaluation_measure_acm_mm_2020
PoR_evaluation_measure_acm_mm_2020VasileiosMezaris
 
NG BB 38 ANALYZE Tollgate
NG BB 38 ANALYZE TollgateNG BB 38 ANALYZE Tollgate
NG BB 38 ANALYZE TollgateLeanleaders.org
 
NG BB 51 IMPROVE Tollgate
NG BB 51 IMPROVE TollgateNG BB 51 IMPROVE Tollgate
NG BB 51 IMPROVE TollgateLeanleaders.org
 
UMTS Speech Quality Principles.ppt
UMTS Speech Quality Principles.pptUMTS Speech Quality Principles.ppt
UMTS Speech Quality Principles.pptssuser5a90d61
 
Managing the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven TechniquesManaging the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven TechniquesAlfonso Pierantonio
 
PEPPOL Pilot Execution Guidelines
PEPPOL Pilot Execution GuidelinesPEPPOL Pilot Execution Guidelines
PEPPOL Pilot Execution GuidelinesFriso de Jong
 

Similar to Aptpbo fosdem (20)

Industrial network commissioning and testing - e+h june 2018 dave tomlin
Industrial network commissioning and testing - e+h june 2018   dave tomlinIndustrial network commissioning and testing - e+h june 2018   dave tomlin
Industrial network commissioning and testing - e+h june 2018 dave tomlin
 
7. industrial network commissioning and test dave tomlin
7. industrial network commissioning and test   dave tomlin7. industrial network commissioning and test   dave tomlin
7. industrial network commissioning and test dave tomlin
 
UNH-IOL NVMe Plugfest #12 Webinar
UNH-IOL NVMe Plugfest #12 WebinarUNH-IOL NVMe Plugfest #12 Webinar
UNH-IOL NVMe Plugfest #12 Webinar
 
Speech quality Learnings
Speech quality LearningsSpeech quality Learnings
Speech quality Learnings
 
On the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency networkOn the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency network
 
UNH-IOL NVMe Plugfest Webinar #11
UNH-IOL NVMe Plugfest Webinar #11UNH-IOL NVMe Plugfest Webinar #11
UNH-IOL NVMe Plugfest Webinar #11
 
On the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency networkOn the evolution of technical lag in the npm package dependency network
On the evolution of technical lag in the npm package dependency network
 
PEPPOL Test Guidelines
PEPPOL Test GuidelinesPEPPOL Test Guidelines
PEPPOL Test Guidelines
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
 
State of Plone 4 and 5
State of Plone 4 and 5State of Plone 4 and 5
State of Plone 4 and 5
 
PIDtuningsoftwareApracticalreview.pdf
PIDtuningsoftwareApracticalreview.pdfPIDtuningsoftwareApracticalreview.pdf
PIDtuningsoftwareApracticalreview.pdf
 
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
PuppetConf 2016: Delivering Premium Quality Modules: Using Beaker and VMpoole...
 
Comparing the code quality of ECMs
Comparing the code quality of ECMsComparing the code quality of ECMs
Comparing the code quality of ECMs
 
TPOT: The data science assistant
TPOT: The data science assistantTPOT: The data science assistant
TPOT: The data science assistant
 
PoR_evaluation_measure_acm_mm_2020
PoR_evaluation_measure_acm_mm_2020PoR_evaluation_measure_acm_mm_2020
PoR_evaluation_measure_acm_mm_2020
 
NG BB 38 ANALYZE Tollgate
NG BB 38 ANALYZE TollgateNG BB 38 ANALYZE Tollgate
NG BB 38 ANALYZE Tollgate
 
NG BB 51 IMPROVE Tollgate
NG BB 51 IMPROVE TollgateNG BB 51 IMPROVE Tollgate
NG BB 51 IMPROVE Tollgate
 
UMTS Speech Quality Principles.ppt
UMTS Speech Quality Principles.pptUMTS Speech Quality Principles.ppt
UMTS Speech Quality Principles.ppt
 
Managing the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven TechniquesManaging the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven Techniques
 
PEPPOL Pilot Execution Guidelines
PEPPOL Pilot Execution GuidelinesPEPPOL Pilot Execution Guidelines
PEPPOL Pilot Execution Guidelines
 

Recently uploaded

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Aptpbo fosdem

  • 1. Introduction APT-PBO Experimental Results Conclusions APT-PBO: improving the Software Dependency Problem using Pseudo-Boolean Optimization FOSDEM 2011 - Brussels Paulo Trezentos February 6, 2011 Trezentos APT-PBO 1/ 23
  • 2. Introduction APT-PBO Experimental Results Conclusions Agenda 1 Introduction Problem 2 APT-PBO Architecture Algorithm 3 Experimental Results Unmet dependencies analysis Meta-installers performance Solutions assessment Multicriteria 4 Conclusions Trezentos APT-PBO 2/ 23
  • 3. Introduction APT-PBO Problem Experimental Results Conclusions Agenda 1 Introduction Problem 2 APT-PBO Architecture Algorithm 3 Experimental Results Unmet dependencies analysis Meta-installers performance Solutions assessment Multicriteria 4 Conclusions Trezentos APT-PBO 3/ 23
  • 4. Introduction APT-PBO Problem Experimental Results Conclusions Installing Linux packages (software components) is... XKCD Webcomics, http://xkcd.com/754/ Trezentos APT-PBO 4/ 23
  • 5. Introduction APT-PBO Problem Experimental Results Conclusions Introduction to the problem Relevance: Installation process is critical for Operating Systems dissemination Trezentos APT-PBO 5/ 23
  • 6. Introduction APT-PBO Problem Experimental Results Conclusions Introduction to the problem Relevance: Installation process is critical for Operating Systems dissemination Problem: It is often reported that problems of broken dependencies between software packages in Linux Trezentos APT-PBO 5/ 23
  • 7. Introduction APT-PBO Problem Experimental Results Conclusions Introduction to the problem Relevance: Installation process is critical for Operating Systems dissemination Problem: It is often reported that problems of broken dependencies between software packages in Linux Solution: Use SAT to solve dependencies or, better, use PBO to choose between solutions Trezentos APT-PBO 5/ 23
  • 8. Introduction APT-PBO Problem Experimental Results Conclusions Introduction to the problem Relevance: Installation process is critical for Operating Systems dissemination Problem: It is often reported that problems of broken dependencies between software packages in Linux Solution: Use SAT to solve dependencies or, better, use PBO to choose between solutions Related work: EDOS, MANCOOSI, Opium / Linspire, SuSE Libzypp, Eclipse P2 / SAT4J,... Trezentos APT-PBO 5/ 23
  • 9. Introduction APT-PBO Problem Experimental Results Conclusions Dependencies solving turbo 1 1 engine 2 2 1 wheel tyre conflicts car 2 3 2 1 0 glass 1 window 1 2 door 2 glass 2 Install car Trezentos APT-PBO 6/ 23
  • 10. Introduction APT-PBO Problem Experimental Results Conclusions Dependencies solving turbo 1 1 engine 2 2 1 wheel tyre conflicts car 2 3 2 1 0 glass 1 window 1 2 door 2 glass 2 Install car Need to install the dependencies / avoid conflicts NP-problem Trezentos APT-PBO 6/ 23
  • 11. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions Agenda 1 Introduction Problem 2 APT-PBO Architecture Algorithm 3 Experimental Results Unmet dependencies analysis Meta-installers performance Solutions assessment Multicriteria 4 Conclusions Trezentos APT-PBO 7/ 23
  • 12. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions APT-PBO Architecture pboinstall: encoding of the problem Trezentos APT-PBO 8/ 23
  • 13. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions APT-PBO Architecture pboinstall: encoding of the problem PBO solver: external solver Trezentos APT-PBO 8/ 23
  • 14. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions APT-PBO Architecture pboinstall: encoding of the problem PBO solver: external solver Parsing / processing: analyse the solution and iterate Trezentos APT-PBO 8/ 23
  • 15. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions APT-PBO Architecture pboinstall: encoding of the problem PBO solver: external solver Parsing / processing: analyse the solution and iterate apt-get install: install packages Trezentos APT-PBO 8/ 23
  • 16. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions APT-PBO Algorithm Require: Package to install p1 , Pol 1: repeat 2: (f , c) ← call_pboinstall(p1 , Pc , Pol, R, PI) 3: S ← call_solver (f , c) 4: Pc ← 0 5: for all pi ∈ S such that pi = 0 do 6: Pc ← check _rdeps(pi ) 7: end for 8: for all pj ∈ S such that pj = 1 do 9: Pc ← check _rconfs(pj ) 10: end for 11: until Pc = 0 12: return f , c Trezentos APT-PBO 9/ 23
  • 17. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions Multicriteria If we try to satisfy different criteria, we have a MCDM (Multicriteria Decision Making problem) Trezentos APT-PBO 10/ 23
  • 18. Introduction APT-PBO Architecture Experimental Results Algorithm Conclusions Multicriteria If we try to satisfy different criteria, we have a MCDM (Multicriteria Decision Making problem) APT-PBO integrates different objective function as a multiobjective problem (MOP) and transforming into a single objective problem through weighted sum scalarization: 3 min Wk · fk (P) k =1 and therefore: min (Wr · f1 (P) + Wp · f2 (P) + Wv · f3 (P)) Trezentos APT-PBO 10/ 23
  • 19. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Agenda 1 Introduction Problem 2 APT-PBO Architecture Algorithm 3 Experimental Results Unmet dependencies analysis Meta-installers performance Solutions assessment Multicriteria 4 Conclusions Trezentos APT-PBO 11/ 23
  • 20. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Unmet dependencies analysis ksplash kdelibs4c2a libc6 libgcc1 libstdc++6 kdebase-data libx11-6 libxext6 3.5.9.dfsg.1-6 4.2.2-1 Meta-installer Possible No Wrong Solutions Solutions Solutions Apt-get 591 123 0 Aptitude 713 0 1 Smart 714 0 0 Apt-pbo 714 0 0 Trezentos APT-PBO 12/ 23
  • 21. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Meta-installers performance 00-14 apt-get aptitude smart 00-12 apt-pbo 00-10 Execution time (seconds) 00-08 00-06 00-04 00-02 00-00 0 20 40 60 80 100 120 140 Problem size (# installed packages) Meta-installer Average Time Standard Deviation Apt-get 00:00.21 00:00.17 Aptitude 00:00.62 00:00.15 Smart 00:02.63 00:00.25 Apt-pbo 00:03.77 00:01.91 Trezentos APT-PBO 13/ 23
  • 22. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Solutions assessment Each package transaction can include installation, update, removal or downgrade In 1.000 package transactions, how each meta-installer behaves? Tool Installed Updated Removed Down- graded apt-get 7,766 17 12 0 aptitude 8,423 18 161 464 smart 7,786 92 124 479 PBO freshness 6,808 20,449 25 567 PBO removal 7,767 11 162 443 PBO number 7,729 13 102 500 Trezentos APT-PBO 14/ 23
  • 23. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Solutions assessment Downgrade Remove Updates Install % of total A A Sm PB PB PB pt pt O O O ar -g itu -F -R -N t et de r e um es m hn ov be es al r s Trezentos APT-PBO 15/ 23
  • 24. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Multi-criteria In APT-PBO, varying the weights, we can have different solutions. Trezentos APT-PBO 16/ 23
  • 25. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria Multi-criteria In APT-PBO, varying the weights, we can have different solutions. For example, varying freshness weight we can obtain different solutions for package at-spi: Aggressive Conservative Install 9 37 Updates 35 35 Remove 1 0 Downgrade 7 10 Time 00:19.45 00:17.37 Trezentos APT-PBO 16/ 23
  • 26. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria ap-spi - conservative freshness To avoid the removal of “file-roller” we perform the installation of 28 extra-packages libgconf2-4 conflicts < 2.24 libbonobo2-0 at-spi 2.26 -> 2.22 2.22 1.22 breaks < 2.24 file-roller breaks < 2.24 libnautilus-extension1 ..+2 2.26 ->2.22 2.26 ->2.20 libgnomevfs2-0 ...+24 2.22 libhal1 0.5 Trezentos APT-PBO 17/ 23
  • 27. Introduction Unmet dependencies analysis APT-PBO Meta-installers performance Experimental Results Solutions assessment Conclusions Multicriteria ap-spi - agressive freshness With “just” one removal of “file-roller” with avoid the installation of 28 packages and the downgrade of 3. libgconf2-4 conflicts < 2.24 libbonobo2-0 at-spi 2.26 -> 2.22 2.22 1.22 libnautilus-extension1 breaks < 2.24 file-roller 2.26 2.26 ->2.22 Trezentos APT-PBO 18/ 23
  • 28. Introduction APT-PBO Experimental Results Conclusions Agenda 1 Introduction Problem 2 APT-PBO Architecture Algorithm 3 Experimental Results Unmet dependencies analysis Meta-installers performance Solutions assessment Multicriteria 4 Conclusions Trezentos APT-PBO 19/ 23
  • 29. Introduction APT-PBO Experimental Results Conclusions Conclusions APT-PBO is a freely available tool (GPL) that can be tested, available for Debian, Mandriva and Caixa Magica Trezentos APT-PBO 20/ 23
  • 30. Introduction APT-PBO Experimental Results Conclusions Conclusions APT-PBO is a freely available tool (GPL) that can be tested, available for Debian, Mandriva and Caixa Magica PBO encoding proved to be suitable for the problem and provides extra-flexibility compared with SAT tools Trezentos APT-PBO 20/ 23
  • 31. Introduction APT-PBO Experimental Results Conclusions Conclusions APT-PBO is a freely available tool (GPL) that can be tested, available for Debian, Mandriva and Caixa Magica PBO encoding proved to be suitable for the problem and provides extra-flexibility compared with SAT tools Multi-criteria is a desirable and achievable option Trezentos APT-PBO 20/ 23
  • 32. Introduction APT-PBO Experimental Results Conclusions Conclusions APT-PBO is a freely available tool (GPL) that can be tested, available for Debian, Mandriva and Caixa Magica PBO encoding proved to be suitable for the problem and provides extra-flexibility compared with SAT tools Multi-criteria is a desirable and achievable option Performance is an issue for large repositories and some combination of weights. Trezentos APT-PBO 20/ 23
  • 33. Introduction APT-PBO Experimental Results Conclusions Future work Better tuning of PBO encoding and work with PBO solver researchers to improve performance issues Trezentos APT-PBO 21/ 23
  • 34. Introduction APT-PBO Experimental Results Conclusions Future work Better tuning of PBO encoding and work with PBO solver researchers to improve performance issues Support new features like using APT-PBO for removals,et all Trezentos APT-PBO 21/ 23
  • 35. Introduction APT-PBO Experimental Results Conclusions Future work Better tuning of PBO encoding and work with PBO solver researchers to improve performance issues Support new features like using APT-PBO for removals,et all Enhance interactive mode Trezentos APT-PBO 21/ 23
  • 36. Introduction APT-PBO Experimental Results Conclusions More information Paulo Trezentos, Ines Lynce, and Arlindo L. Oliveira. Apt-pbo: solving the software dependency problem using pseudo-boolean optimization. In ASE 10: Proceedings of the IEEE/ACM international conference on Automated software engineering, pages 427-436, New York, NY, USA, 2010. ACM Trezentos APT-PBO 22/ 23
  • 37. Introduction APT-PBO Experimental Results Conclusions More information Paulo Trezentos, Ines Lynce, and Arlindo L. Oliveira. Apt-pbo: solving the software dependency problem using pseudo-boolean optimization. In ASE 10: Proceedings of the IEEE/ACM international conference on Automated software engineering, pages 427-436, New York, NY, USA, 2010. ACM http://aptpbo.caixamagica.pt Trezentos APT-PBO 22/ 23
  • 38. Introduction APT-PBO Experimental Results Conclusions Thank you. Questions. Trezentos APT-PBO 23/ 23