![Page 1: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/1.jpg)
Package dependency visualization for GNU/Linux Systems
André GuerreiroMestrado em Informática e Gestão - ISCTE-IUL
17 de Dezembro de 2010
![Page 2: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/2.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 2
Estrutura da apresentação● Introdução aos sistemas de pacotes Linux● Problemas identificados em ferramentas
actuais● Formulação do problema● Visualização de grafos – conceitos e
ferramentas OSS● Projecto Gumby● Conclusões● Investigação Futura
![Page 3: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/3.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 3
Introdução aos sistemas de pacotes Linux (1/5)
● Distribuições de Software Livre e de código Aberto (FOSS)
● Particular foco em Linux
● Características comuns:● Elevada modularização do Software● Desenvolvimento distribuído/colaborativo
![Page 4: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/4.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 4
Ciclo de distribuição de Software
![Page 5: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/5.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 5
Introdução aos sistemas de pacotes Linux (2/5)
● Sistemas de componentes (pacotes) de grande dimensão (> 10000 em distribuições actuais)
● Pacotes contêm: Software + Metadados + Scripts de Instalação/Configuração
● Metadados, por ex.:Pacote firefox, versão 3.6
Requires: xulrunner >= 1.9.2.11, libsqlite >= 3.7
Provides: webclient
Conflicts: sqlite < 3.0
![Page 6: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/6.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 6
Dimensão de uma distribuição Linux ao longo do tempo
![Page 7: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/7.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 7
Introdução aos sistemas de pacotes Linux (3/5)
Para gerir a complexidade há ferramentas:
● Instaladores: RPM e dpkg● Meta-instaladores ou gestores de
pacotes: APT, yum, zypper, etc.
![Page 8: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/8.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 8
Introdução aos sistemas de pacotes Linux (4/5)
Problemas identificados:● Solvers incompletos geram soluções sub-
óptimas● As ferramentas são bastante são
heterogéneas,
não existe standardização● Suporte para rollback ao nível do sistema
de pacotes é inexistente
![Page 9: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/9.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 9
Introdução aos sistemas de pacotes Linux (5/5)
●As ferramentas têm de atender a Use Cases bastante diversos●O processo de empacotamento tem ainda bastantes passos manuais passíveis de originar erros Projectos de Investigação nesta área (EDOS, MANCOOSI)
![Page 10: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/10.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 10
Problemas com as ferramentas actuais
Num sistema Linux “moderno” e “actualizado”:
$ rpm -ivh google-chrome-stable_current_i386.rpm
error: Failed dependencies:lsb >= 3.2 is needed by google-chrome-stable-8.0.552.215-67652.i386libjpeg.so.62 is needed by google-chrome-stable-8.0.552.215-67652.i386
![Page 11: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/11.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 11
![Page 12: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/12.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 12
Visualizações nos gestores de pacotes actuais
Limitados os esforços nesta área:● Aptitude● apt-pbo● debtree
![Page 13: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/13.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 13
Formulação do problema
● Como podemos visualizar a complexidade das dependências de pacotes num sistema Linux?
![Page 14: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/14.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 14
Grafos – conceitos fundamentais
● Grafo: objecto matemático constituído por um conjunto de vértices ou nós e um conjunto de arestas (edges) que unem pares de nós.
● Se um grafo G existir uma direcção para todas as arestas (representadas por setas) designa-se por digrafo (directed graph)
![Page 15: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/15.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 15
Visualização de grafos (1/2)
Técnicas de visualização:● Hierarchical● Force-directed Layout● Radial Layout● 3D Layout● Geometria não-euclidiana
![Page 16: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/16.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 16
Visualização de grafos (2/2)
Critérios para uma visualização “agradável” :
● Minimizar intersecções entre vértices● Minimizar área total do desenho● Minimizar comprimento dos vértices● Respeitar um Aspect Ratio standard
(por ex. 4:3 ou 16:9)
![Page 17: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/17.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 17
Ferramentas OSS para visualização/análise de grafos
● Graphviz● Boost::Graph● JIT● NetworkX● JUNG
![Page 18: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/18.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 18
Graphviz● Desenvolvido por investigadores da AT&T
desde os anos '80● Opera sobre representações textuais dos
grafos (fácil de integrar em aplicações/scripts)
● Flexível:
suporta digrafos e grafos não dirigidos e diferentes algoritmos de layout
● Integra optimizações para um layout human-readable
![Page 19: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/19.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 19
![Page 20: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/20.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 20
![Page 21: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/21.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 21
Javascript Infoviz Toolkit
● Projecto bastante recente e promissor● Tira partido de capacidades dos browsers
mais recentes
mas …● Estava à partida fora do âmbito do
projecto
![Page 22: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/22.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 22
![Page 23: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/23.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 23
O Projecto Gumby
Objectivos iniciais / especificação● Aplicação Linux com GUI● Integração com o gestor de pacotes do
sistema● Visualização e exploração de
dependências
![Page 24: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/24.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 24
Gumby – o código
● Disponível em:
http://people.caixamagica.pt/aguerreiro/gumby
ou
http://bit.ly/hzMKHF
![Page 25: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/25.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 25
Gumby – Arquitectura
![Page 26: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/26.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 26
Integração no sistema de pacotes
● APT – meta-instalador bastante popular utilizado em Debian, Ubuntu, Caixa Mágica, …
● Como projecto followup seria interessante integrar a visualização no próprio processo de instalação
![Page 27: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/27.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 27
Interface Gráfico
![Page 28: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/28.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 28
![Page 29: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/29.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 29
Funcionalidades
● Visualização de todas as dependências (requires, provides, conflicts, obsoletes)
● Exploração progressiva● Modo compacto● Zoom e pan● Customização do layout suportada pelo
Graphviz
![Page 30: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/30.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 30
Limitações
A nível do protótipo:● Exploração de dependências por versão● Layout incremental
A nível do projecto:● Avaliar o impacto de usabilidade
![Page 31: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/31.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 31
Conclusões
● É possível melhorar a usabilidade de um sistema de pacotes através de uma ferramenta de visualização
● É importante escolher técnicas de visualização adequadas aos dados a representar
● A gestão de pacotes é um componente vital para um sistema operativo baseado em OSS
![Page 32: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/32.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 32
Sugestões para trabalho futuro
● Usar a componente de visualização para representar outros sistemas de componentes: plugins Eclipse, outras distribuições não suportadas
● Melhorar a componente de visualização de modo a proporcionar visualização mais agradável
● Aprofundar a integração com gestores de pacotes “state-of-the-art”
![Page 33: Package dependency visualization for GNU/Linux systems](https://reader033.vdocument.in/reader033/viewer/2022052412/55923c771a28abbd778b470f/html5/thumbnails/33.jpg)
Package Dependency VisualizationFor GNU/Linux Systems 33
Fim