Paketverwaltung
aus openSUSE, der freien Wissensdatenbank
|
Archivformate
Eine Linux-Distribution, und openSUSE/SUSE Linux ist da keine Ausnahme, ist ein Bündel von Anwendungen, gespeichert in Paketen, und den notwendigen Werkzeugen, diese zu verwalten. Ein Paket ist dabei ein Archiv, in welchem sich alle notwendigen Dateien einer Anwendung befinden; zusätzlich eventuell auch noch weitere Anweisungen die sie zum Laufen bringen.
Zur Zeit gibt es drei verbreitete Paketarten:
- tgz (tar-gzip-Dateien)
Hierbei handelt es sich um Basisarchive, sie können alles enthalten, was der Paketbetreuer für nützlich hält. Abseits vom Archivformat selbst enthält es aber keine weiteren standardisierten Informationen. - deb (Debian)
Dies ist das Standardpaketsystem der Debian-Distribution und ihrer Derivate wie Ubuntu. - rpm (Red Hat Package Manager)
Dieses System wurde zuerst von Red Hat entwickelt und wird mittlerweile von vielen Distributionen verwendet.
SUSE Linux hat in seinen Anfängen noch tgz verwendet, bis es auf rpm umgestiegen ist, welches es auch noch heute verwendet.
Verknüpfungen
Das wichtigste an Paketen sind die Verknüpfungen die sie enthalten. Als erstes wären da die im Archiv enthaltenen Dateien, welche mit dem Paket verknüpft sind, womit sich bspw. herausfinden lässt, welche Datei zu welchem Paket gehört oder welches Paket welche Dateien bereitstellt. Zusätzlich hängen Pakete auch meist von anderen Paketen ab. Ein Paket enthält in der Regel nie alles, was es braucht, um die enthaltene Anwendung auszuführen. Dafür benötigt es eine passende Umgebung (andere Werkzeuge, Bibliotheken, usw.), welche durch viele andere Pakete bereitgestellt wird. Diese Abhängigkeiten aufzulösen ist eine der wichtigsten Aufgaben einer Paketverwaltung. Weitere Informationen über Paketabhängigkeiten erhalten Sie hier
RPM-Pakete
Die Software von SUSE Linux und openSUSE wird in Form von RPM-Paketen ausgeliefert. RPM ist ein leistungsfähiger Paketverwalter, dessen Kommandozeilenwerkzeuge eines jedoch nicht beherrschen: Das Lösen von Problemen. RPM informiert den Nutzer zwar über auftretende Probleme, lässt ihn bei der Lösung aber allein im Regen stehen.
Wenn Sie beispielsweise Paket A installieren wollen, welches von der Installation von Paket B abhängig ist, wird RPM dieses nicht automatisch installieren, sondern ihnen nur mitteilen, dass es erst Paket B benötigt. Es ist dann am Benutzer, erst Paket B zu installieren, um danach Paket A installieren zu können. Stellen Sie sich nun vor, Paket B benötigt noch die Pakete C und D, von denen Paket C wiederum Paket D benötigt und so weiter und so fort. Sie müssten dann erst alle Abhängigkeiten in diesem Paketbaum manuell auflösen, nur um Paket A installieren zu können. Das ist im Allgemeinen auch unter RPM-Abhängigkeitenhölle bekannt und RPM hilft ihnen in keinster Weise, dieser zu entrinnen.
Warum ist das so? Ganz einfach. RPM ist dafür gar nicht zuständig. Es war nie als benutzerfreundliches Software-Installationsprogramm gedacht, sondern einfach nur als leistungsfähiger Paketverwalter. Den Benutzer bei der Lösung solcher Probleme zu unterstützen ist eine ganz andere Aufgabe. So folgt RPM dem guten, alten UNIX/Linux-Grundsatz: "Ein Programm sollte eine Aufgabe erledigen (und das sehr gut)!"
Deshalb benötigen wir Programme oberhalb von RPM um dies zu tun. Und da haben Sie eine breite Auswahl. Im folgenden soll ihnen geholfen werden, ein geeignetes Software-Installationsprogramm zu finden.
Paketdepots
Bevor Sie ein Paket installieren können muss dieses auch verfügbar sein, entweder auf einem physischen Medium wie einer DVD oder einem nichtphysischen wie dem Internet. All das wird Paketdepot oder im englischen repository genannt, wobei es auch noch andere Bezeichnungen wie Installationsquelle oder Katalog gibt. Lesen Sie hier weiter um mehr darüber zu erfahren.
Werkzeuge zur Paketverwaltung
SUSE Linux und openSUSE liefern eine große Bandbreite unterschiedlicher Paketverwalter aus, so dass sich für jeden Geschmack das passende Werkzeug finden lassen sollte. Einige arbeiten nur mit RPM-Paketen, andere sind allgemeiner gefasst und können auch mit Patches, Schemata und Produkten umgehen.
Eine Gegenüberstellung der Befehle der verschiedenen Kommandozeilenpaketverwaltungen finden Sie im Artikel Vergleich von Kommandozeilenpaketverwaltungen.
YaST2
Das Paketverwaltungsmodul von YaST ist das wohl am häufigsten eingesetzte Programm unter SUSE Linux um Software zu installieren und zu deinstallieren. Die Verwaltung der Installationsquellen wird in einem eigenen Modul vorgenommen. Beide funktionieren auch in der Konsole über die ncurses-Oberfläche von YaST. Dokumentation zu diesen YaST-Modulen kann im Handbuch SUSE Linux Start gefunden werden. YaST setzt dabei seit SUSE Linux 10.1 auf die Libzypp auf.
- Vorteile
- Einfache Handhabung der grafischen Oberfläche
- Gute Dokumentation in den Handbüchern
- Unterstützt auch die Erweiterungen für Patches, Schemata und Produkte
- Nachteile
- Recht Langsam
- Komplexere Dinge lassen sich nur recht umständlich lösen
Y2pmsh
Y2pmsh ist ein obsoleter Kommandozeilenzugang zum Paketverwalter von YaST, welcher über zwei "Modi" verfügt. Sie können direkt Befehle daran übergeben oder eine integrierte Kommandozeile starten. Die Paketquellen sind die gleichen wie die von YaST2 und sind dementsprechend immer synchron dazu. Y2pmsh wurde in openSUSE 10.2 durch Zypper ersetzt und wird deshalb nicht mehr weiterentwickelt.
Zypper
Zypper ist der Nachfolger von Y2pmsh und ab openSUSE 10.2 enthalten. Auch hier gibt es zwei Arten der Benutzung; Sie können zum einen direkt Befehle übergeben und zum anderen eine integrierte Kommandozeile starten. Die Quellen sind ebenfalls synchron zu YaST, da Zypper genau wie YaST auch, auf die Libzypp zugreift.
- Vorteile
- Einfache Handhabung
- Quellen sind synchron zu YaST
- Unterstützt auch die Erweiterungen für Patches, Schemata und Produkte
- Nachteile
- Recht langsam
- Komplexere Dinge lassen sich nur recht umständlich lösen
- Anleitung
rug
rug ist ein Kommandozeilenklient für den ZENworks Menagement Daemon (ZMD). Zusammen mit dem ZMD lassen sich damit mehrere Rechner in einem Netzwerk verwalten. Ab openSUSE 10.3 werden rug und zmd nicht mehr Teil der openSUSE-Distributionen sein, sondern auf die kommerziellen Produkte SLES und SLED ausgelegt werden, bei denen ihre Verwendung mehr Sinn macht.
- Vorteile
- Weitreichende Möglichkeiten
- Lösung für viele Rechner in einem Netzwerk
- Unterstützt auch die Erweiterungen für Patches, Schemata und Produkte
- Nachteile
- Für die meisten Dinge zu komplex
- Recht langsam
Smart
Smart ist eine noch recht junge Paketverwaltung. Ziel ist es, die Probleme, die sich beim Installieren, Entfernen und Aktualisieren von Software ergeben, auf elegante Weise zu lösen. Also genau das, was RPM nicht vermag. Smart kann mit vielen verschiedenen Arten von Paketdepots und Paketformaten umgehen, wobei unter openSUSE natürlich nur RPM interessant ist.
- Vorteile
- Unterstützung für viele Depotarten
- Ausgereifte Algorithmen zur Lösung von Abhängigkeiten
- Auch komplexe Abhängigkeiten können meist elegant gelöst werden
- Nachteile
- Relativ langsam
- Etwas Einarbeitungszeit erforderlich
- Unterstützt keine Erweiterungen für Patches, Schemata und Produkte
- Anleitung
APT-RPM
APT-RPM ist eine Übertragung der Paketverwaltung Advanced Packaging Tool (APT) von Debian auf die Bedürfnisse einer RPM-basierten Distribution. Es existieren neben den Kommandozeilenwerkzeugen auch grafische Oberflächen. Neuere Versionen können neben APT-RPM-Depots auch RPM MetaData/repomd-Depots verwenden.
- Vorteile
- Relativ schnell
- Ausgereifte Algorithmen zur Lösung von Abhängigkeiten
- Nachteile
- Etwas Einarbeitungszeit erforderlich
- Unterstützt keine Erweiterungen für Patches, Schemata und Produkte
YUM
Der Yellowdog Updater, Modified ist ein Paketverwaltungswerkzeug welches für die Distribution Yellow Dog Linux entwickelt wurde. Er verarbeitet RPM-Pakete, neben dem Kommandozeilenwerkzeug existieren auch grafische Oberflächen. Eine Anleitung zu YUM unter openSUSE finden Sie hier.
- Vorteile
- Relativ schnell
- Ausgereifte Algorithmen zur Lösung von Abhängigkeiten
- Nachteile
- Etwas Einarbeitungszeit erforderlich
- Unterstützt keine Erweiterungen für Patches, Schemata und Produkte
- Anleitung
Welchen Paketverwalter für wen?
Wenn Sie nur hin und wieder mal ein Paket von der Installations-CD oder DVD installieren wollen und nur ein oder zwei weitere Paketquellen verwenden wollen, dann sind die Paketverwaltung von YaST sowie Zypper ihre Freunde.
Wenn Sie ausgiebig Gebrauch vom Build Service und anderen Quellen machen wollen und es ihnen bei ihrer Paketverwaltung vor allem auf die Geschwindigkeit ankommt, dann sollten Sie sich YUM und APT-RPM anschauen.
Sie wollen immer wieder Software installieren, aktualisieren und deinstallieren, egal aus welchen Quellen und wollen dabei von der Paketverwaltung nach besten Kräften bei der Lösung von Abhängigkeiten unterstützt werden, dann leistet ihnen Smart hervorragende Dienste.
Sie müssen viele Rechner betreuen und warten und legen Wert auf die Verfügbarkeit von Patches und die Unterstützung für Schemata und Produkte, dann sind sie bei rug/ZMD richtig.

