RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Das erste Starpack

Nachdem das Skript erfolgreich getestet ist, kann nun ein eigenständiges Programm daraus erstellt werden. Dazu ist wieder die Shell bezieungsweise Eingabeaufforderung notwendig. Der Aufruf ist unter Windows und Linux grundsätzlich gleich. Unter Windows ist allerdings »tclkitsh« zu verwenden. Im folgenden sollen die Programmaufrufe unter Windows als Beispiele dienen, weil der Programmierer hier zwischen Text- und GUI-Modus unterscheiden muss. Verwendet er dagegen Linux, heißt es immer nur »tclkit« . Um die Eingabe langer Pfadnamen zu vermeiden, werden das Programm »tclkit.exe« und die Datei »sdx.kit« in das gleiche Verzeichnis wie das Skript »hello.tcl« kopiert. Der Aufruf

tclkitsh sdx.kit qwrap hello.tcl -runtime tclkit.exe

erzeugt die Datei »hello« , die nach dem Umbenennen in »hello.exe« startbar ist. Um jetzt unter Windows ein Programm für Linux zu erzeugen, muss nur das Tclkit für Linux (»tclkit-8.5.9-linux-ix86« ) in das gleiche Verzeichnis kopiert werden. Durch den Aufruf von

tclkitsh sdx.kit qwrap hello.tcl -runtime tclkit-8.5.9-linux-ix86

entsteht die Datei »hello« , die jetzt ein ausführbares Programm für Linux ist.

Analog ist dies auch unter Linux für Windows möglich. So lassen sich Programme für verschiedene Rechner Plattformen aus einem Quelltext erzeugen, da nur das entsprechende Tclkit der Ziel-Plattform mit dem Parameter »-runtime« bei der Erzeugung anzugeben ist. Es gilt aber zu beachten, dass es die Verwendung plattformspezifischer Packages ( zum Beispiel »twapi« oder »registry« für Windows) unmöglich machen kann, das Programm zu portieren.

Der Parameter »qwrap« (quick wrap) eignet sich nur, um aus einer einzigen Quell-Datei ein Starpack/Starkit zu erstellen. Kommen weitere Packages oder mehrere Quell-Dateien zum Zug, so ist der Parameter »wrap« zu verwenden. Er setzt voraus, dass der Quellcode und die Packages in einer speziellen Verzeichnisstruktur vorliegen, was das folgende Beispiel erläutert.

Starpack mit zusätzlichen Packages

Dieses Beispiel liefert einen einfachen Text-Editor. Für das Hauptfenster kommt das Package BWidget zum Einsatz. Die Datei aus Listing 1 mit dem Namen »editor.tcl« erzeugt das Fenster: Sobald man sie startet, erscheint ein Fenster, das als rudimentärer Editor fungieren kann.

Listing 1

Ein Editor

 

Um daraus ein eigenständiges Programm zu erstellen, erzeugt der folgende Aufruf erst mit dem Parameter »qwrap« ein Starkit:

tclkitsh sdx.kit qwrap editor.tcl

Dieses Starkit (»editor.kit« ) wird mit dem Parameter »unwrap« wieder in den Quellcode zurückgewandelt. Bei der Rückwandlung entsteht eine Verzeichnisstruktur (»editor.vfs« ), die auch der eigentliche Inhalt des Starkits ist (Abbildung 2).

Abbildung 2: Die Starkit-Verzeichnisstruktur nach der Rückverwandlung.
tclkitsh sdx.kit unwrap editor.kit

Im »lib« -Verzeichnis eines Starkits müssen alle benötigten Packages zu finden sein. Da in unserem Beispiel nur das Package BWidget verwendet wurde, wird es nach »edidor.vfs/lib« kopiert. Es könnten jetzt auch noch Korrekturen an der Datei »editor.tcl« vorgenommen oder weitere Dateien hinzugefügt werden (Tabelle 1).

Tabelle 1

Hilfreiche Packages

Name

Funktion

twapi

Zugriffsfunktionen für Windows-API

tablelist

Mehrspaltiges Tabellen-Widget mit vielfältigen Sonderfunktionen

BWidget

Kombinierte Widgets

cwind

Simulation von Tastatur und Mauseingaben unter Windows

winico

Anzeige von Icons in der Windows-Taskbar

snack

Sound-Funktionen

expect

Automatisierung von komplexeren Komandozeilen-Programmen, zum Beispiel Zugänge mit Einmalpassworten

Zum Abschluss erzeugt man das Programm mit dem Befehl

tclkitsh sdx.kit wrap editor.exe -runtime tclkit.exe

Es entsteht direkt das Programm »editor.exe« . Mit dem Befehl

tclkitsh sdx.kit unwrap editor.exe

lässt sich das Starpack jederzeit wieder in eine Verzeichnisstruktur wandeln, die einige Dateien und Packages mehr enthält, da das »tclkit.exe« selbst ein Starpack ist, und die dort enthaltenen Dateien integriert werden.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019