~~NOCACHE~~ ~~META: date issued = 2008-01-01 ~~ {{tag>linux hilfsprogramme graphviz perl_modul heiko_teichmeier glauchau sachsen}} ===== GraphViz - dynamische Erstellung von Graphen ===== __letzte inhaltliche Überarbeitung:__ 01.01.2008 ===== 1. GraphViz - Teil 1 ===== ==== 1.1 Beschreibung ==== GraphViz ist ein Programmpaket mit dem man dynamisch Graphen aus Beschreibungen in Textform erstellen kann. Es steht unter der GPL - ist also frei verwendbar, im Sourcecode erhältlich und durch eigene Eingriffe veränderbar. Ein "Graph" ist die bildliche Darstellung eines Sachverhaltes in Form von Verknüpfungs- oder Verzweigungspunkten und Linien, die die Beziehungen innerhalb des Sachverhaltes darstellen. In [[#bild_1|Bild 1]] ist ein Beispiel eines einfachen Graphen mit drei Verknüpfungspunkten dargestellt. == Bild 1 == {{heiko:picture:malmal_01.png?345x182|Graph Nr. 1}} ==== 1.2 Einsatz ==== Mit diesem Programm kann man u.a. Ablaufdiagramme, Organigramme und viele andere Sachverhalte darstellen. Eine Grenze wird nur durch das eigene Vorstellungsvermögen und die Zeit sich mit dem Programm und seinen Möglichkeiten auseinanderzusetzen gesetzt. Das obige [[#bild_1|Bild 1]] habe ich mit Hilfe des Perl-Moduls //"GraphViz.pm"// und dem Beispielskript //"malmal"// aus dem [[http://www.linux-magazin.de/Artikel/ausgabe/2002/09/perl/perl.html|Linux-Magazin 2002/09]] erstellt. Der Einsatz des Programms mit dem Perl-Modul ist der Antrieb für mein Interesse. Ich kann mir z.B. vorstellen einmal einen elektrischen Übersichtsschaltplan dynamisch aus Einträgen in einer SQL-Datenbank erzeugen zu lassen. Alles ist über einen normalen Browser bedienbar und läuft im Intranet auf einem (Linux-)Web-Server. Vor die Bequemlichkeit der Browserbedienung und problemlose Erreichbarkeit vielfältiger Informationen hat der Schöpfer aber die noch vielfältigeren Hürden der Software-Installation gestellt. ==== 1.3 Download und Installation ==== === 1.3.1 graphviz-Programm === Das Programmpaket GraphViz lädt man am besten von http://www.graphviz.org herunter. Im Unterverzeichnis //"pub/GraphViz/ARCHIVE/"// findet man die Binarys und Sourcen für verschiedene Plattformen und Betriebssysteme. Ich habe //"graphviz-1.10-1"// als //rpm// heruntergeladen und mit dem üblichen: rpm -ihv graphviz-1.10-1.i386.rpm installiert. Bei meinem //SuSE 8.1// gab es bis hierher keine Probleme. === 1.3.1 GraphViz.pm - PerlModul === Um dynamische Graphen vom Web- oder Intranetserver erstellen zu lassen, benötigt man das Perl-CPAN-Modul //GraphViz.pm//. Dieses versuchte ich mit folgendem Befehl von CPAN herunterzuladen und zu installieren: perl -MCPAN -e'install GraphViz' Leider kam nach dem Herunterladen und Aktualisieren meines CPAN und einiger anderer CPAN-Module am Ende eine Fehlermeldung, dass //IPC::Run.pm// nicht zu finden oder zu verwenden war. Mit einem kühnen perl -MCPAN -e'install IPC::Run.pm' versuchte ich das Problem auszumerzen - leider ohne Erfolg. Mein Perl lud alles herunter und kompilierte aber die Installation schlug fehl. Daraufhin suchte ich unter **///root/.cpan/build//** das Verzeichnis **//IPC-Run-0.77//**. Hier lagen unter **//lib//** schon die kompilierten Dateien wie sie in das Perl-Verzeichnis (bei mir /usr/lib/perl5/5.0.8) kopiert werden sollten. Ich kopierte das **//Verzeichnis "IPC"//** mit allen Unterverzeichnissen und Dateien in das //Perl-Verzeichnis// - voila - schon gelang auch die Installation des //GraphViz.pm-Moduls// wie oben schon einmal versucht. ==== 1.4 Erster Test ==== Es war an der Zeit für einen ersten Funktionstest. Dazu kopierte ich das oben heruntergeladenen Perl-Script //"malmal"// in das //cgi-bin//-Verzeichnis meines Intranet-Servers, passte den User und die Gruppe an und machte es ausführbar. Der Aufruf von ''[mein-server]/cgi-bin/malmal'' im Browser brachte gleich beim ersten Mal ein positives Ergebnis in Form eines HTML-Formulars wie es nachfolgend in [[#bild_2|Bild 2]] dargestellt ist. == Bild 2 == {{heiko:picture:scrshot_malmal_01.png?450x259|HTML-Formular malmal_01, 8 kB}} Nach einem Klick auf den **//Zeichnen-Button//** wird das Fenster [[#bild_3|Bild 3]] neu aufgebaut. Im oberen Teil wird der Graph, entsprechend der Angaben im Textfeld darunter, erstellt. In Form einer //png-Grafik// ist er in die HTML-Seite eingebunden und kann durch einen Rechtsklick und **//"Grafik speichern ..."//** als Grafik-Datei dauerhaft gespeichert werden. == Bild 3 === {{heiko:picture:scrshot_malmal_02.png?450x274|HTML-Formular malmal_02, 10,6 kB}} Der am Anfang dieser Seite gezeigte Graph [[#bild_1|Bild 1]] wurde durch Eingabe folgender Angaben in das Textfeld erzeugt: 1 Erster Knoten 2 Zweiter Knoten 3 Knoten Nr. 3 1>2 Kante von Eins nach Zwei 1>3 Kante von Eins nach Drei Jetzt beginnt die Arbeit erst richtig. Ich muss mich mit dem Perl-Skript beschäftigen und lernen die vielen verschiedenen Optionen zu verwenden wie: * andere Schriftarten, Farben und Stärken * andere Linienarten und -farben * andere geometrische Figuren * und, und, und ... To be continued ... [<>] ~~DISQUS~~