Dev Dives: Streamline document processing with UiPath Studio Web
Gumby: Package Dependency Visualization for Linux
1. Energia Open Source
Gumby - Package dependency
visualization for Linux
André Guerreiro
andre.guerreiro@caixamagica.pt
6th February 2011
Gumby: Package dependency Vizualization for 1
Linux
2. Energia Open Source
Presentation Outline
1. About me
2. Linux packaging landscape
3. Gumby – the visualization tool
4. Technical design and ideas for improvement
5. Demo
6. Conclusions
Gumby: Package dependency Vizualization for 2
Linux
3. Energia Open Source
About me
● From Lisbon, Portugal
● Linux user and advocate for 6/7 years
● Caixa Mágica developer
● MANCOOSI project involvement
Gumby: Package dependency Vizualization for 3
Linux
4. Energia Open Source
Linux Packaging 101 (Levelling the playing field)
● A Linux distribution is a big component system (> 15000
packages)
● A Package consists of:
Software + Meta-data + Configuration Scripts
● Meta-data example:
firefox, version 3.6.2 (...)
Requires: xulrunner >= 1.9.2.11, libsqlite >= 3.7 ...
Provides: webclient
Conflicts: sqlite < 3.0
Gumby: Package dependency Vizualization for 4
Linux
5. Energia Open Source
Why would we want to have package
dependency visualization
Possible usecases
● The technically-inclined user who tries to install his favourite
text editor and ends having 20+ apparently unrelated
libraries blaming his distro for suffering of "bloat"
● Package Maintainers trying to assure repository consistency
● Researchers investigating new dependency solvers
Gumby: Package dependency Vizualization for 5
Linux
6. Energia Open Source
InfoViz in current tools
● Aptitude
- Very limited visualization
(ncurses interface for
advanced users/ sysadmins)
● Debtree
- The main usecase is to pipe
the output into a Graphviz tool
e.g.:
debtree firefox | dot -Tpng -Ofirefox-deps.png
Gumby: Package dependency Vizualization for 6
Linux
7. Energia Open Source
Introducing Gumby
Initial goals
● Native Linux Application
● Integration with the system GUI package manager (Synaptic
initially...)
● To Visualize and explore package dependencies in an
interesting way
Gumby: Package dependency Vizualization for 7
Linux
8. Energia Open Source
Technical Design
● Built on top of APT – quite popular meta-installer used in
Debian, Ubuntu, Caixa Mágica.
● Graph Layout depends on Graphviz
Gumby: Package dependency Vizualization for 8
Linux
9. Energia Open Source
Architecture diagram
Gumby: Package dependency Vizualization for 9
Linux
11. Energia Open Source
Features
● Visualize all kinds of dependencies (requires, provides,
conflicts, obsoletes)
● Progressive Exploration
● Compact Mode
● Zoom & pan
● Different Layout schemes (powered by Graphviz)
Gumby: Package dependency Vizualization for 11
Linux
12. Energia Open Source
Demo
Gumby: Package dependency Vizualization for 12
Linux
13. Energia Open Source
Roadmap / TODO List
● Choosing and displaying a specific version of a package
● Better support for Debian dependencies:
suggests/recommends, disjunctive deps (Pkg A requires B | C)
● Improve the visual representation (transitions, collapse nodes)
Gumby: Package dependency Vizualization for 13
Linux
14. Energia Open Source
Wrapping up
● This should be considered as a proposal for the Linux distro
community to offer some attention to a neglected area
● Gumby is still a crude prototype but the first step is always
the hardest...
● I'm open for suggestions and criticism
Gumby: Package dependency Vizualization for 14
Linux
15. Energia Open Source
One final detail, where is the code?
● http://people.caixamagica.pt/aguerreiro/gumby
or
http://bit.ly/hzMKHF
● Git repository :
http://gitorious.org/cairo-graphs/gumby
Gumby: Package dependency Vizualization for 15
Linux
16. Energia Open Source
Thanks for your attention
Questions?
Gumby: Package dependency Vizualization for 16
Linux