Die Linux Paradigmen – Teil 2

Vassily Kandinsky, 1939 – Composition VIII

Nach Teil 1 zu Themen wie Baukasten, Modularität und Trennung von Technik und Oberfläche, geht es in diesem Teil um die Frage, wie Programme unter Linux verwaltet werden.

Zentrale Softwareverwaltung

Unter Windows und macOS bedeutete „ein Programm installieren“ früher meist: Ich gehe auf eine Website und lade mir einen Installer herunter und klicke das Setup durch, um die Software zu installieren. Updates wurden dann durch die Software selbst organisiert oder indem ich einen neueren Installer nutze. Programme sind hier also eher Einzelstücke, die dem System „angeheftet“ werden.

Auf Linux galt und gilt historisch bis heute immer schon ein anderes Prinzip: Die Programme sind Teil des Systems und werden über eine zentrale Softwareverwaltung ergänzt oder entfernt. Das wird auch Paketmanagement genannt. Über den Paketmanager werden nicht nur Programm installiert und deinstalliert, auch die Updates werden darüber verwaltet. Auch die Installation von „Abhängigkeiten“, also anderen Programmen oder Bibliotheken, die für das Ausführen eines Programms wichtig sind, wird über den Paketmanager organisiert. Sprich – Programme werden eher als Bausteine eines System verstanden.

In typischer Linux-Manier nutzen unterschiedliche Distributionen unterschiedliche Paketmanager – je nachdem was am besten zum jeweiligen Distro-Konzept passt: Auf Debian basierende Distros wie Ubuntu oder Linux Mint nutzen apt, Fedora nutzt dnf, Arch nutzt Pacman.

Stabilität versus Aktualität

Dieses Prinzip hat Vor- und Nachteile. Eine Distribution wie Debian läuft sehr stabil, da alle Softwarepakete aufeinander und auf das System abgestimmt sind und gut miteinander funktionieren. Zudem ist es sehr einfach, Software vergleichsweise schnell und einfach zu installieren. Wenn ich beispielsweise auf einem Zweitrechner die gleiche Software haben möchte, wie auf meinem Erstrechner, reicht ein Befehl in der Kommandozeile und – schwupp – wird alles installiert. Gerade wenn man Server betreut, hat dieses Prinzip natürlich enorme Vorteile.

Was sind die Nachteile? Nunja, wenn ich eine Software für Linux bereitstellen möchte, muss ich einige unterschiedliche Paketstandards bedienen und die jeweiligen Abhängigkeiten im Blick haben – das ist mit Aufwand verbunden.

Außerdem entwickelt sich Software oft schneller weiter als die Distributionen. Wenn eine neue Version von Linux Mint erscheint, bildet sie einen quasi festgefrorenen Stand der Softwarepakete ab, der zum Zeitpunkt der Veröffentlichung streng genommen schon wieder veraltet ist. Wenn beispielsweise Firefox in neuer Version erscheint, muss man ggf. mehrere Monate warten, bis eine neue Version der Distribution erscheint, die dann erst die neue Version des Browsers beinhalten kann.

Repositories und Rolling Releases

Um dieses Problem zu umgehen, gibt es bei Linux verschiedene Lösungen: Beispielsweise können zusätzliche Softwarequellen oder -repositories dazugeschaltet werden, die neuere Softwareversionen oder zusätzliche Programme anbieten.

Oder Distributionen setzen direkt auf ein Rolling Release Modell, wie zum Beispiel Arch. Dann gibt es keine festen Release-Snapshots mehr, die Distro ist quasi laufend im Update-Modus, neue Software-Versionen werden schnell bereitgestellt – was natürlich auf Kosten der Stabilität gehen kann.

Flatpak, Snaps und AppImages

Und dann gibt es da noch eine Entwicklung, die noch relativ jung ist und in den 2010er-Jahren aufkam. Es entstanden mehrere Konzepte, die alle – auf unterschiedliche Weise – Software unabhängig von Distributionen bereitstellen: Flatpaks, Snaps und AppImages. Großer Vorteil: Sie funktionieren unabhängig von den Paketmanagern der Distributionen, indem sie die benötigten Abhängigkeiten einfach quasi als abgeschlossene Sandbox selbst mitbringen. Das macht sie im Handling für Entwickler:innen einfacher, App und System laufen unabhängig voneinander.

Ein Kritikpunkt daran ist, dass die Pakete in der Regel größer sind, da sie noch zusätzliche Abhängigkeiten enthalten. Und für Nutzer:innen kann es auch zu Verwirrung führen. Ich kann die gleiche Software zum Beispiel über den Distro-Paketmanager installieren oder als Flatpak.

Lustigerweise schließen wir damit auch wieder den Bogen zu Windows und macOS. Ein Flatpak zu installieren kann sich dann doch wieder recht ähnlich anfühlen wie die Installation einer .exe. Gleichzeitig haben sich macOS und Windows über ihre AppStores wiederum der zentralen Programmverwaltung angenähert.

Dieser Beitrag ist Teil einer Artikelserie

Die Linux Paradigmen

Ein paar grundlegende Funktionsweisen des freien Betriebssystems.

  1. Die Linux Paradigmen – Teil 1

    Ben fragte mich nach Paradigmen, die Linux von Windows und Mac unterscheiden. Darüber habe ich ein wenig nachgedacht und bin zu einem Zwischenergebnis gekommen. Warum Zwischenergebnis? Weil ich mich zurückerinnert habe, wie…

  2. Die Linux Paradigmen – Nachtrag zu Teil 1

    In Teil 1 zu den Linux Paradigmen ging es u.a. um die Frage, welche Rolle eigentlich die Desktop-Oberflächen und Display-Server spielen. In diesem Kontext kam die Rückfrage auf, warum den Anwendungen es…

  3. Die Linux Paradigmen – Teil 2

    Wie Programme unter Linux bearbeitet werden.

Kommentare

  1. Ach, spannend. Ja, das war mir im Umfeld mit den Linuxaktivitäten hier Zuhause in den letzten Tagen auch schon untergekommen. Paketmanager kenne ich beruflich aber schon aus dem NodeJS-Umfeld. Da ist es aus professioneller Sicht allerdings die Hölle, weil man sich teilweise hunderte von MB in miserabel gewarteten Dependecies einfängt, nur weil man ein kleines Feature benutzen will. Das ist in verschiedenen Situation echt die Hölle. Hier würde mich ja Ennos Urteil über die Linux-Paket-Manager interessieren … ich glaub‘ ich stupse den mal an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.