Ein wichtiger Faktor, der eine Linux-Distribution unterscheidet, ist ihr Paketverwaltungssystem. In diesem Artikel erfahren Sie mehr über Paketierung und Paketmanager unter Linux. Wir stellen Ihnen die Konzepte „Pakete“ und „Paketmanager“ und ihre Funktionsweise sowie einige gängige Paketmanager vor.
Was ist ein Paketmanager?
Einfach ausgedrückt ist ein „Paketmanager“ (oder „Paketmanager“) ein Tool, mit dem Benutzer Softwarepakete auf einem Betriebssystem installieren, entfernen, aktualisieren, konfigurieren und verwalten können. Ein Paketmanager kann eine grafische Anwendung wie Software Center oder ein Befehlszeilentool wie apt-get oder pacman sein.
Sie werden feststellen, dass ich in meinen Tutorials und Artikeln häufig das Wort „Paket“ verwende. Um Paketmanager zu verstehen, müssen Sie verstehen, was Pakete sind.
Was ist eine Tasche?
Ein „Paket“ (oder „Softwarepaket“) bezieht sich normalerweise auf eine Anwendung, bei der es sich um eine GUI-Anwendung, ein Befehlszeilentool oder eine Softwarebibliothek (für andere Softwareprogramme erforderlich) handeln kann. Ein Paket ist im Wesentlichen eine Archivdatei, die eine binäre ausführbare Datei, Konfigurationsdateien und manchmal Abhängigkeitsinformationen enthält.
Früher wurde Software aus ihrem Quellcode installiert. Sie würden in einer Datei (normalerweise mit dem Namen README) nachsehen, welche Softwarekomponenten erforderlich sind und wo sich die Binärdateien befinden. Es enthält normalerweise ein Konfigurationsskript oder Makefile. Sie müssen die Software selbst kompilieren oder alle Abhängigkeiten selbst verwalten (manche Software erfordert die Installation anderer Software).
Um diese Komplexität zu beseitigen, haben Linux-Distributionen ihre eigenen Verpackungsformate erstellt, die Endbenutzern gebrauchsfertige Binärdateien (vorkompilierte Software) für die Installation der Software sowie einige Metadaten (Versionsnummer, Beschreibung) und Abhängigkeitsbeziehungen zur Verfügung stellen.
Es ist wie einen Kuchen backen statt einen Kuchen zu kaufen.
Etwa Mitte der 1990er Jahre erstellte Debian das DEB-Verpackungsformat (.deb) und Red Hat Linux erstellte das RPM-Verpackungssystem (Abkürzung für Red Hat Package Manager) (.rpm). Die Möglichkeit, Quellcode zu kompilieren, besteht weiterhin, ist jedoch jetzt optional.
Um mit einem Verpackungssystem zu interagieren oder es zu nutzen, benötigen Sie einen Paketmanager.
Wie funktioniert ein Paketmanager?
Bitte denken Sie daran, dass ein Paketmanager ein allgemeines Konzept ist und nicht nur für Linux gilt. Oft finden Sie Paketmanager für verschiedene Software- oder Programmiersprachen. Es gibt einen PIP-Paketmanager nur für Python-Pakete. Sogar der Atom-Editor verfügt über einen eigenen Paketmanager.
Da der Schwerpunkt dieses Artikels auf Linux liegt, werde ich aus der Linux-Perspektive beginnen. Viele der hier erläuterten Erklärungen lassen sich jedoch auch auf Paketmanager im Allgemeinen übertragen.
Ich habe dieses Diagramm (basierend auf SUSE Wiki) erstellt, damit Sie leicht verstehen können, wie der Paketmanager funktioniert.
Fast alle Linux-Distributionen verfügen über ein „Software-Repository“, bei dem es sich im Grunde um eine Sammlung von Softwarepaketen handelt. Ja, es kann mehr als ein Software-Repository geben. Softwarebibliotheken enthalten verschiedene Arten von Softwarepaketen.
Software-Repositorys verfügen auch über Metadatendateien, die Informationen zum Softwarepaket enthalten, z. B. Paketname, Versionsnummer, Paketbeschreibung und Name des Software-Repositorys. Dies sehen Sie, wenn Sie den Befehl apt show in Ubuntu/Debian verwenden.
Der Paketmanager auf Ihrem System interagiert zunächst mit den Metadaten. Der Paketmanager erstellt einen lokalen Cache mit Metadaten auf Ihrem System. Wenn Sie die Update-Option Ihres Paketmanagers ausführen (z. B. apt update), aktualisiert dieser den lokalen Metadaten-Cache, indem er auf die Metadaten im Repository verweist.
Wenn Sie den Installationsbefehl des Paketmanagers ausführen (z. B. apt install Paketname), verweist der Paketmanager auf diesen Cache. Wenn die Paketinformationen im Cache gefunden werden, stellt es über das Internet eine Verbindung zum entsprechenden Repository her und lädt das Paket herunter, bevor es auf Ihrem System installiert wird.
Ein Paket kann Abhängigkeiten haben. Das bedeutet, dass möglicherweise zusätzliche Pakete installiert werden müssen. Paketmanager verwalten diese Abhängigkeiten normalerweise und installieren sie automatisch zusammen mit dem Paket, das Sie installieren.
*Der Linux-Paketmanager kümmert sich um Abhängigkeiten*
Wenn Sie ein Paket mit dem Paketmanager löschen, wird es ebenfalls automatisch gelöscht oder Sie werden darüber informiert, dass das System über nicht verwendete Pakete verfügt, die bereinigt werden können.
Zusätzlich zu den offensichtlichen Aufgaben der Installation und Entfernung können Sie mit dem Paketmanager auch Pakete konfigurieren und entsprechend Ihren Anforderungen verwalten. Sie können beispielsweise verhindern, dass eine bestimmte Paketversion bei regelmäßigen Systemaktualisierungen aktualisiert wird. Ihr Paketmanager kann wahrscheinlich noch viel mehr tun.
Verschiedene Arten von Paketmanagern
Paketmanager variieren je nach Verpackungssystem, aber dasselbe Verpackungssystem kann mehrere Paketmanager haben.
RPM verfügt beispielsweise über Yum- und DNF-Paketmanager. Für DEB gibt es befehlszeilenbasierte Paketmanager wie apt-get, aptitude usw.
Synaptic Package Manager
Paketmanager sind nicht unbedingt befehlszeilenbasiert, es gibt auch grafische Paketverwaltungstools wie Synaptic. Das Software Center Ihrer Distribution ist auch ein Paketmanager, selbst wenn unter der Haube apt-get oder DNF ausgeführt wird.
Fazit
Ich möchte nicht näher auf dieses Thema eingehen, obwohl ich noch weitermachen könnte, aber das würde vom Ziel dieses Themas ablenken – nämlich Ihnen ein grundlegendes Verständnis der Paketmanager unter Linux zu vermitteln.
Die neuen universellen Verpackungsformate wie Snap und Flatpak ignoriere ich vorerst.
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Linux-Paketmanagers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!