Einer der Hauptunterschiede zwischen Linux-Distributionen ist die Paketverwaltung. In diesem Teil der Linux-Jargon-Buster-Reihe erfahren Sie mehr über das Paketieren und Paketmanager in Linux. Sie erfahren, was Pakete sind, was Paketmanager sind und wie sie funktionieren und welche Arten von Paketmanagern verfügbar sind.
Was ist ein Paketmanager unter Linux?
Einfacher ausgedrückt ist ein Paketmanager ein Tool, mit dem Benutzer Softwarepakete auf einem Betriebssystem installieren, entfernen, aktualisieren, konfigurieren und verwalten können. Der Paketmanager kann eine grafische Anwendung wie ein Softwarecenter oder ein Befehlszeilentool wie apt-get oder pacman sein.
In Tutorials und Artikeln zu It’s FOSS werde ich oft den Begriff ‘Paket’ verwenden. Um den Paketmanager zu verstehen, müssen Sie verstehen, was ein Paket ist.
Was ist ein Paket?
Ein Paket wird normalerweise als Anwendung bezeichnet, es kann sich jedoch auch um eine GUI-Anwendung, ein Befehlszeilentool oder eine Softwarebibliothek (von anderen Softwareprogrammen erforderlich) handeln. Ein Paket ist im Wesentlichen eine Archivdatei, die die ausführbare Binärdatei, die Konfigurationsdatei und manchmal Informationen zu den Abhängigkeiten enthält.
Früher wurde Software aus ihrem Quellcode installiert. Sie würden auf eine Datei (normalerweise mit dem Namen Readme) verweisen und sehen, welche Softwarekomponenten sie benötigt, sowie den Speicherort der Binärdateien. Ein Konfigurationsskript oder Makefile ist oft enthalten. Sie müssen die Software selbst kompilieren oder alle Abhängigkeiten (einige Software erfordert die Installation anderer Software) selbst behandeln.
Um diese Komplexität zu beseitigen, haben Linux-Distributionen ihr eigenes Paketformat erstellt, um den Endbenutzern gebrauchsfertige Binärdateien (vorkompilierte Software) für die Installation von Software zusammen mit einigen Metadaten (Versionsnummer, Beschreibung) und Abhängigkeiten.
Es ist, als würde man einen Kuchen backen oder einen Kuchen kaufen.
Ungefähr Mitte der 90er Jahre erstellte Debian das Paketformat .deb oder DEB und Red Hat Linux erstellte das Paketsystem .rpm oder RPM (kurz für Red Hat Package Manager). Das Kompilieren des Quellcodes existiert noch, ist aber jetzt optional.
Um mit den Verpackungssystemen zu interagieren oder sie zu verwenden, benötigen Sie einen Paketmanager.
Wie funktioniert der Paketmanager?
Bitte beachten Sie, dass der Paketmanager ein generisches Konzept ist und nicht nur auf Linux beschränkt ist. Sie finden häufig 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 in diesem Artikel auf Linux liegt, werde ich die Dinge aus der Sicht von Linux betrachten. Die meisten Erläuterungen hier können jedoch auch auf den Paketmanager im Allgemeinen angewendet werden.
Ich habe dieses Diagramm (basierend auf SUSE Wiki) erstellt, damit Sie leicht verstehen können, wie ein Paketmanager funktioniert.
Fast alle Linux-Distributionen haben Software-Repositorys, bei denen es sich im Grunde um eine Sammlung von Softwarepaketen handelt. Ja, es könnte mehr als ein Repository geben. Die Repositorys enthalten Softwarepakete unterschiedlicher Art.
Repositorys haben auch Metadatendateien, die Informationen zu den Paketen enthalten, wie den Namen des Pakets, die Versionsnummer, die Beschreibung des Pakets und den Repository-Namen usw. Dies sehen Sie, wenn Sie den Befehl apt show in Ubuntu/Debian verwenden.
Der Paketmanager Ihres Systems interagiert zuerst mit den Metadaten. Der Paketmanager erstellt einen lokalen Cache mit Metadaten auf Ihrem System. Wenn Sie die Update-Option des Paketmanagers ausführen (für example apt update), aktualisiert es diesen lokalen Cache von Metadaten, indem es auf Metadaten aus dem Repository verweist.
Wenn Sie den Installationsbefehl Ihres Paketmanagers ausführen (für example apt install package_name), verweist der Paketmanager auf diesen Cache. Wenn es die Paketinformationen im Cache findet, verwendet es die Internetverbindung, um eine Verbindung zum entsprechenden Repository herzustellen, und lädt das Paket zuerst herunter, bevor es auf Ihrem System installiert wird.
Ein Paket kann Abhängigkeiten aufweisen. Dies bedeutet, dass möglicherweise andere Pakete installiert werden müssen. Der Paketmanager kümmert sich oft um die Abhängigkeiten und installiert ihn automatisch zusammen mit dem Paket, das Sie installieren.
Paket-Manager-Handhabung von Abhängigkeiten unter Linux
Wenn Sie ein Paket mit dem Paketmanager entfernen, werden Sie entweder automatisch entfernt oder informiert Sie darüber, dass Ihr System nicht verwendete Pakete enthält, die gereinigt werden können.
Abgesehen von den offensichtlichen Aufgaben des Installierens und Entfernens können Sie den Paketmanager verwenden, um die Pakete zu konfigurieren und nach Ihren Bedürfnissen zu verwalten. Für example, können Sie das Upgrade einer Paketversion von den regulären Systemupdates verhindern. Es gibt noch viele weitere Dinge, zu denen Ihr Paketmanager in der Lage sein könnte.
Verschiedene Arten von Paketmanagern
Paketmanager unterscheiden sich je nach Paketsystem, aber dasselbe Paketsystem kann mehr als einen Paketmanager haben.
Für example, Drehzahl hat Yum und DNF Paketmanager bzw. Für DEB haben Sie apt-get, Eignung kommandozeilenbasierte Paketmanager.
Synaptischer Paketmanager
Paketmanager sind nicht unbedingt befehlszeilenbasiert. Sie haben grafische Tools zur Paketverwaltung wie Synaptic. Das Softwarecenter Ihrer Distribution ist auch ein Paketmanager, selbst wenn darunter apt-get oder DNF ausgeführt wird.
Fazit
Ich möchte auf dieses Thema nicht näher eingehen, weil ich immer weitermachen kann. Dies weicht jedoch vom Ziel des Themas ab, Ihnen ein grundlegendes Verständnis des Paketmanagers unter Linux zu vermitteln.
Die neuen universellen Verpackungsformate wie Snap und Flatpak habe ich vorerst weggelassen.
Ich hoffe, dass Sie das Paketverwaltungssystem in Linux etwas besser verstehen. Wenn Sie immer noch verwirrt sind oder Fragen zu diesem Thema haben, verwenden Sie bitte das Kommentarsystem. Ich werde versuchen, Ihre Fragen zu beantworten und diesen Artikel bei Bedarf mit neuen Punkten zu aktualisieren.