Graphviz-12.2.0

Introduksjon til Graphviz

Graphviz pakken inneholder graf visualiseringsprogramvare. Grafvisualisering er en måte å representere strukturell informasjon som diagrammer av abstrakte grafer og nettverk. Graphviz har flere hovedgrafoppsett programmer. Den har også web og interaktive grafiske grensesnitt, hjelpe verktøy, biblioteker og språkbindinger.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

Graphviz Avhengigheter

[Notat]

Notat

Grunnleggende bruk av Graphviz krever ingen biblioteker uten de som finnes i LFS boka. Dens «core» rendering motor er i stand til å generere flere grafiske formater, som f.eks Postscript, SVG, VML, .fig og Tk. Disse formatene kan konverteres til nesten alle andre formater ved å bruke verktøy fra pakker som f.eks ImageMagick-7.1.1-36. Avhengighetene nedenfor legger til muligheten for å generere grafbilder i bitmap formatet, for å vise grafbilde på skjermen, for å redigere en graf ved å se det resulterende bildet direkte, eller for å se store grafer. Siden Graphviz er en avhengighet for flere andre pakker i denne boken, foreslås det at du først bygger den uten noen avhengigheter, og bygger den deretter opp igjen når du har bygget nok pakker for å passe dine behov.

Valgfri, for ulike punktgrafikk utdata

Pango-1.54.0, med Cairo-1.18.2, Xorg Biblioteker, Fontconfig-2.15.0, og libpng-1.6.44, å generere bilder i punktgrafikk SVG, postscript, PNG og PDF formater, eller for å vise bildet på skjermen. PNG utdataen er nødvendig for byggingen av gegl-0.4.50

Å legge til GTK+-2 med libjpeg-turbo-3.0.1 legger til støtte for JPEG, BMP, TIF, og ICO formater, og lar deg vise bildet i et GTK+ vindu

GD Library kan brukes i stedet for Pango. Det tilfører muligheten til generere bilder i GIF-, VRML- og GD-formater, men Pango gir bedre resultater for de andre formatene, og er nødvendig for å vise bilder

Andre formater kan legges til med libwebp-1.4.0 (WebP støtte anses som eksperimentell), DevIL, libLASi, og glitz

Valgfritt (for å laste grafikk som kan bli vist inne i nodene i en graf)

libgs.so fra ghostscript-10.04.0, librsvg-2.59.2, og Poppler-24.11.0

Valgfritt (for å bygge flere verktøy)

Freeglut-3.6.0 (med GtkGLExt og libGTS for bygging av smyrna stor grafviser, som er betraktet som eksperimentell)

Valgfritt (for å bygge språkbindinger)

SWIG-4.3.0 (SWIG må være installert ellers vil ingen bindinger bli bygget), GCC-14.2.0 (for go kompilatoren), Guile-3.0.10, OpenJDK-23.0.1, Lua-5.4.7, PHP-8.3.13, Ruby-3.3.6, Tk-8.6.15, Io, Mono, OCaml, og R

Valgfritt (byggeverktøy)

Criterion (rammeverk for tester) og Electric Fence

Valgfritt (for å bygge pdf dokumentasjonen)

ghostscript-10.04.0 (for ps2pdf kommando)

Installasjon av Graphviz

Installer Graphviz ved å kjøre følgende kommandoer:

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

./autogen.sh              &&
./configure --prefix=/usr \
            --docdir=/usr/share/doc/graphviz-12.2.0
[Notat]

Notat

En advarsel genereres av autogen.sh fordi byggetreet ikke er et git depot. Som et resultat er byggedatoen satt til 0. For å få en meningsfull dato i versjonsstrengen kan du kjøre:

sed -i "s/0/$(date +%Y%m%d)/" builddate.h

Enten du fikser datoen eller ikke, fortsett å kompilere pakken:

make

Denne pakken kommer ikke med en testpakke som gir meningsfulle resultater.

Nå, som root bruker:

make install

Parameterforklaringer

sed ... configure.ac: Denne kommandoen er nødvendig for å unngå å installere filer i /usr/lib64.

--with-javaincludedir="$JAVA_HOME/include -I$JAVA_HOME/include/linux": Hvis du har bygget OpenJDK-23.0.1 i /opt, og du vil bygge JAVA bindingene, er det nødvendig å spesifisere plasseringen av JAVA deklarasjonsfiler for å konfigurere. Konfigurasjonsbryteren er designet for bare en katalog, men to kataloger må inkluderes. Dette er likevel mulig ved å bruke -I bryteren inne i variabelen.

--with-webp: Selv om libwebp-1.4.0 er installert, er det ikke inkludert i bygget uten dette alternativet.

--with-smyrna: Selv om de nødvendige avhengighetene er installert, den interaktive grafviseren smyrna er ikke bygget uten dette alternativet.

Konfigurere Graphviz

Konfigurasjonsfiler

/usr/lib/graphviz/config

Konfigurasjonsinformasjon

Det er ingen spesifikke konfigurasjonskrav for Graphviz. Du kan vurdere å installere flere programtillegg og verktøy tilgjengelig fra nedlastingssiden på https://graphviz.org/download/source/ for ytterligere kapasitet. Hvis flere programtillegg er installert, kan du kjøre dot -c (som root bruker) for å oppdatere config filen i /usr/lib/graphviz.

Innhold

Installerte Programmer: acyclic, bcomps, ccomps, circo, cluster, dijkstra, dot, dot2gxl, dot_builtins, edgepaint, fdp, gc, gml2gv, graphml2gv, gv2gml, gv2gxl, gvcolor, gvedit, gvgen, gvmap, gvmap.sh, gvpack, gvpr, gxl2dot, gxl2gv, mm2gv, neato, nop, osage, patchwork, prune, sccmap, sfdp, tred, twopi, unflatten, og vimdot
Installerte Biblioteker: libcdt.so, libcgraph.so, libgvc.so, libgvpr.so, liblab_gamut.so, libpathplan.so, libxdot.so, og flere programtillegg i /usr/lib/graphviz. Det er også flere i undermapper til /usr/lib/{lua,perl5,php,python3.13,tcl8.6}. Dessverre er noen biblioteker duplisert.
Installerte Mapper: /usr/include/graphviz, /usr/lib/graphviz, /usr/lib/tcl8.6/graphviz, /usr/share/doc/graphviz-12.2.0, og /usr/share/graphviz

Korte Beskrivelser

acyclic

er et filter som tar en rettet graf som inndata og sender ut en kopi av grafen med tilstrekkelig kanter snudd til å lage graf asyklisk

bcomps

dekomponerer grafer til deres tokoblede komponenter, skriver ut komponentene til standard utdata

ccomps

dekomponerer grafer til deres tilkoblede komponenter, skriver ut komponentene til standard utdata

circo

tegner grafer ved hjelp av en sirkulær utforming

cluster

tar en graf i DOT format som inndata, finner nodeklynger, og forsterker deretter grafen med denne informasjonen

diffimg

(trenger GD Library) genererer et bilde der hver piksel er forskjellen mellom den tilsvarende pikselen i hvert av de to kildebildene

dijkstra

leser en strøm av grafer og beregner avstanden for hver node fra kildenoden

dot

tegner rettet grafer. Det fungerer bra på DAG-er og andre grafer som kan tegnes som hierarkier. Den leser tilskrevet graffiler og skriver tegninger. Som standard er utdataformatprikken inndatafilen med layoutkoordinater vedlagt

dot2gxl

konverterer mellom grafer representert i GXL og i DOT språket. Med mindre en konverteringstype er spesifisert ved hjelp av et flagg, gxl2dot vil utlede typen konvertering fra suffikset til inndatafilen, et .dot suffiks forårsaker en konvertering fra DOT til GXL, og et .gxl suffiks forårsaker en konvertering fra GXL til DOT

edgepaint

utfører kantfarging for å disambiguere kryssende kanter

fdp

tegner urettede grafer ved hjelp av en «spring» modell. Den er avhengig av en tvangsrettet tilnærming i ånden til Fruchtermans og Reingold

gc

er en grafanalog til wc ved at den skriver ut til standard utgang antall noder, kanter, tilkoblede komponenter eller klynger i inndatafilene. Den skriver også ut en total teller for alle grafer hvis mer enn én graf er gitt

gml2gv

konverterer en graf spesifisert i GML formatet til en graf i GV formatet (tidligere DOT).

graphml2gv

konverterer en graf spesifisert i GRAPHML formatet til en graf i GV formatet (tidligere DOT).

gv2gml

konverterer en graf spesifisert i GV format til en graf i GML format

gv2gxl

konverterer en graf spesifisert i GV format til en graf i the GXL format

gvcolor

er et filter som setter nodefarger fra innledende frøverdier. Farger flyter langs kantene fra hale til hode, og er gjennomsnittlig (som HSB vektorer) ved noder

gvedit

gir en enkel grafredigerer og fremviser. Det tillater at mange grafer vises samtidig. Teksten til hver graf vises i sitt eget tekstvindu

gvgen

genererer en rekke enkle, regelmessig strukturerte abstrakte grafer

gvmap

tar som inndata en graf i DOT format, finner node klynger og produserer en gjengivelse av grafen som et kart i geografisk stil, med klynger uthevet, i xdot format

gvmap.sh

er en kanal for å kjøre gvmap

gvpack

leser i en strøm av grafer, kombinerer grafene til en enkelt layout, og produserer en enkelt graf som fungerer som foreningen av inndatagrafene

gvpr

er en grafstrømredigering inspirert av awk. Den kopierer inndatagrafer til utdataene, og transformerer muligens deres struktur og attributter, lager nye grafer eller skriver ut vilkårlig informasjon

gxl2dot

konverterer mellom grafer representert i GXL og i DOT språket. Med mindre en konverteringstype er spesifisert ved hjelp av et flagg, gxl2dot vil utlede typen konvertering fra suffikset til inndatafilen, et .dot suffiks som forårsaker en konvertering fra DOT til GXL, og en .gxl suffiks som forårsaker en konvertering fra GXL til DOT

gxl2gv

konverterer mellom grafer representert i GXL og i GV språket

mm2gv

konverterer en sparsom matrise av Matrix Market formatet til en graf i GV formatet (tidligere DOT).

neato

tegner urettede grafer ved hjelp av «spring» modeller. Inndata filene må formateres i dot tilskrevet grafisk språk. Som standard er utdataen av neato er inndatagrafen med layoutkoordinater vedlagt

nop

leser en strøm av grafer og skriver ut hver i vakkert trykt (kanonisk) format på stdout. Hvis ingen filer er gitt, leser den fra stdin

osage

tegner grupperte grafer. Den tar hvilken som helst graf i DOT format som inndata

patchwork

tegner grupperte grafer ved hjelp av et kvadratisk trekartoppsett. Den tar hvilken som helst graf i DOT format som inndata

prune

leser rettet grafer i samme format som brukes av dot og fjerner undergrafer forankret i noder spesifisert på kommandolinjen via alternativer

sccmap

dekomponerer digrafer til sterkt sammenkoblede komponenter og et hjelpekart over forholdet mellom komponenter. I dette kartet, hver komponent er slått sammen til en node. De resulterende grafene er skrevet ut til stdout

sfdp

tegner urettede grafer ved hjelp av «spring» modell, men den bruker en multi-skala tilnærming for å produsere oppsett av store grafer på rimelig kort tid

tred

beregner den transitive reduksjonen av rettet grafer, og skriver ut de resulterende grafene til standardutdata. Dette fjerner kanter antydet av transitivitet. Noder og subgrafer er ikke berørt

twopi

tegner grafer ved hjelp av en radiell layout. I utgangspunktet er en node valgt som sentrum og satt ved opprinnelsen. De resterende nodene er plassert på en sekvens av konsentriske sirkler sentrert rundt opprinnelsen, hver en fast radiell avstand fra forrige sirkel

unflatten

er en forbehandler til dot som er vant til forbedret sideforholdet til grafer med mange blader eller frakoblet noder. Den vanlige layouten for en slik graf er generelt veldig bred eller høy

vimdot

er et enkelt skript som starter gvim eller vim editor sammen med et GUI vindu som viser dot utdata fra den redigerte filen

libcdt.so

administrerer kjøretidsordbøker ved hjelp av standard beholderdata typer: uordnet sett/multiset, bestilt sett/multiset, liste, stabel, og kø

libcgraph.so

støtter grafprogrammering ved å opprettholde grafer i minnet og lese og skrive graffiler. Grafer er sammensatt av noder, kanter og nestede undergrafer

libgvc.so

gir en kontekst for applikasjoner som ønsker å manipulere og gjengi grafer. Den gir kommandolinjeparsing grensesnitt, vanlig gjengivelseskode, og et programtillegg mekanisme for gjengivere

libpathplan.so

inneholder funksjoner for å finne den korteste veien mellom to punkter i en enkel polygon

libxdot.so

gir støtte for å analysere og deparere grafiske operasjoner spesifisert av xdot språket