Graphviz-2.44.1

Introduction à Graphviz

Le paquet Graphviz contient le logiciel de visualisation de graphes. La visualisation de Graphes est une manière de représenter des informations structurelles dans des diagrammes de graphes abstraits et de réseaux. Graphviz a plusieurs programmes principaux de présentation de graphes. Il contient aussi des interfaces graphiques interactives et Web, des outils, des bibliothèques et des bindings dans certains langages.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-9.1.

Informations sur le paquet

Dépendances de Graphviz

[Note]

Note

Pour l'utilisation basique de Graphviz vous n'avez besoin d'aucune bibliothèque en dehors de ce qui se trouve dans le livre LFS. Son moteur de rendu de « cœur » permet de générer différent formats comme Postscript, SVG, VML, .fig, et Tk. Ces formats peuvent être convertis en presque n'importe quoi d'autre à l'aide d'outils comme ImageMagick-7.0.9-23. Les dépendances ci-dessous ajoutent la possibilité de générer des images de graphes au format bitmap, d'afficher le graphe à l'écran, de modifier un graphe en visionnant directement l'image finale ou de voir de très grands graphes. Comme Graphviz est une dépendance de plusieurs autres paquets dans ce livre, nous vous conseillons de le construire d'abord sans dépendances puis de le reconstruire lorsque vous aurez assez de paquets pour vos besoins.

Facultatives, pour diverses sorties bitmap

Pango-1.44.7 avec Cairo-1.17.2+f93fc72c03e, Bibliothèques Xorg, Fontconfig-2.13.1 et libpng-1.6.37, pour générer des images aux formats bitmap SVG, postscript, PNG et PDF, ou pour affichie l'image à l'écran

Ajouter GTK+-2.24.32 avec libjpeg-turbo-2.0.5 permet d'ajouter les formats JPEG, BMP, TIF et ICO et d'afficher l'image dans une fenêtre GTK+

On peut utiliser la bibliothèque GD à la place de Pango. Elle ajoute la possibilité de générer des images aux formats GIF, VRML et GD, mais Pango fournie une meilleure sortie pour les autres formats et est requis pour afficher les images.

On peut ajouter d'autres formats avec libwebp-1.1.0 (la prise en charge de WebP est considérée comme étant expérimentale), DevIL, libLASi, glitz et libming (Adobe Flash)

Facultatives, pour charger des images graphique qui peuvent être affichées à l'intérieur des nœuds du graphe

libgs.so de ghostscript-9.52, librsvg-2.48.8 et Poppler-20.08.0

Facultatives, pour construire plus d'outils

Freeglut-3.2.1 (avec libglade-2.6.4, GtkGLExt et libGTS pour construire le visualiseur de très grands graphes smyrna, considéré comme expérimental), Qt-5.15.0 pour construire l'éditeur de graphes gvedit. Un autre éditeur de graphe, dotty ne requiert que Bibliothèques Xorg

Facultatives (Pour construire les liaisons de certains langages)

SWIG-4.0.2 (SWIG doit être installé, ou aucune liaison ne sera construite), GCC-10.1.0 (pour le langage go), Guile-3.0.4, OpenJDK-14.0.1, Lua-5.4.0, PHP-7.4.8, Python-2.7.18, Ruby-2.7.1, Tk-8.6.10, Io, Mono, OCaml et R

Facultatives (outils de construction)

Criterion (boîte à outils pour les tests), Electric Fence,

Facultatives (pour construire la documentation pdf)

ghostscript-9.52 (pour la commande ps2pdf)

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/graphviz

Installation de Graphviz

Installez Graphviz en lançant les commandes suivantes :

sed -i '/LIBPOSTFIX="64"/s/64//' configure.ac &&

autoreconf                            &&
./configure --prefix=/usr PS2PDF=true &&
make

Ce paquet n'a pas de suite de test fournissant des résultats significatifs.

Maintenant, en tant qu'utilisateur root :

make install

Si vous le désirez, créez un lien symbolique dans le répertoire des documents système vers la documentation installée dans /usr/share/graphviz/doc en utilisant la commande suivante en tant qu'utilisateur root :

ln -v -s /usr/share/graphviz/doc /usr/share/doc/graphviz-2.44.1

Explication des commandes

sed ... configure.ac : Cette commande est requise pour éviter d'installer des fichiers dans /usr/lib64.

PS2PDF=true : requis si ghostscript-9.52 n'est pas installé. Sinon, le système de construction essaye de lancer false, ce qui génère une erreur.

--with-javaincludedir="$JAVA_HOME/include -I$JAVA_HOME/include/linux" : Si vous avez construit OpenJDK-14.0.1 dans /opt, et que vous souhaitez construire les liaisons JAVA, vous devez spécifier l'emplacement des fichiers d'en-tête JAVA pour configurer ce paquet. L'option de configure n'est destinée à recevoir qu'un répertoire, mais deux répertoires doivent être inclus. C'est tout de même possible en utilisant l'option -l dans la variable.

--with-webp : Même si libwebp-1.1.0 est installé, il n'est pas inclus dans la construction sans cette option.

--with-smyrna : Même si les dépendances requises sont installées, le visualiseur de graphe interactif smyrna n'est pas construit sans cette option.

Configuration de Graphviz

Fichiers de configuration

/usr/lib/graphviz/config

Informations sur la configuration

Il n'y a besoin d'aucune configuration particulière pour Graphviz. Vous pourriez envisager d'installer des greffons et des outils supplémentaires disponibles sur la page de téléchargements (http://www.graphviz.org/Download_source.php) pour des fonctionnalités supplémentaires. Si vous installez des greffons supplémentaires, vous pouvez lancer dot -c (en tant qu'utilisateur root) pour mettre à jour le fichier config dans /usr/lib/graphviz.

Contenu

Programmes installés: acyclic, bcomps, ccomps, circo, cluster, diffimg, dijkstra, dot, dot2gxl, dot_builtins, dotty, edgepaint, fdp, gc, gml2gv, graphml2gv, gv2gml, gv2gxl, gvcolor, gvedit, gvgen, gvmap, gvmap.sh, gvpack, gvpr, gxl2dot, gxl2gv, lefty, lneato, mm2gv, neato, nop, osage, patchwork, prune, sccmap, sfdp, tred, twopi, unflatten et vimdot
Bibliothèques installées: libcdt.so, libcgraph.so, libgvc.so, libgvpr.so, liblab_gamut.so, libpathplan.so, libxdot.so et divers greffons dans /usr/lib/graphviz. Il y en a aussi plusieurs dans les sous-répertoires de /usr/lib/{lua,perl5,php,python2.7,python3.8tcl8.6}. Malheureusement, certaines bibliothèques sont répliquées.
Répertoires installés: /usr/include/graphviz, /usr/lib/graphviz, /usr/lib/tcl8.6/graphviz, /usr/share/doc/graphviz-2.44.1 et /usr/share/graphviz

Descriptions courtes

acyclic

est un filtre qui prend un graphe orienté en entrée et sort une copie du graphe avec le minimum d’arêtes inversées pour en faire un graphe acyclique.

bcomps

décompose des graphes dans leurs composants biconnexes, en affichant les composants sur la sortie standard.

ccomps

décompose des graphes dans leurs composants connexes, en affichant les composants sur la sortie standard.

circo

dessine des graphes en utilisant une présentation circulaire.

cluster

prend en entrée un graphique au format DOT, trouve les clusters de nœuds et ajoute les informations au graphique.

diffimg

(nécessite la bibliothèque GD) génère une image où chaque pixel est la différence entre les pixels correspondants dans chacune des 2 images sources.

dijkstra

lit un flux de graphes et calcule pour chacun d'eux la distance entre chaque nœud et l'origine.

dot

dessine des graphes orientés. Il fonctionne bien sur des graphes acycliques orientés et autres qui peuvent être dessinés sous une forme hiérarchisée. Il lit les fichiers de graphes avec des attributs et il écrit les dessins. Par défaut, le format de sortie de dot est le fichier d'entrée assorti des coordonnées pour la mise en page.

dot2gxl

fait des conversions de graphes représentés en GXL et dans le langage DOT. Sauf si vous spécifier un type de conversion en utilisant un drapeau, gxl2dot déduira le type de conversion à partir de l'extension du fichier d'entrée, une extension.dot donnant une conversion de DOT en GXL, et une extension .gxl donnant une conversion de GXL en DOT.

dotty

est un éditeur de graphe pour le système X Window. Vous pouvez le lancer comme un éditeur autonome ou comme un appui pour des applications qui utilisent des graphes. Il peut contrôler la visualisation de différents graphes sur des fenêtres multiples.

edgepaint

effectue la coloration des arêtes pour distinguer les arêtes qui se croisent.

fdp

dessine des graphes non droits en utilisant un modèle « spring ». Il utilise un algorithme basé sur les forces, dans l'esprit de Fruchterman et de Reingold.

gc

est un graphe analogue à wc dans le sens où il affiche sur la sortie standard le nombre de nœuds, de bords, de composants connexes ou de clusters contenus dans les fichiers d'entrée. Il affiche aussi un résultat total de tous les graphes si vous donnez plus d'un graphe.

gml2gv

convertit le graphe spécifiés dans le format GML vers un graphe dans le format GV (anciennemnt DOT).

graphml2gv

convertit le graphe spécifié dans le format GRAPHML vers un graphe dans le format GV (anciennement DOT).

gv2gml

convertit un graphe spécifié dans le format GV vers un graphe dans le format GML.

gv2gxl

convertit un graphe spécifié dans le format GV vers un graphe dans le format GXL.

gvcolor

est un filtre qui règle les couleurs des nœuds à partir valeurs d'une graine initiale. Les couleurs s'étendent le long des bords des pieds à la tête et sont moyennées (en tant que vecteurs HSB) au niveau des nœuds.

gvedit

fournit un éditeur et une visionneuse de graphes simple. Il permet de voir beaucoup de graphes en même temps. Le texte de chaque graphe est affiché dans sa propre fenêtre.

gvgen

génère différents graphes abstraits simples à structure régulière.

gvmap

prend un graphe en entrée dans le format DOT, trouve les clusters de nœuds et produit un rendu du graphe dans le style d'une carte géographique, avec les clusters mis en relief, dans le format xdot.

gvmap.sh

est un tunnel pour le lancement de gvmap.

gvpack

lit un flux de graphes, combine les graphes dans une seule présentation et produit un graphe unique représentant l'union des graphes de l'entrée.

gvpr

est un éditeur de flux de graphes inspiré d'awk. Il copie les graphes en entrée vers sa sortie, en transformant éventuellement leur structure et leurs attributs et en créant de nouveaux graphes, ou en affichant des informations arbitraires.

gxl2dot

fait des conversions de graphes représentés en GXL et dans le langage DOT. Sauf si vous spécifier un type de conversion en utilisant un drapeau, gxl2dot déduira le type de conversion à partir de l'extension du fichier d'entrée, une extension.dot donnant une conversion de DOT en GXL, et une extension .gxl donnant une conversion de GXL en DOT.

gxl2gv

convertit des graphes représentés en GXL en langage GV ou inversement.

lefty

est un éditeur graphique en deux panneaux pour les images techniques.

lneato

est un éditeur de graphe pour le système X Window. Vous pouvez le lancer comme un éditeur autonome ou comme un appui pour des applications qui utilisent des graphes. Il peut contrôler la visualisation de différents graphes sur des fenêtres multiples.

mm2gv

convertit une matrice creuse du format Matrix Market en un graphe dans le format GV (anciennement DOT).

neato

dessine un graphe non orienté en utilisant les modèles « spring ». Les fichiers d’entrée doivent être formatés dans le langage de graphe dot. Par défaut, la sortie de neato est le graphe en entrée assorti de coordonnées pour la mise en page.

nop

lit un flux de graphes et affiche chacun d'eux sur la sortie standard de manière agréable (canonique). Si aucun fichier n'est donné, il lit l'entrée standard.

osage

dessine des graphiques regroupés. En entrée, il prend tous les graphiques au format DOT.

patchwork

dessine des graphes regroupés en utilisant un calque d'arborescence. En entrée, il prend tous les graphiques au format DOT.

prune

lit des graphes orientés dans le même format que celui utilisé par dot et supprime les sous-graphes enracinées dans les nœuds spécifiés sur la ligne de commande avec les options.

sccmap

décompose des graphes orientés (digraph) en composants fortement connexes et une carte auxiliaire des relations entre les composants. Sur cette carte, chaque composant est réduit à un nœud. Les graphes qui en résultent sont affichés sur la sortie standard.

sfdp

dessine des graphes non orientés en utilisant le modèle « spring », mais il utilise une approche multi-échelle pour produire les calques des grands graphiques en un temps raisonnable.

tred

calcule la réduction transitive des graphes orientés et affiche les graphes qui en résultent sur la sortie standard. Ceci supprime les arêtes qu'implique la transitivité. Les nœuds et les sous-graphes ne sont pas affectés autrement.

twopi

dessine des graphes en utilisant une présentation en rayons. Essentiellement, un nœud est choisi comme le centre et placé à l'origine. Les nœuds restants sont placés sur une suite de cercles concentriques focalisés autour de l'origine, chacun étant à une distance de rayon fixe du cercle précédent.

unflatten

est un préprocesseur de dot utilisé pour améliorer le rapport d'aspect des graphes ayant beaucoup de blancs ou de nœuds déconnectés. La présentation normale d'un tel graphique est en général très large ou haute.

vimdot

est un script simple qui lance gvim ou l'éditeur vim ainsi qu'une fenêtre GUI pour voir la sortie de dot du fichier édité.

libcdt.so

gère les dictionnaires pendant l'exécution en utilisant les types de données de contenu standards : set/multiset désordonné, set/multiset ordoné, liste, pile, et queue.

libcgraph.so

supporte la programmation de graphes en maintenant les graphes en mémoire et en lisant et écrivant les fichiers de graphes. Les graphs sont composés de nœuds, arêtes, et de sous-graphes imbriqués.

libgvc.so

fournit un contexte pour les applications souhaitant manipuler et faire du rendu de graphes. Il fournit un analyseur en ligne de commande, du code de rendu commun, et des greffons de mécanismes de rendu.

libpathplan.so

contient des fonctions pour trouver le chemin le plus court entre deux points sur un simple polygone.

libxdot.so

fournit un support pour analyser et de-analyser des opérations spécifiées par le langage xdot.

Last updated on 2020-07-11 14:01:17 +0000