SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Package dependency visualization
     for GNU/Linux Systems


                André Guerreiro
  Mestrado em Informática e Gestão - ISCTE-IUL

         17 de Dezembro de 2010
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
                 Package Dependency Visualization
                      For GNU/Linux Systems         2
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


                Package Dependency Visualization
                     For GNU/Linux Systems         3
Ciclo de distribuição de Software




          Package Dependency Visualization
               For GNU/Linux Systems         4
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

                     Package Dependency Visualization
                          For GNU/Linux Systems               5
Dimensão de uma distribuição Linux
       ao longo do tempo




           Package Dependency Visualization
                For GNU/Linux Systems         6
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.




               Package Dependency Visualization
                    For GNU/Linux Systems         7
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

                Package Dependency Visualization
                     For GNU/Linux Systems         8
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)



              Package Dependency Visualization
                   For GNU/Linux Systems         9
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.i386
 libjpeg.so.62 is needed by google-chrome-stable-
8.0.552.215-67652.i386




                   Package Dependency Visualization
                        For GNU/Linux Systems         10
Package Dependency Visualization
     For GNU/Linux Systems         11
Visualizações nos gestores de
             pacotes actuais

    Limitados os esforços nesta área:
●   Aptitude
●   apt-pbo
●   debtree




                Package Dependency Visualization
                     For GNU/Linux Systems         12
Formulação do problema


●   Como podemos visualizar a
    complexidade das dependências de
    pacotes num sistema Linux?




               Package Dependency Visualization
                    For GNU/Linux Systems         13
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)




                Package Dependency Visualization
                     For GNU/Linux Systems         14
Visualização de grafos (1/2)
    Técnicas de visualização:
●   Hierarchical
●   Force-directed Layout
●   Radial Layout
●   3D Layout
●   Geometria não-euclidiana



                Package Dependency Visualization
                     For GNU/Linux Systems         15
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)


               Package Dependency Visualization
                    For GNU/Linux Systems         16
Ferramentas OSS para
     visualização/análise de grafos

●   Graphviz
●   Boost::Graph
●   JIT
●   NetworkX
●   JUNG



               Package Dependency Visualization
                    For GNU/Linux Systems         17
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
                Package Dependency Visualization
                     For GNU/Linux Systems         18
Package Dependency Visualization
     For GNU/Linux Systems         19
Package Dependency Visualization
     For GNU/Linux Systems         20
Javascript Infoviz Toolkit

●   Projecto bastante recente e promissor
●   Tira partido de capacidades dos browsers
    mais recentes
    mas …
●   Estava à partida fora do âmbito do
    projecto



                Package Dependency Visualization
                     For GNU/Linux Systems         21
Package Dependency Visualization
     For GNU/Linux Systems         22
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



                 Package Dependency Visualization
                      For GNU/Linux Systems         23
Gumby – o código

●   Disponível em:
    http://people.caixamagica.pt/aguerreiro/gumby
    ou
    http://bit.ly/hzMKHF




                     Package Dependency Visualization
                          For GNU/Linux Systems         24
Gumby – Arquitectura




    Package Dependency Visualization
         For GNU/Linux Systems         25
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




                Package Dependency Visualization
                     For GNU/Linux Systems         26
Interface Gráfico




  Package Dependency Visualization
       For GNU/Linux Systems         27
Package Dependency Visualization
     For GNU/Linux Systems         28
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


                 Package Dependency Visualization
                      For GNU/Linux Systems         29
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




                Package Dependency Visualization
                     For GNU/Linux Systems         30
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

               Package Dependency Visualization
                    For GNU/Linux Systems         31
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”

               Package Dependency Visualization
                    For GNU/Linux Systems         32
Fim




Package Dependency Visualization
     For GNU/Linux Systems         33

Weitere ähnliche Inhalte

Andere mochten auch

Information Visualization for Large-Scale Data Workflows by Michael Conover (...
Information Visualization for Large-Scale Data Workflows by Michael Conover (...Information Visualization for Large-Scale Data Workflows by Michael Conover (...
Information Visualization for Large-Scale Data Workflows by Michael Conover (...The Hive
 
PhiloGL - WebGLCamp Google HQs - June 2011
PhiloGL - WebGLCamp Google HQs - June 2011PhiloGL - WebGLCamp Google HQs - June 2011
PhiloGL - WebGLCamp Google HQs - June 2011philogb
 
Dashboards and Data Visualization using Xamarin and ShinobiControls
Dashboards and Data Visualization using Xamarin and ShinobiControlsDashboards and Data Visualization using Xamarin and ShinobiControls
Dashboards and Data Visualization using Xamarin and ShinobiControlsXamarin
 
Visualizing Data: The 7 stages of data visualization
Visualizing Data: The 7 stages of data visualizationVisualizing Data: The 7 stages of data visualization
Visualizing Data: The 7 stages of data visualizationcreyesnav
 
Gumby: Package Dependency Visualization for Linux
Gumby: Package Dependency Visualization for LinuxGumby: Package Dependency Visualization for Linux
Gumby: Package Dependency Visualization for LinuxAndre Guerreiro
 
Industrial Benchmarking through Information Visualization and Data Envelopmen...
Industrial Benchmarking through Information Visualization and Data Envelopmen...Industrial Benchmarking through Information Visualization and Data Envelopmen...
Industrial Benchmarking through Information Visualization and Data Envelopmen...ertekg
 
OER Impact: Collaboration, Evidence, Synthesis
OER Impact: Collaboration, Evidence, Synthesis OER Impact: Collaboration, Evidence, Synthesis
OER Impact: Collaboration, Evidence, Synthesis Robert Farrow
 
New Tools for Visualization in JavaScript - Sept. 2011
New Tools for Visualization in JavaScript - Sept. 2011New Tools for Visualization in JavaScript - Sept. 2011
New Tools for Visualization in JavaScript - Sept. 2011philogb
 
Information Visualization: Analysis and Communication of Insights
Information Visualization: Analysis and Communication of InsightsInformation Visualization: Analysis and Communication of Insights
Information Visualization: Analysis and Communication of InsightsAndrew Vande Moere
 
INTERIOR VISUALIZATION
INTERIOR VISUALIZATIONINTERIOR VISUALIZATION
INTERIOR VISUALIZATIONJapheth Bondoc
 
Hyper-realistic 3d visualization - element3d
Hyper-realistic 3d visualization - element3dHyper-realistic 3d visualization - element3d
Hyper-realistic 3d visualization - element3dAurora Zanoletty
 
Data visualization - Graphics & arts
Data visualization - Graphics & artsData visualization - Graphics & arts
Data visualization - Graphics & artsDogstudio
 
Attention, Please!
Attention, Please!Attention, Please!
Attention, Please!Erik Duval
 
Learner Analytics: from Buzz to Strategic Role Academic Technologists
Learner Analytics:  from Buzz to Strategic Role Academic TechnologistsLearner Analytics:  from Buzz to Strategic Role Academic Technologists
Learner Analytics: from Buzz to Strategic Role Academic TechnologistsJohn Whitmer, Ed.D.
 
Data visualization and communication
Data visualization and communicationData visualization and communication
Data visualization and communicationNicolas Minv
 
Webilea i-net presentation on data visualization and information design
Webilea i-net presentation on data visualization and information designWebilea i-net presentation on data visualization and information design
Webilea i-net presentation on data visualization and information designYAAY - visual works
 
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de DatosJavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datosphilogb
 
Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...
Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...
Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...Juan Carlos Olivares Rojas
 
Learner Analytics Presentation to ATSC Committee
Learner Analytics Presentation to ATSC CommitteeLearner Analytics Presentation to ATSC Committee
Learner Analytics Presentation to ATSC CommitteeJohn Whitmer, Ed.D.
 

Andere mochten auch (20)

Information Visualization for Large-Scale Data Workflows by Michael Conover (...
Information Visualization for Large-Scale Data Workflows by Michael Conover (...Information Visualization for Large-Scale Data Workflows by Michael Conover (...
Information Visualization for Large-Scale Data Workflows by Michael Conover (...
 
PhiloGL - WebGLCamp Google HQs - June 2011
PhiloGL - WebGLCamp Google HQs - June 2011PhiloGL - WebGLCamp Google HQs - June 2011
PhiloGL - WebGLCamp Google HQs - June 2011
 
Dashboards and Data Visualization using Xamarin and ShinobiControls
Dashboards and Data Visualization using Xamarin and ShinobiControlsDashboards and Data Visualization using Xamarin and ShinobiControls
Dashboards and Data Visualization using Xamarin and ShinobiControls
 
Visualizing Data: The 7 stages of data visualization
Visualizing Data: The 7 stages of data visualizationVisualizing Data: The 7 stages of data visualization
Visualizing Data: The 7 stages of data visualization
 
Gumby: Package Dependency Visualization for Linux
Gumby: Package Dependency Visualization for LinuxGumby: Package Dependency Visualization for Linux
Gumby: Package Dependency Visualization for Linux
 
Industrial Benchmarking through Information Visualization and Data Envelopmen...
Industrial Benchmarking through Information Visualization and Data Envelopmen...Industrial Benchmarking through Information Visualization and Data Envelopmen...
Industrial Benchmarking through Information Visualization and Data Envelopmen...
 
OER Impact: Collaboration, Evidence, Synthesis
OER Impact: Collaboration, Evidence, Synthesis OER Impact: Collaboration, Evidence, Synthesis
OER Impact: Collaboration, Evidence, Synthesis
 
New Tools for Visualization in JavaScript - Sept. 2011
New Tools for Visualization in JavaScript - Sept. 2011New Tools for Visualization in JavaScript - Sept. 2011
New Tools for Visualization in JavaScript - Sept. 2011
 
Information Visualization: Analysis and Communication of Insights
Information Visualization: Analysis and Communication of InsightsInformation Visualization: Analysis and Communication of Insights
Information Visualization: Analysis and Communication of Insights
 
INTERIOR VISUALIZATION
INTERIOR VISUALIZATIONINTERIOR VISUALIZATION
INTERIOR VISUALIZATION
 
Hyper-realistic 3d visualization - element3d
Hyper-realistic 3d visualization - element3dHyper-realistic 3d visualization - element3d
Hyper-realistic 3d visualization - element3d
 
Oracle data Visualization(Components)
Oracle data Visualization(Components)Oracle data Visualization(Components)
Oracle data Visualization(Components)
 
Data visualization - Graphics & arts
Data visualization - Graphics & artsData visualization - Graphics & arts
Data visualization - Graphics & arts
 
Attention, Please!
Attention, Please!Attention, Please!
Attention, Please!
 
Learner Analytics: from Buzz to Strategic Role Academic Technologists
Learner Analytics:  from Buzz to Strategic Role Academic TechnologistsLearner Analytics:  from Buzz to Strategic Role Academic Technologists
Learner Analytics: from Buzz to Strategic Role Academic Technologists
 
Data visualization and communication
Data visualization and communicationData visualization and communication
Data visualization and communication
 
Webilea i-net presentation on data visualization and information design
Webilea i-net presentation on data visualization and information designWebilea i-net presentation on data visualization and information design
Webilea i-net presentation on data visualization and information design
 
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de DatosJavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
 
Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...
Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...
Moviweb: A Platform to Solve the Web Content Visualization Problem on Heterog...
 
Learner Analytics Presentation to ATSC Committee
Learner Analytics Presentation to ATSC CommitteeLearner Analytics Presentation to ATSC Committee
Learner Analytics Presentation to ATSC Committee
 

Ähnlich wie Package dependency visualization for GNU/Linux systems

ESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxJorge Pereira
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreMauro Tapajós
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bowertdc-globalcode
 
Trabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise GuimarãesTrabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise GuimarãesCassandra Cristina
 
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...Intel Software Brasil
 
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...Lucas Vinícius
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Embarcados
 
Apresentacao Linux módulo 1
Apresentacao Linux módulo 1Apresentacao Linux módulo 1
Apresentacao Linux módulo 1Tiago
 
A ferramenta rpm
A ferramenta rpmA ferramenta rpm
A ferramenta rpmSoftD Abreu
 
Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com NagiosDaniel Lara
 
GNU/Linux Atualidades e Tendências
GNU/Linux Atualidades e TendênciasGNU/Linux Atualidades e Tendências
GNU/Linux Atualidades e Tendênciasaslgo
 
Apresentação Gerpro
Apresentação GerproApresentação Gerpro
Apresentação Gerprorafahreis
 
Lxde
LxdeLxde
Lxdeweb04
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalAnderson Favaro
 

Ähnlich wie Package dependency visualization for GNU/Linux systems (20)

tutorial nagios
tutorial nagiostutorial nagios
tutorial nagios
 
ESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no Linux
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livre
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
 
GISVM
GISVMGISVM
GISVM
 
Trabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise GuimarãesTrabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise Guimarães
 
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...Otávio Salvador - Yocto project  reduzindo -time to market- do seu próximo pr...
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
 
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
 
Intro linux
Intro linuxIntro linux
Intro linux
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 
Apresentacao Linux módulo 1
Apresentacao Linux módulo 1Apresentacao Linux módulo 1
Apresentacao Linux módulo 1
 
A ferramenta rpm
A ferramenta rpmA ferramenta rpm
A ferramenta rpm
 
Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com Nagios
 
GNU/Linux Atualidades e Tendências
GNU/Linux Atualidades e TendênciasGNU/Linux Atualidades e Tendências
GNU/Linux Atualidades e Tendências
 
Ubuntu 14.04
Ubuntu 14.04Ubuntu 14.04
Ubuntu 14.04
 
Jenkins workshop
Jenkins workshopJenkins workshop
Jenkins workshop
 
snto
sntosnto
snto
 
Apresentação Gerpro
Apresentação GerproApresentação Gerpro
Apresentação Gerpro
 
Lxde
LxdeLxde
Lxde
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema Operacional
 

Package dependency visualization for GNU/Linux systems

  • 1. Package dependency visualization for GNU/Linux Systems André Guerreiro Mestrado em Informática e Gestão - ISCTE-IUL 17 de Dezembro de 2010
  • 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 Package Dependency Visualization For GNU/Linux Systems 2
  • 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 Package Dependency Visualization For GNU/Linux Systems 3
  • 4. Ciclo de distribuição de Software Package Dependency Visualization For GNU/Linux Systems 4
  • 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 Package Dependency Visualization For GNU/Linux Systems 5
  • 6. Dimensão de uma distribuição Linux ao longo do tempo Package Dependency Visualization For GNU/Linux Systems 6
  • 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. Package Dependency Visualization For GNU/Linux Systems 7
  • 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 Package Dependency Visualization For GNU/Linux Systems 8
  • 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) Package Dependency Visualization For GNU/Linux Systems 9
  • 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.i386 libjpeg.so.62 is needed by google-chrome-stable- 8.0.552.215-67652.i386 Package Dependency Visualization For GNU/Linux Systems 10
  • 11. Package Dependency Visualization For GNU/Linux Systems 11
  • 12. Visualizações nos gestores de pacotes actuais Limitados os esforços nesta área: ● Aptitude ● apt-pbo ● debtree Package Dependency Visualization For GNU/Linux Systems 12
  • 13. Formulação do problema ● Como podemos visualizar a complexidade das dependências de pacotes num sistema Linux? Package Dependency Visualization For GNU/Linux Systems 13
  • 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) Package Dependency Visualization For GNU/Linux Systems 14
  • 15. Visualização de grafos (1/2) Técnicas de visualização: ● Hierarchical ● Force-directed Layout ● Radial Layout ● 3D Layout ● Geometria não-euclidiana Package Dependency Visualization For GNU/Linux Systems 15
  • 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) Package Dependency Visualization For GNU/Linux Systems 16
  • 17. Ferramentas OSS para visualização/análise de grafos ● Graphviz ● Boost::Graph ● JIT ● NetworkX ● JUNG Package Dependency Visualization For GNU/Linux Systems 17
  • 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 Package Dependency Visualization For GNU/Linux Systems 18
  • 19. Package Dependency Visualization For GNU/Linux Systems 19
  • 20. Package Dependency Visualization For GNU/Linux Systems 20
  • 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 Package Dependency Visualization For GNU/Linux Systems 21
  • 22. Package Dependency Visualization For GNU/Linux Systems 22
  • 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 Package Dependency Visualization For GNU/Linux Systems 23
  • 24. Gumby – o código ● Disponível em: http://people.caixamagica.pt/aguerreiro/gumby ou http://bit.ly/hzMKHF Package Dependency Visualization For GNU/Linux Systems 24
  • 25. Gumby – Arquitectura Package Dependency Visualization For GNU/Linux Systems 25
  • 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 Package Dependency Visualization For GNU/Linux Systems 26
  • 27. Interface Gráfico Package Dependency Visualization For GNU/Linux Systems 27
  • 28. Package Dependency Visualization For GNU/Linux Systems 28
  • 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 Package Dependency Visualization For GNU/Linux Systems 29
  • 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 Package Dependency Visualization For GNU/Linux Systems 30
  • 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 Package Dependency Visualization For GNU/Linux Systems 31
  • 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” Package Dependency Visualization For GNU/Linux Systems 32
  • 33. Fim Package Dependency Visualization For GNU/Linux Systems 33