Home Wiki > Paket-Management
Sign up | Login

Paket-Management

tagline: Aus openSUSE


Eine Linux-Distribution, und openSUSE ist keine Ausnahme, legt seine Programme bzw. Anwendungen und die notwendigen Dienstprogramme zum Organisieren dieser Anwendungen in Paketen ab.

Übersicht

Packagemanagement.png

Ein Paket-Managment-System ist eine Sammlung von Werkzeugen, die eine einheitliche Mothode zur Installation, zum Aktualisieren und Löschen von Software auf Ihrem System bietet. Linux-Distributionen, einschließlich openSUSE, enthalten typischer Weise tausende von speziellen Software-Paketen.

Software wird über Pakete herausgegeben, die mit Metadaten verknüpft sind, die zusätzliche Informationen enthalten, wie die Beschreibung des Zieles der Software und einer Liste von Abhängigkeiten, wiederum notwendig, um die Software vernünftig ausführen zu können. Sie werden über Paketquellen, sogenannte Repositorys, herausgegeben, entweder als lokale Medien (CD, DVD oder Festplatte) oder als Online-Repositorys. Währen der Installation werden die Metadaten in einer lokalen Paketdatenbank gespeichert, die gebraucht wird, um die Software-Pakete wieder aufzufinden.


Libzypp ist eine openSUSE-Implementierung eines solchen Paketmanagementsystems, das YaST als grafische Benutzeroberfläche und Zypper als Kommandozeilenwerkzeug unterstützt.


Pakete

Pakete sind Archive oder Dateien, die alle Datei enthalten, die einen Teil der Software ausmachen (so wie die Anwendung selbst, gemeinsam benutzte Bibliotheken, Entwicklungspakete, die Dateien enthalten, um Software in Abhängigkeit von einer Bibliothek zu entwickeln,...) und schließlich Anweisungen um sie zum Laufen zu bringen.

Ein Paket ist ordentlich in die Distribution integriert, für die es gebaut wurde, mit Bezug auf Installationspfad, Abhängigkeiten, Desktop-Integration, geeigneten Startup-Skripten für Server usw. Aus diesem Grund sollten Sie immer Pakete installieren, die für die Distribution gebaut wurden, die Sie verwenden, einschließlich der exakten Version-Nummer der Distribution (z. B. openSUSE 11.4). Installieren Sie nicht Fedora-Pakete auf openSUSE, nicht einmal openSUSE 11.3 Pakete auf einem 11.4 System.

Paket-Metadaten

Ein Paket enthält weitere Informationen, die gewöhnlich als Metadaten bezeichnet werden, wie

  • eine Zusammenfassung,
  • eine Beschreibung,
  • eine Liste von Dateien, die in den Paketen enthalten sind,
  • die Softwareversion und die Release-Nummer,
  • wann, wo und von wem wurde es gebaut,
  • für welche Architektur ist es gebaut,
  • die Prüfsumme der Dateien,
  • die Lizenz der Software,
  • welche anderen Pakete es zum ordentlichen Funktionieren benötigt,
  • etc.

Paket-Abhängigkeiten

Ein wichtiger Aspekt des Pakete-Archivs ist die Beziehungen die sie enthalten. Die Pakete verbinden Dateien zu anderen Paketen, indem die gepackten Anwendungen eine Ausführungsumgebung benötigen (andere Werkzeuge, Bibliotheken usw.), um die Anwendung zum Laufen zu bringen. Paket-Abhängigkeiten werden benötigt, um solche Beziehungen auszudrücken.

Als ein Beispiel: Paket A benötigt die Paket B, C und D, die installiert sein müssen, um ordentlich zu arbeiten.

  • Paketabhängigkeiten sind fordernd, was bedeutet, wenn Paket A das Paket B benötigt und Paket B benötigt Paket C, benötigt Paket A auch das Paket C. Das begründet, warum Sie manchmal eine Menge Pakete installieren müssen, obwohl Sie nur eine Anwendung wollten.
  • Abhängigkeiten von Bibliotheken (typischer Weise Pakete, die mit "lib" anfangen) sind sehr gebräuchlich. Jede einzelne Anwendung hängt von einem Satz Bibliothekspaketen ab.

Pakete und Paketabhängigkeiten sind sehr wichtige Aspekte von Linux-Distributionen (ebenso von BSD und UNIX-Systemen), indem sie einen modularen Weg unterstützen, um Betriebssysteme und Ihre Anwendungen aufzusetzen und zu organisieren. Das gilt insbesondere für Bibliothekspakete.

Als ein Beispiel, das Paket openssl enthält kryptografische Bibliotheken, die von vielen Anwendungen und anderen Bibliotheken (z.B. für die SSL-Verschlüsselung) benötigt werden. Wenn eine neue, verbesserte Version von openssl verfügbar ist, werden alle Anwendungen, die es benötigen, einen Nutzen davon haben, nur durch die Aktualisierung dieses einzelnen Paketes zu einer neueren Version.

Es ist ebenso ein sehr leistungsfähiger Weg, ein stabiles und sicheres System zu warten. Wenn eine Sicherheitslücke, ein Angriff oder ein Bug eine Bibliothek, die von einer oder vielen Anwendungen benötigt wird, beeinflusst, wird die Aktualisierung des einzelnen Paketes all diese negativen Einflüsse beheben.

Paketformate

In der Linux-Welt beheimatete Software wird im Wesentlichen in drei Paketformaten verpackt.

  • tgz (tar gzip Dateien) sind im Grunde Sourcecode-Archive. Sie können alles enthalten, was der Paketbauer für brauchbar hält. Abgesehen vom Archivformat selbst, ist es notwendig, diese Dateien zu entpacken. Es gibt keine Standards darüber, was die tgz-Dateien zu enthalten haben. Sie müssen kompiliert werden, um die Software benutzen zu können.
  • rpm (RPM Pakete) sind vor-kompilierte Archive. Sie wurden von Red Hat Linux entwickelt und von LSB standardisiert. Es wird heutzutage von vielen Linux-Distributionen als Paketsystem verwendet, einschließlich von openSUSE.
  • deb (Debian)-Pakete sind ebenso vor-kompilierte Archive, die von auf Debian basierenden Systemen verwendet werden.

Obwohl das Archivformat die geforderten Abhängigkeiten bemerkt, stellt es nicht die Funktion des Abhängigkeitsmanagements bereit. Sie werden nur erkannte Probleme dem Anwender präsentieren und überlassen es ihm, zu entscheiden, was zu tun ist.

Zum Beispiel: Sie wollen ein RPM-Paket A installieren, das Abhängigkeiten zum RPM-Paket B besitzt. RPM wird nicht automatisch das Paket B installieren. Es wird nur sagen, dass es Paket B benötigt und hält an. Es ist Sache des Anwenders, zuerst das Paket B zu installieren und dann Paket A. Nun stellen Sie sich vor, das Paket B hängt von Paket C ab, das wiederum von Paket D und so weiter. Ihnen bliebe nichts anderes übrig, als alle Abhängigkeiten in allen ihren Verzweigungen manuell zu durchforsten.

Paket-Manager

Auf modernen Linux-Systemen wie openSUSE wird die Installation der Software vom einem Paket-Management durchgeführt. Der Paket-Manager, der "über" den RPM-Paketen angeordnet ist, holt sich die Software-Pakete aus den Paket Repositorys (von Online-Servern, CDs, DVDs etc.), löst die Abhängigkeiten und installiert alle benötigten Pakete auf Ihrem System. Der Paket-Manager macht es Ihnen leicht, die Pakete später wieder zu löschen oder sie zu aktualisieren. Die Zahl der verfügbaren Pakete hängt davon ab, welche Paketquellen Sie hinzugefügt haben.

Die wichtigsten Paket-Manager für openSUSE sind das YaST-Modul mit grafischer Oberfläche und Zypper als Kommandozeilen-Werkzeug.

Paket Repositorys

Bevor Pakete installiert werden können, müssen sie in einer Paketquelle, einem physischen Medium wie CD oder DVD oder über das Internet verfügbar sein.

openSUSE Paketquellen enhalten:

  • Offizielle Paketquellen mit gut getesteten und unterstützten Paketen und
  • Zusätzliche externe Paketdepots, wie Packman und Build Service Repositorys. Sie unterstützen verschiedene zusätzliche Pakete. Einige sind etwas aktueller und/oder andere dürfen aus rechtlichen Gründen nicht in openSUSE einbezogen werden. Ebenso wurden sie nur begrenzten Tests unterzogen.

Siehe weiter


Externe Links