The document describes APT-PBO, a tool that uses pseudo-boolean optimization to solve software dependency problems when installing packages. It discusses the tool's architecture, algorithm, and experimental results comparing it to other package managers. The conclusions are that APT-PBO is freely available, PBO encoding is suitable for dependency resolution and more flexible than SAT tools, and it allows customizable multi-criteria solutions, though performance remains an issue for large repositories.
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
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
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
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