Share

Ein Grundproblem von Linux

  • 9. September 2012

Die Überschrift ist etwas falsch. Die ewige Frage, was denn nun die beste Plattform ist, kann so einfach nicht erklärt werden. Mir hat sich aber beim Herunterladen von Humble Bundle sehr klar offenbart, was EIN Problem von den verschiedenen Linux-Distributionen ist.

Ja, irgendwie muss ich das jetzt niederschreiben. Der Blogbeitrag ist so kurz im Vergleich zu dem komplexen Thema, aber ich denke, die Bilder sprechen (zum Teil) für sich. Aber nun zur Vorgeschichte:

Vor 2 Wochen gabs wieder einmal eine ziemlich geniale Aktion im Indie-Games-Bereich: Das Humble Bundle gabs in der Version 3 mit 5 frischen Indie-Games zum Download. Der Clou an der Sache:  Den Preis konnte man selber bestimmen, und auch den Anteil, wer was bekommen soll – die Entwickler, die Humble-Bundle-Bundler, oder ein guter Zwecke – in diesem Fall die EFF und Child's Play Charity. Die Spiele selbst sind grafisch nicht der Brenner und auch die Story wird man mit der Lupe suchen – aber hei, ich hab 15 € in die Hand genommen und in der empfohlenen Einstellung an Entwickler, Bundler und Charity verteilt. Nach ein paar Minuten war dann der Key da und ich konnte schon die Spiele herunterladen und spielen.

Das tolle an dem Humble Bundle ist, dass alle Spiele ausnahmslos für Windows, Linux und Mac verfügbar sind – nebenbei zeigt eine Statistik, dass die Linux-Downloader durchschnittlich am meisten gezahlt haben.

Als ich dann aber unter Linux 1-2 Spiele ausprobieren wollte, hat sich irgendwo auf der Downloadseite eine große Problematik von Linux gezeigt. Das Humble Bundle gibt es für Windows, Linux, Mac OSX und Android – will ich ein Spiel für Mac OSX oder Windows herunterladen, ist das alles kein Thema. Das entsprechende Ding herunterladen und gut ist. Auf der Linux-Seite ist das ganze weit schwieriger. Pro Spiel gibt es unterschiedliche Lösungen, sowieso 32 und 64Bit-Fassungen – offizielle Distri-Pakete, sowie Binaries, die einen eigenen Installer mitbringen und die Paketverwaltung umgehen.

Exkurs: Paketverwaltung

Unter Windows kennt man so etwas schon seit Jahren (unter Linux auch, aber ich gehs mal so an). Wenn man ein Programm mit dem mitgelieferten Installer installiert, hat man später die Möglichkeit, das selbe Programm mehr oder weniger sauber wieder von der Platte zu putzen, indem man in der Systemsteuerung das betreffende Programm deinstalliert. Diese Programme installieren entweder selbst die benötigten Programmbibliotheken mit (DLL-Dateien, die Programme in der Funktionalität erweitern können), oder der Installer weist darauf hin, dass noch die eine oder andere Bibliothek zu installieren ist.

So gesehen ist eine Paketverwaltung unter Linux, wie etwa dpkg oder RPM weit ausgefeilter als die Windows-Infrastruktur. Unter Windows hat sich eingebürgert, dass jedes Programm selbst dafür zu sorgen hat, wie es zu seinen Abhängigkeiten kommt – meistens ist dann die DLL im Installier mit integriert. Unter Linux geschieht das alles viel modularer. In einem deb-Paket oder einem rpm-Paket sind die Informationen gespeichert, welche externen Bibliotheken in welcher Version verwendet werden. Wird dann so ein Programm über das Paketverwaltungssystem installiert, wird die Bibliothek gleich automatisch an zentraler Stelle mitinstalliert, was Speicherplatz und Wartungsaufwand erspart. Hat die Bibliothek beispielsweise eine Sicherheitslücke, gibt es ein Update und alle Programme sind automatisch gefixt. Nicht so unter Windows und Mac OSX.

Jedoch ist so ein Paketverwaltungssystem keine Pflicht (und das ist auch gut so!) und daher gibt es immer noch eigenständige Installer, die dann aber in der Regel dafür einen Uninstaller mitliefern. Die Lösung ist in Ordnung, allerdings genießen diese Programme dann nicht den gleichen "Schutz" durch das automatische Fixen systemweit genutzter Bbiliotheken. Außerdem gibt es verschiedene Ansätze für eine Paketverwaltung und somit gibt es mindestens 3 große Formate, die es zu unterstützen gilt, die aber untereinander nicht wirklich kompatibel sind.

Ubuntu hat sowieso einen eigenen Button ganz oben, hier nicht im Bild und ist somit wahrscheinlich noch die benutzerfreundlichste Lösung. Neulinge und Gelegenheitsuser stehen auf verlorenem Posten: 32 oder 64 Bit? Debian-Package? RPM? BIN? Als Neuling oder als "einfacher" User ist man sehr schnell überfordert. Für Windows und Mac werden jeweils nur ein Paket angeboten. Wieso? Naja – Auf diesen Systemen gibt es jeweils nur eine Paketverwaltung, und somit gibt es keine Sonderfälle, die beachtet werden müssen.

Versteht mich nicht falsch, Ich liebe Linux gerade wegen der Vielfalt, Vielseitigkeit. Es gibt für sehr viele Spezialgebiete optimierte Linux-Distris, die genau für diesen einen Zweck geschaffen wruden und ständig weiterentwickelt werden. Es gibt haufenweise Fenstermanager, die so gut wie für jeden Benutzer das passende Look and Feel bieten.

Vor Jahren hat man begonnen, innerhalb der Linux Foundation die Linux Standard Base zu entwickeln – ein einheitlicher Standard von Bibliotheken und Dateisystemstrukturen, die sicherstellen soll, dass ein Programm, das auf die LSB als Grundlage baut, auf jeder Linux-Distribution läuft, die den LSB-Standard umsetzt. Der LSB hat die Vielfalt nicht eingeschränkt, im Gegenteil: Solange ein Fenster-Manager beispielsweise die LSB-Richtlinien umsetzt, muss er sich nicht fürchten, dass er so schnell in der Versenkung verschwindet.

Viel problematischer ist, dass jede Linux-Distri ein eigenes Süppchen kocht, was Paketverwaltung angeht. Klar, jeder hat so seine Vorstellung von einem guten Paketverwaltungssystem – aber kann es denn wirklich sein, dass man so sehr auf die Pakete angewiesen ist? Wie bereits der Kollege Heiko auf  fedora-blog.de geschrieben hat – Vielleicht benötigt es für Linux eine Art UML-Notation, damit Pakete von diversen Paketverwaltungssystemen auf einem "Fremdsystem" sauber installiert werden. Sollte das Problem beseitigt sein, könnte das ein großer Schritt in Richtung Linux für jedermann sein. Aber solang es nicht ohne weiteres möglich ist, dass nur ein Button für alle Distributionen reicht, damit ein passendes Paket auf dem Rechner landet, ist Linux für Neulinge kaum wirklich zumutbar. Bei Humble Bundle war man noch großzügig, was die Auswahl betrifft – Allerdings gehen viele andere den Weg, nur das bekannteste oder meistgenutzte Linux zu unterstützen. Alle Nutzer einer alternativen Distribution handeln dann auf eigenes Risiko und das ist nicht der modus operandi, den man sich wünscht.

Just my two cents.