Vorwort zur Paketverwaltung unter Linux
 

Software wird unter Linux im Gegensatz zu Windows etwas anders verwaltet. Unter Windows holt man sich die für seine Windows-Version geeignete Software und installiert diese mittels eines Installations-Programmes, meistens einer SETUP.EXE-Datei, die dann die erforderlichen Dateien, in die jeweiligen Verzeichnisse kopiert, sowie weitere für den Betrieb erforderliche Dateien in Windows-Verzeichnisse kopiert und Einträge in der Registry vornimmt.

Unter Linux ist das etwas anders, da liegt Software entweder als sogenannter Quell-Code vor, der erst noch kompiliert werden muß, oder schon als fertig kompiliertes und gepacktes Paket, daß mittels eines Paketverwalters installiert wird. Damit man versteht, was das überhaupt ist "Software kompilieren" zuerst noch eine kleine Erläuterung:

Was ist das? Software kompilieren?

Computer kennen eigentlich nur zwei Zustände: AN oder AUS, oder auch 0 und 1. Dieses Zahlensystem nennt man das Binär-System (binär = lat. je zwei, paarweise). Erst durch Aneinanderreihung von mehreren binären Zahlen, kann das uns bekannte Zehner-Zahlensystem dargestellt werden. Beispiele:

Dezimal Binär   Dezimal Binär
Null
Eins
Zwei
Drei
Vier
Fünf
Sechs
Sieben
0
1
10
11
100
101
110
111
  Acht
Neun
Zehn
Elf
Zwölf
Dreizehn
Vierzehn
Fünfzehn
1000
1001
1010
1011
1100
1101
1110
1111

Sozusagen sieht die Sprache der Computer so aus:
01101010001001010010101110001010
10011010001010101010000101010101
Es handelt sich dabei um die sogenannte Maschinen-Sprache. Natürlich ist diese Sprache viel zu abstrakt, als daß man auf ihr Programme schreiben könnte. Daher gibt es sogenannte Programmier-Sprachen, wie z.B. Basic oder C/C++. In diesen Sprachen sind Befehle als Wörter definiert, z.B. in Basic der Befehl
PRINT "Hello World"
was dazu führt, daß der Text "Hello World" auf dem Bildschirm ausgegeben wird.
Programme im sogenannten Quellcode liegen immer in einer Programmier-Sprache vor. Ein Computer jedoch kann diese Sprache nicht verstehen, versteht er doch nur seine Maschinen-Sprache, lediglich die Nullen und Einsen. Damit der Computer die Sprache verstehen kann, muß sie kompiliert (übersetzt) werden mit einem sogenannten Compiler (Übersetzer), welcher die jeweilige Programmiersprache in den entsprechenden Maschinen-Code umwandelt. Diesen Vorgang nennt man kompilieren.

Zurück zu Linux

Um wieder auf Linux zurück zu kommen, wie gesagt, unter Linux gibt es zwei Möglichkeiten, entweder muß man "fremde" Software (also nicht Distributions-Eigene Software) selbst kompilieren, da sie nur im Quellcode vorliegt oder man kann ein schon fertiges Paket aus den Paket-Quellen der jeweiligen Distribution verwenden. Der Grund warum man fremde Software meistens kompilieren muß, liegt darin, daß sie auf das jeweilige Linux-System angepaßt werden muß. Man kann nämlich nicht jedes x-beliebige Linux-Paket unter jeder x-beliebigen Distribution verwenden, ganz im Gegenteil, das Paket muß auf die jeweilige Distribution sogar genau passen, sonst funktioniert es nicht. Die Distributionen machen es in der Beziehung einfacher, da sie vorgefertigte, kompilierte und gepackte Pakete mittels eines sogenannten Paketmanagers zur Verfügung stellen. Dieser entpackt die entsprechenden Pakete, löst Abhängigkeiten zu Bibliotheken auf und kopiert die entsprechenden Dateien an die richtigen Stellen. Das dabei größte Problem sind die Abhängigkeiten. Um zu funktionieren braucht z.B. das Paket XY die Bibliothek Z in einer bestimmten Version. Würde man auf einen Paket-Manager verzichten der Abhängigkeiten auflöst, müßte man sich darum selber kümmern und schauen, welche Bibliotheken benötigt das Programm und diese dann Paket für Paket vorher installieren. Und wenn diese dann wieder diese und jene Programme benötigen auch diese Abhängigkeiten auflösen und so weiter bis alle benötigten Pakete installiert sind. Heutige Paketmanager sind glücklicherweise in der Lage diese Abhängigkeiten aufzulösen und die erforderlichen Pakete automatisch zu installieren, was das ganze stark vereinfacht. Und da man ja in der Regel nur Pakete von den jeweiligen Distributionen verwendet, ist die Installation und Deinstallation von Software unter Linux eine sehr saubere Sache, da man sicher weiß, daß die Pakete des Distributions-Herstellers hundertprozentig passen. Vorbei wie in Windows, daß beim Deinstallieren irgendein Müll zurück bleibt. Wieder eine der Stärken von Linux.

Die zweigeteilte Paketwelt

Es gibt zwei große Paketmanager in der Linux-Welt: rpm und dpkg. rpm ist dabei der Redhat Paket Manager und wird (wie der Name schon sagt) von Redhat und Suse favorisiert, während dpkg (Debian Package) von Debian verwendet wird. Welchen man den Vorzug gibt, hängt von der jeweiligen Distribution ab. Das Verfahren ist bei beiden gleich: man bindet die entsprechenden Paketquellen in den Paketmanager ein, das kann eine CD, DVD oder übers Internet eine HTTP oder FTP-Adresse sein und installiert aus dieser Quelle die entsprechenden Pakete. Dabei kann man sich mit den enstprechenden Befehlen sowohl auf der Kommandozeile bewegen, als auch auf der grafischen Ebene mit einem Paketverwalter wie zum Beispiel Synaptic arbeiten. Letzterer spielt seine Stärken im Suchen von Paketen aus, da hier in der grafischen Welt nicht nur in den Suchergebnissen rauf und runter gescrollt werden kann, sondern mit einem Klick auch noch die Eigenschaften der jeweiligen Pakete angezeigt werden können. Somit ist ein Paketverwalter unter einem grafischen Desktop einfach übersichtlicher.