Linux-Magazin-Logo Die Zeitschrift für Linux-Professionals

Software entwickeln unter Linux

Paket-Entwicklung

Achim Leitner

Die alte Frage nach dem richtigen Paketformat hat eine neue Antwort gefunden: Starkits. Sie sind direkt ausführbar, trotzdem können interessierte Anwender, Programmierer und Admins das File auspacken und die Komponenten einzeln verwenden und installieren.

Inhalt

100 Feder-Lesen
Starkits verpacken ganze Tcl-Anwendungen in ein plattformunabhängiges File.

103 Sprache D
Der Sprachen-Exot D will die Nachfolge von C antreten: Bei ähnlicher Performance glänzt er mit Errungenschaften der höheren Programmiersprachen.

106 Perl-Snapshot
Ein Ebay-Bietagent hält seinen Mandanten per Instant Message auf dem Laufenden. So kann dieser just zum rechten Zeitpunkt in Versteigerungen eingreifen.

110 Coffee-Shop
Der XML-Schema-Standard soll die umständlichen DTDs ablösen und XML-Dokumente exakter beschreiben. Java ist mit Xerces-J auf dem aktuellen Stand.

Kaum ein Programmierer wird sich über den reichen Vorrat von Bibliotheken, Komponenten und Modulen in der Open-Source-Welt beschweren. Ohne sie wäre aktuelle Linux-Software undenkbar. Selbst einfache Programme sind gegen zig Bibliotheken gelinkt, lesen Konfig-Files und erwarten ihre Icons in einem festen Verzeichnis. Modularisierung ist gut und wichtig, etwa weil sich Bugfixes in einer Shared Library auf alle Programme auswirken, die sie benutzen. Zudem verhindert sie, dass sich Entwickler unnötig mit dem Neu-Erfinden alter Räder quälen.

Schattenseiten

Die Kehrseite offenbart sich beim Installieren. Das Frustrationspotenzial der Arbeitsbeschaffungsmaßnahme "Bibliotheken nachinstallieren" ist enorm, der Ruf nach einem Installationsprogramm vom Schlage einer »setup.exe« immer wieder zu vernehmen. Warum, fragen sich viele User, bringt das Programm nicht gleich selbst alle Komponenten mit? Meist wäre das unklug, nimmt es den Admins doch die Kontrolle über ihr System. Der bessere Ansatz sind RPM-, DEB- oder sonstige Paketformate, die passend für die jeweilige Distribution geschnürt sind. Auch so lassen sich Abhängigkeiten automatisch auflösen.

Einen neuen, sehr interessanten Ansatz verfolgen Starkits. Das plattformunabhängige Paketformat für Tcl-Programme fasst alle Elemente einer Applikation in einer einzelnen Datei zusammen, sogar inklusive der Konfigurationsfiles. Starkits muss man weder auspacken noch installieren, einfach ausführen genügt. Selbst der Interpreter besteht nur aus einer Datei. Das Deployment reduziert sich auf kopieren und Zugriffsrechte anpassen, fürs Deinstallieren genügt »rm«.

Griff nach den Sternen

Starkits sind nicht mit statisch gelinkten, monolithischen Monsterprogrammen zu verwechseln. Sie nutzen ein virtuelles Filesystem, in dem alle Komponenten einzeln liegen. So kann jeder das Paket öffnen, um die Bestandteile zu analysieren oder anzupassen. Selbst ausgepackt lässt sich das Programm noch starten oder ganz klassisch installieren.

Starkit-User haben die Wahl: Die Komponenten einzeln in das Zielsystem integrieren oder das Paket als Ganzes nutzen. Beide Varianten haben ihre Vorzüge, aber die zusätzliche Freiheit ist in jedem Fall ein Gewinn für Entwickler und Anwender.

Inhalt

Versionsnummern der aktuellen stabilen Releases am 14.11.2003 und Änderungen gegenüber dem Vormonat.

Skriptsprachen

Guile 1.6.4

Object Rexx 2.3.3

Perl 5.8.2

PHP 4.3.4

Python 2.3.2

Ruby 1.8.0

Tcl 8.4.4

Java

Blackdown 1.4.1-01

IBM Java2 SDK 1.4.1

Kaffee 1.0.7

Sun SDK 1.4.2_02

Compiler

Binutils 2.14

Clisp 2.31

Free Pascal 1.0.10

GCC 3.3.2

GForth 0.6.2

GNU Pascal 2.1

Intel C++ 7.1

Libraries

Coin 2.1.0

FLTK 1.1.4

glibc 2.3.2

glut 3.7

GTK+ 2.2.4

libpng 1.2.5

libsdl 1.2.6

libxml 2.6.2

Mesa 5.0.2

OpenSSL 0.9.7c

QT 3.2.3

wxWindows 2.4.2

zlib 1.1.4

Debugger

Code Medic 1.1.3

DDD 3.3.8

GDB 6.0

Insight 5.3

Mpatrol 1.4.8

Valgrind 2.0.0

Build-Tools

Autoconf 2.58

Automake 1.7.9

Libtool 1.5

GNU Make 3.80

SWIG 1.3.19

IDEs

Anjuta 1.0.2

Code Crusader 3.0.3

C-Forge 3.5

CodeWarrior 6

Eclipse 2.1.2

Emacs 21.3

KDevelop 2.1.5

Kylix 3

Motor 3.2.4

Source-Navigator 5.1.4

VIDE 2.0

VIM 6.2

XEmacs 21.4.14