IPv8: Ich mache mir das Internet, wie es mir gefällt

Wenn IPv4 als Initialzündung des modernen Internets gelten kann, dann ist IPv6 die seit Jahrzehnten geplante und inzwischen vielerorts gelebte Zukunft des Netzes.

Ein IETF-Entwurf (Draft) von Jamie Thain aus Bermuda will IPv6 überflüssig machen, das Internet neu erfinden und zu einhundert Prozent rückwärtskompatibel sein. Der Entwurf mit dem provokanten Namen Internet Protocol Version 8 wurde im April 2026 eingereicht und erhitzt seitdem die Gemüter.

Nicht, weil er als realistischer Nachfolger für IPv6 gilt, sondern weil viele Netzwerkexperten ihn als technisch fragwürdigen Alleingang mit Hang zum Größenwahn betrachten.

Er demonstriert, wie sehr der offene Einreichungsprozess der IETF zugleich Stärke und Schwäche ist. Jeder darf mitreden, doch am Ende trennt sich die Spreu vom Weizen. Der Vorfall trifft einen wunden Punkt. Nach 25 Jahren schleppender IPv6-Migration, steigendem geopolitischem Druck rund um Huaweis New IP und einer Community, die bei jeder neuen Versionsnummer reflexartig zuckt, entfaltet selbst ein aussichtsloser Einzelvorschlag erstaunliche Wirkung.

Das neue Internet

Im Entwurf sollen drei grundlegende Probleme des heutigen Internets gleichzeitig gelöst werden.

Das erste Problem ist der Mangel an IPv4-Adressen, den der Entwurf beheben möchte. Die vierte Version des Internet Protocols verwendet 32-Bit-Adressen und kann dadurch rund 4,3 Milliarden eindeutige Adressen bereitstellen. Diese Anzahl ist angesichts von Milliarden Smartphones, Servern, IoT-Geräten und Heimroutern nicht mehr ausreichend. Deshalb werden seit Jahren Techniken wie Network Address Translation (NAT) eingesetzt, bei denen sich viele Geräte eine einzige öffentliche IP-Adresse teilen.

Zweitens will der Entwurf die verteilte und uneinheitliche Netzwerkverwaltung beseitigen. Gemeint ist damit, dass Netzwerke heute über viele unterschiedliche Protokolle, Werkzeuge und Verwaltungsoberflächen konfiguriert und überwacht werden. Für Administratoren bedeutet das einen hohen Aufwand, da es keinen einheitlichen Mechanismus gibt, um alle Komponenten zentral zu steuern.

Drittens soll das unbegrenzte Wachstum der globalen BGP-Tabelle gestoppt werden. Das Border Gateway Protocol (BGP), ist das Routing-Protokoll, das festlegt, über welche Wege Datenpakete durch das Internet transportiert werden. Jeder Internetanbieter kündigt dabei an, für welche IP-Adressbereiche er erreichbar ist. Diese Informationen werden weltweit gesammelt. Die daraus entstehende Routing-Tabelle umfasst inzwischen weit über eine Million Einträge und wächst kontinuierlich weiter. Das stellt hohe Anforderungen an Speicher und Rechenleistung der Router im Internet-Backbone.

Der Entwurf behauptet, dass IPv6 auch nach 25 Jahren nur einen Minderheitsanteil des weltweiten Internetverkehrs erreiche und der parallele Betrieb von IPv4 und IPv6 wirtschaftlich nicht tragbar sei.

Aus dieser Analyse zieht der Autor den Schluss, dass nicht eine Vereinfachung, sondern ein noch umfassenderer Neuansatz erforderlich sei; gebündelt unter der bewusst provokanten Bezeichnung IPv8, einer Versionsnummer, die bereits in den 1990er Jahren mit dem PIP-Vorschlag verbunden war.

Der Entwurf im IETF-Datatracker

Begleitet wird der Kern-Entwurf zumindest dem Anspruch nach von einem ganzen Paralleluniversum aus BGP8, OSPF8, IS-IS8, WHOIS8, NetLog8, WiFi8 und SNMPv8. Im Hauptdokument werden diese Begleit-Spezifikationen zwar aufgelistet, die angegebenen Drafts sind jedoch nicht bei der IETF hinterlegt. Was wie ein kompletter Protokoll-Stack wirkt, ist offenbar vorwiegend eine Verweiskulisse.

Wer ist Jamie Thain?

Öffentlich taucht Thain bereits 2004 auf, damals als CTO des bermudianischen Internetproviders Transact im Kontext des Sasser-Wurms. In den folgenden Jahren arbeitete er laut Unternehmensprofilen als Technologiearchitekt im Telekommunikationsumfeld und war unter anderem an der Planung von 4G-LTE-Netzen, FTTH-Infrastrukturen und Unterseekabelsystemen beteiligt.

Später war Thain CTO bei Bluewave Bermuda, einem lokalen WISP- und ISP-Betreiber. Gemeinsam mit Jack Benaim gründete er anschließend den Bermuda-Inkubator InnoFund. InnoFund betrieb zusammen mit dem Inkubator DMZ den Startup-Accelerator i3 powered by DMZ. Daneben existiert auch BPMS Ltd, eine weitere von Thain mitbegründete Firma. Als aktuelle Zugehörigkeit führt der IPv8-Draft One Limited auf.

Doch welche Motivation steckte hinter dem Draft? Thain wollte ursprünglich keine neue Version des Internet-Protokolls entwickeln, sondern eine schlüsselfertige Komplettlösung für den Betrieb eines Netzwerks erstellen. Weil ihm IPv6 für dieses Vorhaben zu komplex erschien, entwickelte er während eines krankheitsbedingten Ausfalls mithilfe von KI innerhalb von fünf Tagen einen Vorschlag für einen neuen Protokoll-Stack.

IPv4 mit Vorwahl

Thains Kernidee ist überraschend konservativ. Statt IPv6 mit seinen 128-Bit-Adressen und neuem Header abzulösen, erweitert IPv8 den klassischen IPv4-Header um acht zusätzliche Oktette.

Architektonisch sieht der Entwurf einen 64-Bit-Adressraum vor, der wie folgt aufgebaut ist:

r.r.r.r.n.n.n.n

Die ersten 32 Bit codieren hierbei laut Spezifikation direkt eine 32-Bit-ASN. Eine Autonomous System-Nummer (ASN) ist die eindeutige Kennung eines Netzbetreibers oder einer Organisation im globalen Routing.

Große Provider wie die Deutsche Telekom, Cloudflare oder Google besitzen jeweils eine oder mehrere ASNs. Jede Organisation mit einer ASN erhält damit jeweils einen eigenen IPv4-Adressraum mit knapp 4,3 Milliarden Hostadressen. Im Entwurf stellt sich dies beispielhaft wie folgt dar:

64496.192.0.2.1  = 0.0.251.240.192.0.2.1
64497.192.0.2.1  = 0.0.251.241.192.0.2.1

Im Kern handelt es sich damit um eine Rückkehr zu einer frühen 64-Bit-Adressidee, die Steve Deering in der Vorgeschichte von IPv6 verfolgte, mit dem Unterschied, dass Thain die obere Hälfte des Adressraums fest an ASNs bindet.

Die zentrale Verkaufsbotschaft des Entwurfs lautet, dass IPv4 eine Teilmenge von IPv8 sei. Gemeint ist damit, wenn die ersten vier Oktette einer IPv8-Adresse auf 0.0.0.0 gesetzt werden, soll die Adresse wie eine ganz normale IPv4-Adresse behandelt werden.

Aus dieser Konstruktion leitet der Autor die weitreichende Behauptung ab, dass bestehende Geräte, Anwendungen und Netzwerke nicht verändert werden müssen, um an einem IPv8-Netz teilzunehmen. Der Übergang könne schrittweise erfolgen, ohne Stichtag und ohne erzwungene Migration. Der Entwurf fasst das selbstbewusst zusammen:

No existing device, application, or network requires modification. The suite is 100% backward compatible. There is no flag day and no forced migration at any layer.

Diese Behauptung kollabiert spätestens im Abschnitt über das Header-Format:

IPv8 uses IP version number 8 in the Version field. The header extends IPv4 by replacing the 32-bit src/dst address fields with 64-bit equivalents.

Bestehende IPv4-Stacks und Router würden Pakete mit der Versionsnummer 8 aber in aller Regel verwerfen.

Zone Server

Das eigentliche Kern des Entwurfs verbirgt sich nicht in der Adressmathematik, sondern im Abschnitt mit dem Namen IPv8 Management Philosophy.

Zentrales Element der Architektur ist der sogenannte Zone Server. Dabei handelt es sich um ein redundant ausgelegtes Serverpaar, bei dem beide Systeme gleichzeitig aktiv sind und gemeinsam eine Vielzahl bislang getrennter Dienste in einer einzigen Infrastruktur bündeln.

Im IPv8-Entwurf übernehmen diese Zone Server gemeinsam DHCP, DNS, Authentifizierung, Logging und Routenvalidierung. Fällt einer aus, bleibt der andere ohne Umschaltung weiter in Betrieb. Der Entwurf verlangt genau zwei sogenannte Zone Server pro Subnetz.

Dabei sollen die ebenfalls neuen Protokolle wie DHCP8, DNS8, NTP8, NetLog8, OAuth8, WHOIS8, ACL8 und XLATE8 auf diesen Systemen laufen. Jeder Endpunkt erhält bereits mit einer einzigen DHCP8-Discover-Antwort sämtliche Informationen über die verfügbaren Dienste.

Vorgeschrieben sind zwei Zone Server pro Subnetz, die auf den Adressen .254 und .253 betrieben werden. Hosts mit geraden Adressen verwenden standardmäßig den einen Server, Hosts mit ungeraden Adressen den anderen.

Komplexität gewünscht

Zusätzlich setzt der Entwurf voraus, dass in jedem Netzwerk ein zentraler Switch als sogenannter PVRST-Root fungiert. Per-VLAN Rapid Spanning Tree (PVRST) ist eine von Cisco Systems entwickelte proprietäre Variante des Spanning-Tree-Protokolls, die Schleifen in Ethernet-Netzen verhindert.

In größeren Ethernet-Netzen existieren oft mehrere redundante Verbindungen zwischen Switches. Ohne Schutzmechanismen könnten dadurch Schleifen entstehen, bei denen Datenpakete endlos im Kreis laufen. Spanning Tree-Protokolle verhindern das, indem sie einen Root-Switch auswählen und anschließend überflüssige Verbindungen deaktivieren.

Bemerkenswert ist, dass der Entwurf eine herstellerspezifische Technologie zur festen Voraussetzung eines globalen Internetprotokolls macht. Ein offener Internetstandard sollte sich nicht auf proprietäre Mechanismen eines einzelnen Herstellers stützen.

Auch das Routing wird vollständig neu organisiert. Vorgesehen sind eBGP8, IBGP8 und OSPF8; IS-IS8 bleibt als unterstützte Option erhalten, während die Protokolle RIP und EIGRP ausdrücklich als veraltet gelten. Über die Grenzen von autonomen Systemen hinweg sollen nur Präfixe bis maximal /16 propagiert werden. Jede Route muss vor ihrer Installation über die neue WHOIS8-Infrastruktur validiert werden, die der Entwurf als globale kritische Infrastruktur versteht. Die weltweite Routingtabelle soll dadurch strukturell auf die Anzahl der autonomen Systeme begrenzt werden.

Zur Pfadbewertung führt der Entwurf den sogenannten Cost Factor ein, einen 32-Bit-Wert, der Round-Trip-Time, Paketverlust, Congestion-Window, Sitzungsstabilität, Linkkapazität, wirtschaftliche Vorgaben und geografischer Entfernung kombiniert. So versucht der Entwurf, technische Messwerte, physikalische Grenzen und sogar wirtschaftliche Interessen in einer einzigen Zahl zu vereinen. Diese Vermischung sehr unterschiedlicher Einflussfaktoren wird von vielen Fachleuten als übermäßig komplex und praktisch kaum umsetzbar angesehen.

Im Bereich Sicherheit verfolgt der Entwurf einen sehr weitreichenden Ansatz. Jede verwaltbare Komponente, vom Endgerät über den Switch bis zum Router, muss sich mithilfe von OAuth2 und JSON Web Tokens eindeutig authentifizieren. Bevor ein Gerät am Netzwerk teilnehmen darf, muss es also nachweisen, dass es dazu berechtigt ist.

Auch ausgehende Verbindungen werden streng kontrolliert. Bevor ein Paket das Netzwerk verlassen darf, muss zunächst ein DNS8-Lookup erfolgreich sein. Erst dann wird ein entsprechender XLATE8-Eintrag angelegt, der die Verbindung überhaupt ermöglicht. Zusätzlich wird überprüft, ob das Zielnetz in der WHOIS8-Infrastruktur als gültig registriert ist. Schlagen diese Prüfungen fehl, wird die Verbindung blockiert.

Die Netzwerkkarten selbst sollen nicht überschreibbare Hardware-Limits durchsetzen, die nur durch explizite Anweisung des Zone Servers angehoben werden können. Konkret sind das maximal zehn Broadcasts pro Sekunde, zehn unauthentifizierte Pakete pro Sekunde und einhundert authentifizierte Pakete pro Sekunde.

Schließlich verlangt der Entwurf eine ganze Reihe offizieller Zuweisungen durch die Internet Assigned Numbers Authority. Die IANA verwaltet weltweit zentrale Nummern- und Adressbereiche des Internets, darunter IP-Versionen, DNS-Recordtypen und spezielle Netzwerkbereiche.

Der Entwurf beantragt zunächst, die Versionsnummer 8 für ein neues Internetprotokoll zu reservieren, obwohl diese Bezeichnung historisch bereits mit PIP verbunden war. Ferner sollen mehrere bekannte IPv4-Adressbereiche für neue Zwecke fest zugewiesen werden: 127.0.0.0/8 als interner Bereich für Zone Server, 100.0.0.0/8 für RINE-Peering und 222.0.0.0/8 für interne Verbindungen.

Zusätzlich fordert der Entwurf einen neuen DNS-Recordtyp mit dem Namen A8, spezielle Reservierungen für ASNs sowie einen eigenen Multicast-Adressbereich. Damit IPv8 funktionieren könnte, müssten zahlreiche zentrale Ressourcen des Internets offiziell neu vergeben und dauerhaft reserviert werden.

Angriff auf das Schichtenmodell

Was der Entwurf als elegante Vereinheitlichung präsentiert, verletzt ein grundlegendes Prinzip des Internets: die Trennung der Protokollschichten. IP arbeitet auf einer sehr niedrigen Ebene und hat im Wesentlichen nur die Aufgabe, Pakete von A nach B zu transportieren.

OAuth2 und JSON Web Tokens gehören dagegen in eine deutlich höhere Schicht, in der sich Anwendungen um Benutzeranmeldung und Zugriffsrechte kümmern. Der IPv8-Entwurf vermischt beide Ebenen und verlangt damit von einfachen Netzwerkgeräten Aufgaben, für die sie weder konzipiert noch ausgelegt sind.

Was IPv8 ignoriert

Bemerkenswert ist nicht nur, was der IPv8-Entwurf vorschlägt, sondern auch, was er komplett ausblendet. Zahlreiche Technologien, die genau die von ihm beschriebenen Probleme bereits heute adressieren, werden mit keinem Wort erwähnt. Dazu gehören moderne Routing-Erweiterungen für IPv6, etablierte Verfahren zur Absicherung von BGP-Routen sowie bewährte Übergangstechniken, mit denen IPv4 und IPv6 seit Jahren parallel betrieben werden.

So ignoriert der Entwurf beispielsweise RPKI und ROA, obwohl diese Mechanismen bereits heute die Herkunft von Routen kryptografisch absichern. Stattdessen entwirft er mit WHOIS8 eine vollkommen neue globale Validierungsinfrastruktur.

Gleiches gilt für NAT64, 464XLAT und andere Techniken, die in Mobilfunknetzen weltweit produktiv eingesetzt werden, um IPv6-only-Infrastrukturen mit IPv4-Diensten zu verbinden.

Selbst grundlegende Bestandteile moderner IPv6-Netze wie SLAAC, Router Advertisements und DHCPv6 werden übergangen und durch neue Eigenentwicklungen wie DHCP8 ersetzt.

Für die Authentifizierung an Switch-Ports schlägt der Entwurf OAuth2 vor, ohne das etablierte Verfahren 802.1X mit EAP-TLS auch nur zu erwähnen. Insgesamt entsteht der Eindruck, dass der Entwurf viele Probleme neu erfindet, ohne bestehende Lösungen oder die Erfahrungen der letzten zwei Jahrzehnte zu berücksichtigen.

Reaktionen

Besonders häufig wird kritisiert, dass der Entwurf bestehende und bereits standardisierte Lösungen ignoriert, gleichzeitig aber eine Vielzahl neuer Protokolle, Dienste und zentraler Kontrollinstanzen einführt.

Viele Kritiker sehen in dem Entwurf daneben ein von Grund auf kontrollorientiertes Protokoll, das sich besonders gut für zentrale Überwachung und Regulierung eignet. Wer den Zone Server, die WHOIS8-Registry oder die zentrale Authentifizierungsinfrastruktur betreibt, erhält letztlich die Kontrolle über das gesamte Netzwerk.

Die versprochene vollständige Rückwärtskompatibilität gilt vielen als nicht glaubwürdig, weil das Paketformat, die Routing-Protokolle und zahlreiche Infrastrukturkomponenten grundlegend verändert werden. Auch die enge Verzahnung von IP mit OAuth2, zentralen Authentifizierungsdiensten und globalen Validierungsinstanzen wird als deutlicher Bruch mit den dezentralen Grundprinzipien des Internets gesehen.

Mehrere Analysen heben hervor, dass der Entwurf reale Probleme wie IPv6-Migrationskosten, BGP-Wachstum und operative Komplexität durchaus korrekt benennt. Die vorgeschlagene Lösung wird jedoch als unverhältnismäßig und praktisch kaum umsetzbar bewertet. Insbesondere die starke Zentralisierung, die Abhängigkeit von neuen kritischen Infrastrukturen und die Vermischung unterschiedlichster Technologien stoßen auf breite Skepsis.

Bemerkenswert ist auch, was ausbleibt. Auf den etablierten Fachforen und Mailinglisten der Internet-Community blieb der Entwurf weitgehend ohne ernsthafte Unterstützung. Prominente Stimmen aus der Routing- und IETF-Welt äußerten sich entweder gar nicht oder nur am Rande. Dieses Schweigen ist in einem Umfeld, in dem tragfähige Ideen normalerweise schnell fachliche Diskussionen auslösen, selbst eine deutliche Form der Einordnung.

Eine kurze Phantomologie

Wer IPv8 sagt, betritt einen Friedhof. Die niedrigen Versionsnummern des Internet Protocols sind seit Jahrzehnten vergeben, verworfen oder Teil der Netzfolklore geworden.

Die Versionen 0 bis 3 stammen aus der Frühzeit des Internets. Sie tauchten in den experimentellen Vorläufern von TCP/IP in den späten 1970er Jahren auf, erreichten aber nie einen produktiven Einsatz. Mit IPv4, spezifiziert in RFC 791 aus dem Jahr 1981, entstand schließlich das Protokoll, das bis heute das Fundament des Internets bildet.

Die Version 5 wurde für ST und ST-II verwendet, ein Streaming-Protokoll mit Reservierungsmechanismen für Echtzeitdaten. IPv6 ging aus Steve Deerings SIPP-Entwurf hervor und wurde Mitte der 1990er Jahre als offizieller Nachfolger von IPv4 standardisiert. IPv7 stand für TP/IX und später CATNIP, zwei alternative Vorschläge, die sich nie durchsetzen konnten.

Besonders relevant für den aktuellen Fall ist die Versionsnummer 8. Sie war bereits in den 1990er Jahren mit PIP von Paul Tsuchiya verbunden, einem der Kandidaten im damaligen Wettbewerb um den IPv4-Nachfolger. Auch wenn diese Zuordnung heute keine praktische Bedeutung mehr hat, ist IPv8 in der Geschichte der IETF keineswegs eine unbeschriebene Zahl.

Die Version 9 ist gleich mehrfach belegt. Dazu gehören TUBA, der berühmte Aprilscherz RFC 1606 und das sogenannte chinesische IPv9, das Anfang der 2000er Jahre als nationale Alternative zu IPv6 propagiert wurde. Selbst IPv10 existiert bereits als individueller Internet-Draft aus dem Jahr 2017, der schlicht argumentierte, dass IPv4 plus IPv6 zusammen eben zehn ergeben.

Thain verwendet damit eine Versionsnummer erneut, ohne auf ihre historische Vorbelegung einzugehen, und behandelt die Version, als stünde sie zur freien Verfügung. Streng genommen ist das nicht falsch: IANA hat die Reservierungen nach dem IPv6-Beschluss bereinigt. Aber die völlige Abwesenheit jeglicher historischen Einordnung im Entwurf ist ein bemerkenswertes Symptom.

Politisch aufgeladen

Dass ein technischer Einzelvorschlag überhaupt derart reflexhaft als zensurfreundlich gelesen wird, hat eine Vorgeschichte. Im September 2019 reichte Huawei, gemeinsam mit China Mobile, China Unicom und dem MIIT, bei der ITU-T einen Vorschlag mit dem Namen New IP ein. Im Rahmen der Focus-Group Network 2030 unter Richard Li präsentierte Huawei variable Adresslängen, semantische Adressen, benutzerdefinierte Header und ein berüchtigtes Shut-up Kommando auf Paketebene.

Die britische Financial Times zitierte anonyme ITU-Delegierte, die von einem enormen Kampf unter der Oberfläche sprachen. Seither ist jeder neue alternative IP-Stack-Vorschlag mit diesem Bezugsrahmen markiert, ob er aus Shenzhen, Shanghai oder eben Bermuda stammt.

Thains Entwurf adressiert keinerlei chinesische Agenda, doch seine zentralen Designentscheidungen wie OAuth2-Authentifizierung pro verwaltbarem Element, WHOIS8-Egress-Validierung jeder ausgehenden Verbindung, Zone-Server als Pflicht-Gateway, NIC-Firmware mit hardwareseitig erzwungenen Paketlimits, treffen exakt die Alarmnerven, die New IP hinterlassen hat.

Die Einschätzung, der Entwurf sei von Grund auf zensurfreundlich, ist kein Zufall, sondern spiegelt die Erfahrungen und Befürchtungen wider, die seit den Debatten um Huaweis New IP die Diskussion über die Zukunft des Internets prägen.

Die späte Pubertät von IPv6

Um sich den Fakten anzunähern, lohnt sich ein Blick auf den Zustand von IPv6 im April 2026. Googles Messung erreichte am 28. März 2026 erstmals einen Tages-Spitzenwert von 50,1 Prozent auf Google-Dienste weltweit; eine Schlagzeile, die mit kaum verhohlener Erleichterung gefeiert wurde. Der Durchschnitt pendelt seither zwischen 45 und 50 Prozent, je nach Wochentag. APNIC Labs misst rund 43 Prozent, Cloudflare etwa 40 Prozent bezogen auf HTTP-Requests.

Zu den Spitzenreitern zählen Frankreich, Indien und Saudi-Arabien; je nach Messmethode liegen sie deutlich über dem weltweiten Durchschnitt, dicht gefolgt von Indien, dessen hohe Werte wesentlich durch Reliance Jios früh eingeführte IPv6-only-Mobilfunknetze geprägt sind, sowie Deutschland.

Die USA überschreiten inzwischen die 50-Prozent-Marke, liegen im internationalen Vergleich jedoch nur im Mittelfeld. China wird im IPv6 Development Report 2025 mit 77 Prozent aktiven IPv6-Nutzern ausgewiesen; der dort genannte IPv6-Anteil am Gesamttraffic liegt jedoch nur bei 34 Prozent. Länder wie Sudan, Turkmenistan und viele Staaten in Afrika und Zentralasien erreichen weiterhin nur sehr geringe IPv6-Anteile von unter fünf Prozent.

Die IPv4-Knappheit hat sich dagegen deutlich entspannt. Große Blöcke ab /16 fielen bis Februar 2026 im Durchschnitt auf knapp unter zehn US-Dollar pro Adresse. Halter werfen Pools auf den Markt, weil sie fallende Preise antizipieren. Das Leasing-Geschäft bleibt stabil bei rund 0,50 US-Dollar pro IP und Monat. AWS berechnet seit Februar 2024 rund 44 Dollar pro Jahr pro öffentlicher IPv4-Adresse. Der wirtschaftliche Druck, auf IPv6 zu migrieren, ist real, aber nicht existenziell.

Geoff Huston von APNIC kommt in einer linearen Fortschreibung der aktuellen Entwicklung zu dem Ergebnis, dass der Übergang zu IPv6 erst gegen Ende des Jahres 2045 abgeschlossen wäre. Zugleich stellt er die Frage, ob das Internet nicht dauerhaft in einer Koexistenz aus IPv4 und IPv6 verharren könnte.

Die IETF-Gremien 6MAN und V6OPS beschäftigen sich mit Wartung, nicht mit Nachfolgern. Forschungsansätze wie SCION oder Named Data Networking haben den Testbed-Status bisher nicht verlassen und ersetzen IP in der Praxis nicht, während QUIC und HTTP/3 Performance-Probleme auf der Transportschicht lösen.

Der IETF-Prozess

Die entscheidende Einordnung, die in vielen Berichten untergeht, ist, dass ein Internet-Draft für sich nahezu keine Bedeutung hat. Jede Person kann einen solchen Entwurf einreichen. Die Prüfung durch das IETF-Sekretariat beschränkt sich im Wesentlichen auf formale Aspekte wie Struktur, vorgeschriebene Standardtexte und offensichtliche Verstöße gegen grundlegende Richtlinien. Anschließend erhält das Dokument einen offiziellen Dateinamen, ist für sechs Monate gültig und wird mit dem üblichen Hinweis versehen:

This I-D is not endorsed by the IETF and has no formal standing in the IETF standards process.

Bis aus einem Internet-Draft ein offizieller RFC wird, ist es ein weiter Weg. Zunächst muss eine zuständige Working Group den Entwurf überhaupt aufgreifen und zu ihrem eigenen Arbeitsdokument machen. Danach folgen meist zahlreiche Überarbeitungen, öffentliche Diskussionsrunden und mehrere formale Prüfungen durch die Führungsgremien der IETF. Erst wenn dabei ein breiter Konsens entsteht und idealerweise bereits mehrere unabhängige Implementierungen existieren, wird das Dokument als RFC veröffentlicht.

Für Einzelentwürfe ohne Unterstützung einer Working Group ist dieser Weg in der Praxis nur selten erfolgreich. Aber es existieren Ausnahmen wie HTTP/1.0, TLS, OAuth 2.0, QUIC und JWT, welche als Individual Drafts starteten, bevor sie in Working Groups überführt wurden.

Sie brachten jedoch von Anfang an funktionierende Implementierungen, konkrete Einsatzszenarien und starke Unterstützung aus der Industrie und der Community mit. Fehlt eine solche technische und organisatorische Basis, verschwinden die meisten Vorschläge nach kurzer Zeit wieder, ohne jemals den Status eines Standards zu erreichen.

Fazit

Der Fall IPv8 zeigt in erster Linie, dass das IETF-System bewusst offen gestaltet ist. Diese Offenheit ist eine Stärke, bringt aber zwangsläufig auch Vorschläge hervor, die nie eine realistische Chance auf Standardisierung haben.

Der Entwurf ist kein realistischer Nachfolger für IPv6, sondern ein technisch fragwürdiger Alleingang. Er benennt zutreffend die schleppende IPv6-Migration, das Wachstum der BGP-Tabelle und die betriebliche Komplexität moderner Netze. Die Antwort darauf ist jedoch ein noch komplexerer Protokoll-Stack.

Die versprochene vollständige Rückwärtskompatibilität hält einer technischen Prüfung nicht stand. Bestehende Systeme werden Pakete mit der Versionsnummer 8 in aller Regel schlicht verwerfen. Wer IPv6 aus Kosten- und Trägheitsgründen bisher nicht eingeführt hat, wird einen noch aufwendigeren Nachfolger erst recht nicht ausrollen.

Dass der Entwurf dennoch für Aufmerksamkeit sorgt, liegt weniger an seiner technischen Substanz als an seinem Namen und am Zeitgeist. Die eigentliche Konsequenz ist unspektakulär, aber naheliegend: die konsequente Weiterverbreitung von IPv6.

Dieser Artikel erschien ursprünglich auf Golem.de und ist hier in einer alternativen Variante zu finden.

Paketmanager – Software-Installation und Aktualisierung

Paketmanager haben den Prozess der Software-Installation und Aktualisierung vereinfacht und viele Probleme der Vergangenheit gelöst. Heute sind sie ein integraler Bestandteil vieler Systeme. Während der durchschnittliche Windows-Nutzer wahrscheinlich weniger mit der Begrifflichkeit eines Paketmanagers anfangen kann, sieht es bei Nutzern unixoider Systeme meist anders aus.

Vor allem bei Linux-Systemen sind sie ein essenzieller Bestandteil der allermeisten Distributionen und kommen hier in den unterschiedlichsten Formen vor. Mittlerweile haben sie sich allerdings darüber hinaus ausgebreitet und sind heute auch unter macOS und Windows zu finden.

Über diese Grenzen hinaus haben sich Paketmanager auch in anderen Bereichen etabliert hat, beispielsweise im Paket- und Abhängigkeitsmanagement innerhalb der Softwareentwicklung.

Unabhängig vom spezifischen Paketmanager folgen diese in der Regel einem ähnlichen Ablauf: Ein Nutzer beabsichtigt, eine Anwendung bzw. ein Paket zu installieren. Der Paketmanager identifiziert die erforderlichen Abhängigkeiten und installiert diese zusammen mit der gewünschten Software.

Definition

Doch was zeichnet einen Paketmanager aus? Grundsätzlich handelt es sich bei einem solchen um ein Werkzeug oder eine Sammlung an Werkzeugen, die dazu dient Software zu installieren, sie zu aktualisieren und wieder zu entfernen. Im Idealfall ist diese Entfernung rückstandslos. Auch die Konfiguration der Software ist eine Fähigkeit, welche von vielen Paketmanagementsystemen beherrscht wird.

Ziel ist es meist, die manuelle Installation und Verwaltung von Software unnötig zu machen, sodass diese im Idealfall immer über den Paketmanager bezogen werden kann.

Neben der eigentlichen Bereitstellung der gewünschten Software, ist ein wichtiger Teil des Paketmanagements die Installation und Verwaltung der Abhängigkeiten, welche von der Software benötigt werden. Dies umfasst beispielsweise die Handhabung verschiedener Versionen von Bibliotheken, die erforderlich sind, wenn mehrere installierte Anwendungen unterschiedliche Versionen einer Bibliothek benötigen.

Ein Paket umfasst in solchen Systemen, neben der eigentlichen Anwendung, eine Reihe von zusätzlichen Metadaten, welche als Informationen über das Paket und der Verwaltung dienen.

Daneben führen die Systeme Buch über installierte Software, was z. B. bei der Aktualisierung installierter Anwendungen von Belang ist.

Typen von Paketmanagern

Paketmanager lassen sich in verschiedene Typen einteilen. Einerseits existieren systemgebundene Paketmanager wie das Advanced Packaging Tool (APT), die integraler Bestandteil des jeweiligen Betriebssystems sind und eine konfliktfreie Installation von Anwendungen gewährleisten.

Ziel dieser Paketmanager ist die Softwareverwaltung für den Nutzer des Systems. Auch ist es bei diesen systemspezifischen Paketmanagern in den meisten Fällen so, dass Abhängigkeiten wie Bibliotheken im Idealfall nur einmal installiert werden.

Eine weitere Art von Paketmanagementsystemen sind App Stores. Hier steht jede Applikation für sich und wird mitsamt ihrer Abhängigkeiten installiert. Das bedeutet, dass z. B. Bibliotheken immer wieder mitgeliefert werden. Hier wird in der Theorie Speicherplatz verschenkt, da häufig verwendete Bibliotheken mehrfach vorhanden sein können.

Eine letzte und trotzdem in ihrer Wichtigkeit nicht zu unterschätzende Kategorie von Paketmanagern sind sprachspezifische Paketmanager. Bei diesen geht es um das Paket- und Abhängigkeitsmanagement von Bibliotheken im Rahmen der Softwareentwicklung. Beispiele für diese Manager sind Maven, Cargo und NPM. Sie werden vor allem in den vergangenen Jahren verstärkt eingesetzt. Einen Überblick über diese sprachspezifischen Paketmanager bietet die Webseite libraries.io.

Am Anfang war der Code

In frühen Systemen existierten keine Paketmanager im heutigen Sinne. Entweder wurden die mitgelieferten Systemwerkzeuge genutzt, oder die benötigte Software lag im Quelltext vor und wurde anschließend kompiliert und installiert.

Eine Applikation wird kompiliert

Im Laufe der Zeit wurden nicht nur die Systeme komplexer, sondern auch die auf ihr genutzten Anwendungen. Mithilfe von Build Automation Tools wie Make, wurde es möglich Software anhand des sogenannten Makefiles zu bauen. Allerdings wurde auch hier vorausgesetzt, dass die benötigten Abhängigkeiten auf dem System vorhanden waren.

Über den Befehl make kann der entsprechende Vorgang angestoßen werden. Damit vereinfachten Makefiles die Erzeugung der Software. Statt den Compiler, dazugehörige Linker und weitere Werkzeuge selbst aufrufen zu müssen, fungiert das Makefile als Mittler.

Abhängigkeiten

Im ersten Moment scheint es, als ob die Installation der Software aus dem Quelltext leicht von der Hand geht. Der Quelltext muss bezogen werden und anschließend kann die Applikation kompiliert und installiert werden.

Allerdings steht ein Programm meist nicht für sich, sondern ist auf gewisse Abhängigkeiten, wie verwendete Bibliotheken angewiesen. Sind diese Abhängigkeiten in einer falschen Version installiert, oder nicht vorhanden, schlägt die Erstellung der Applikation fehl.

Ein weiteres Problem ist, dass unixoide Systeme nicht unbedingt identisch sind und sich in kleineren und größeren Feinheiten unterschieden. Eine Lösung für diese Probleme bieten Werkzeuge wie autoconf vom GNU-Projekt und später CMake.

Über diese Build-Automatisierungstools wird das benötigte Makefile generiert, welches dann auf die Eigenheiten des eigentlichen Systems angepasst ist. So wird unter anderem überprüft, ob die benötigten Abhängigkeiten vorhanden sind und unter Umständen abgebrochen, wenn dies nicht der Fall ist.

Bislang nicht betrachtet wurde die Deinstallation einer Anwendung. Neben den eigentlichen Anwendungsdateien, eventuellen Bibliotheken und Konfigurationsdateien können hierzu auch Dateien zählen, welche während der Laufzeit der Anwendung erzeugt wurden.

Diese von Hand zu entfernen, ist im besten Fall ein zeitaufwendiger Prozess. Spätestens an dieser Stelle erweist sich ein funktionierendes Paketmanagementsystem als Segen.

Quell- vs. Binärpakete

Bei dem oben beschriebenen Verfahren wurde die Software direkt auf dem System kompiliert. Dies hat einige Vorteile. So kann die jeweilige Software mit entsprechender CPU-Optimierung kompiliert werden und somit optimal auf das System abgestimmt werden. Allerdings nimmt ein solcher Vorgang Zeit in Anspruch, vorwiegend bei der Kompilierung größerer Softwarepakete wie einem Browser.

Bei Paketmanagern wird hier die Unterscheidung zwischen Quell- und Binärpaketen getroffen. Quellpakete enthalten den Quellcode der Anwendung und werden direkt auf dem Rechner des Nutzers kompiliert.

Binärpakete hingegen enthalten eine vorkompilierte Anwendung, welche auf eine bestimmte Architektur optimiert ist. Damit muss das Paket nur noch vom Paketmanager heruntergeladen, entpackt und installiert werden. Neben der fehlenden Optimierung auf den konkreten CPU-Typ haben Binärpakete weitere Nachteile. Viele Anwendungen verfügen über bestimmte Schalter zu Compile-Zeit, um bestimmte Module und Funktionalitäten in die Anwendung zu integrieren. Ist dies während der Erstellung des Binärpaketes nicht geschehen, so kann das Modul bzw. die gewünschte Funktionalität nicht ohne Weiteres genutzt werden.

Anfänge der Paketmanager

Mit der Idee der Paketierung war der Gedanke zu einem Paketmanager nicht mehr weit. Auch wenn solche Manager unter Linux gängig wurden, gab es sie in Ansätzen bereits davor.

Einer der ersten Paketmanager war das System Management Interface Tool (SMIT) für AIX, welches mit der Version 3.0 von AIX im Jahr 1989 Einzug hielt. Unter der Oberfläche wurde für diese Aufgabe installp als Backend genutzt.

Im Linux-Bereich zählte das package management system (pms) zu den ersten Paketmanagern. Dieses erschien in Version 1.0 Mitte des Jahres 1994. Genutzt wurde dieses in der Distribution Bogus Linux. Dies führte historisch betrachtet unter anderem zum RPM-Paketmanager, welcher ursprünglich von Red Hat stammt und 1995 mit Red Hat Linux 2.0 ausgeliefert wurde.

In einen ähnlichen Zeitrahmen fallen die Entwicklung des Debian Package Managers, der vom StopAlop, einem weiteren Paketmanager aus der Frühzeit der Paketmanager, inspiriert wurde.

Die erste Version des Debian Package Managers wurde 1994 von Ian Murdock entwickelt, damals noch in Form eines Shellskriptes. Aus diesem entstand im Laufe der Jahre das dpkg der Neuzeit.

Aus diesen Low-Level-Paketmanagern entwickelten sich schließlich Systeme, welche Repositorys der verfügbaren Software bereithielten und diese zur Installation derselben nutzten, sodass auch das Problem der Paketbeschaffung bzw. der eigenen Paketierung in den meisten Fällen gelöst war.

Im Jahr 1995 begannen viele Paketmanager mit der Implementierung eines Workflows, der mit dem Herunterladen des Pakets beginnt und die automatische Auflösung sowie Installation von Abhängigkeiten beinhaltet.

Neben eigentlichen Applikationen wurden Systempaketmanager auch genutzt, um Bibliotheken und andere Funktionalität bestimmter Programmiersprachen wie Python über diese zu installieren. Heutzutage wird dies mehrheitlich über sprachspezifische Paketmanager gelöst.

Low-Level- und High-Level-Paketmanager

Werkzeuge wie dpkg, zählen wie oben bereits erwähnt zu den Low-Level-Paketmanagern. Zwar vereinfachen sie die Installation von Paketen, aber aus Sicht des Nutzers, sind immer noch viele manuelle Schritte notwendig, um das System auf einem aktuellen Stand zu halten.

Low-Level-Paketmanager samt Herkunft und High-Level-Paketmanager

Hier kommen High-Level-Paketmanager ins Spiel. Diese vereinfachen die Bedienung und dienen sozusagen als Frontend für den eigentlichen Nutzer. Daneben gruppieren sie Operationen der zugrundeliegenden Low-Level-Paketmanager.

Neben dem traditionellen Weg, Software als Archiv auszuliefern, wurde mit den Paketmanagern für die jeweiligen Distributionen ein zentrales Repository mit Software geschaffen, welches von der jeweiligen Distribution gepflegt wurde.

Interessant an diesem zentralen Repositorys ist, dass die Software, welche in diesen vorliegt, technisch betrachtet ein Fork der Originale ist. Der Vorteil dieser Vorgehensweise ist die Entkopplung, sodass eine Distribution eigene Aktualisierungen für eine Anwendung bereitstellen kann. Dies gilt auch für den Fall, dass die Software nicht mehr aktiv unterstützt wird.

Auch wenn von einem zentralen Repository die Rede ist, sieht es in den eigentlichen Distributionen meist etwas differenzierter aus. Unter Ubuntu z. B. existieren die Repositories Main, Universe, Restricted und Multiverse.

Das Main-Repository umfasst von Canonical unterstützte freie Software, die als grundlegend und essenziell für das System angesehen wird. Das Universe-Repository wird von der Community gepflegt und enthält ebenfalls freie Software, die von Nutzern beigetragen und verwaltet wird.

Im Restricted-Repository finden sich proprietäre Treiber für Geräte, die aus lizenzrechtlichen Gründen nicht im Main-Repository enthalten sind. Schließlich existiert noch das Multiverse-Repository, das Software beinhaltet, die durch Urheberrecht oder andere rechtliche Fragen eingeschränkt ist und deshalb spezielle Vereinbarungen für die Nutzung oder Verbreitung erfordert.

Daneben liegen für die unterschiedlichen Repositorys verschiedene Spiegelserver vor, welche die Pakete redundant und geografisch verteilt vorhalten.

Auch Abhängigkeiten werden von High-Level-Paketmanagern wesentlich sinnvoller behandelt. Während eine Paketinstallation per dpkg verlangt, dass alle Abhängigkeiten installiert sind, übernimmt apt diese Aufgabe automatisch. Hierbei werden die Abhängigkeiten in die korrekte Reihenfolge gebracht, bezogen und anschließend installiert.

Durch die zentralen Repositorys ist es über wenige Befehle möglich, den kompletten Softwarebestand zu aktualisieren. Auch der Wegfall von Abhängigkeiten wird bemerkt und so werden nicht mehr benötigte Pakete auf Wunsch automatisch deinstalliert.

Anatomie eines Paketmanagmentsystems

Einige Eigenschaften, welche ein Paket ausmachen, wurden bereits beschrieben. Trotzdem soll an dieser Stelle genauer auf die Anatomie eines Pakets und des Managementsystems dahinter eingegangen werden. Hierbei wird dpkg als Beispiel herangezogen.

Der Debian Package Manager ist dafür verantwortlich, ein Paket zu installieren und wieder zu deinstallieren. Hierzu wird die DEB-Datei, welche das Paket darstellt, im ersten Schritt entpackt und anschließend ein Pre-Install-Skript ausgeführt.

Nach dessen Ausführung werden die Komponenten des Paketes an die korrekten Stellen im Dateisystem kopiert und anschließend das Post-Install-Skript ausgeführt. Bei der Deinstallation läuft dieser Vorgang ähnlich ab. Auch hier werden wieder Pre– und Post-Remove-Skripte durchgeführt. Daneben verwaltet dpkg eine Datenbank der installierten Pakete.

Im Einzelnen besteht ein DEB-Paket aus dem sogenannten Debian-Binary. In dieser Datei ist die Version des Dateiformates hinterlegt. Dies sollte bei aktuellen Distributionen immer 2.0 sein. Trotz ihres Namens handelt es sich um eine gewöhnliche Textdatei.

Ein entpacktes DEB-Archiv mit dem control-Ordner

Anschließend folgen zwei Archive, eines für die Meta-Informationen und eines für die eigentlichen Daten. Bei den Archiven werden zwei unterschiedliche Archivierungsverfahren unterstützt. So kann im Falle des control-Archivs das Archiv als control.tar.gz oder control.tar.xz vorliegen.

Das control-Archiv enthält mehrere wichtige Dateien. Die erste Datei ist die Datei control. Diese enthält Informationen über das Paket wie Paketname, Version, Abhängigkeiten, Konflikte, Beschreibung und mehr.

Für das Paket nginx-common sieht diese Datei beispielhaft wie folgt aus:

Package: nginx-common
Source: nginx
Version: 1.24.0-2
Architecture: all
Maintainer: Debian Nginx Maintainers 
Installed-Size: 306
Depends: debconf (>= 0.5) | debconf-2.0, nginx (>= 1.24.0-2), nginx (<< 1.24.0-2.1~)
Suggests: fcgiwrap, nginx-doc, ssl-cert
Breaks: nginx (<< 1.22.1-8)
Replaces: nginx (<< 1.22.1-8)
Section: httpd
Priority: optional
Multi-Arch: foreign
Homepage: https://nginx.org
Description: small, powerful, scalable web/proxy server - common files
 Nginx ("engine X") is a high-performance web and reverse proxy server
 created by Igor Sysoev. It can be used both as a standalone web server
 and as a proxy to reduce the load on back-end HTTP or mail servers.
 .
 This package contains base configuration files used by all versions of
 nginx.

Daneben sind die entsprechenden Pre- und Postskripte enthalten (preinst, postinst, prerm, postrm). Diese Skripte werden verwendet, um spezielle Aufgaben auszuführen, die für das Paket notwendig sind, wie das Konfigurieren von Systemdiensten oder das Aktualisieren von Konfigurationsdateien.

Die Datei conffiles enthält eine Liste von Konfigurationsdateien, die vom Paketmanagementsystem während einer Aktualisierung behandelt werden, um benutzerdefinierte Änderungen zu erhalten.

Über die Datei md5sums, eine Liste von MD5-Prüfsummen für die Dateien, die im Paket enthalten sind, kann die Integrität dieser überprüft werden.

Der entpackte data-Ordner in einem DEB-Archiv

Die eigentlichen Daten des DEB-Archives finden sich im data-Archiv (data.tar.gz oder data.tar.xz). Dieses Archiv enthält die Dateien, die zum System hinzugefügt werden, wenn das Paket installiert wird. Die Dateien in diesem Archiv werden relativ zum Wurzelverzeichnis des Ziel-Dateisystems extrahiert.

Paketdatenbank

Neben den eigentlichen Paketen nimmt die Paketdatenbank einen großen Stellenwert ein. Die Paketdatenbank von Debian und darauf basierenden Distributionen wird von dpkg verwaltet und speichert Informationen über alle installierten, gelöschten oder sonst wie bekannten Pakete auf dem System. Die Datenbank befindet sich im Verzeichnis /var/lib/dpkg/ und besteht aus mehreren Dateien und Verzeichnissen, die verschiedene Aspekte der Paketverwaltung abdecken.

Die Datei /var/lib/dpkg/status enthält den aktuellen Status aller Pakete. Sie listet Pakete auf, die installiert sind, deren Installation erwartet wird, die zur Deinstallation oder vollständigen Entfernung markiert sind, und so weiter. Für jedes Paket enthält diese Datei Metadaten wie Version, Architektur, Abhängigkeiten, Beschreibung und vieles mehr.

Die Paketdatenbank des Debian Package Managers

Die Datei /var/lib/dpkg/available enthält Informationen über verfügbare Pakete, aus den Repositorys. Diese Datei wird z. B. durch den Befehl apt update aktualisiert.

Das Verzeichnis /var/lib/dpkg/info/ enthält spezifische Dateien für jedes Paket, wie Konfigurationsskripte. Diese Dateien werden von dpkg während der Installation und Deinstallation verwendet, um sicherzustellen, dass diese Prozesse korrekt durchgeführt werden.

Die Paketdatenbank wird von dpkg und anderen Frontends wie APT, Aptitude oder Synaptic verwendet, um Paketoperationen durchzuführen. Es ist wichtig, dass diese Datenbank konsistent und unbeschädigt bleibt, da Inkonsistenzen zu Problemen bei der Paketverwaltung führen können.

Die Konsistenz der Paketdatenbank in Debian-basierten Systemen wird durch eine Kombination aus Designentscheidungen, Dateisystemtransaktionen und Sperrmechanismen sichergestellt.

Welche Version darf es sein?

Eine Paketverwaltung im Distributionsumfeld, kann trotz ihrer Vorteile, einige Herausforderungen mit sich bringen. Je nach der Politik der gewählten Distribution kann es sein, dass nur bestimmte und unter Umständen veraltete Versionen gepflegt werden. Dies ist z. B. bei Debian Stable der Fall, während bei anderen Distributionen wie bei Arch Linux immer die neusten Anwendungen, dank des Rolling Releases-Prozesses, mitgeliefert werden.

Die Nutzung eines Paketmanagers kann dazu führen, dass Nutzer weniger Kontrolle über spezifische Konfigurationen der installierten Software haben, da viele Einstellungen bereits festgelegt wurden.

Die Sicherheit hängt zudem von der Vertrauenswürdigkeit der Softwarequellen, den sogenannten Repositorys, ab. Eine Kompromittierung eines Repositorys kann die Verbreitung schädlicher Software begünstigen. Trotz verschiedener Sicherheitsmaßnahmen kann ein solches Risiko nicht gänzlich ausgeschlossen werden.

Paketmanager je Betriebssystem

Neben der grauen Theorie werden Paketmanager natürlich auch genutzt. Hierfür stehen je nach Betriebssystem unterschiedlichste Paketmanager zur Verfügung, von deinen einige nachfolgend vorgestellt werden sollen.

Linux

Unter Linux existieren eine Vielzahl an Paketmanagern. Zu den häufigeren verwendeten gehört sicherlich dpkg mitsamt seiner Frontends, wie APT. Auf Debian basierende Distributionen wie Ubuntu nutzten dieses System ebenfalls.

Ein weiterer bekannter Paketmanager ist RPM, welcher unter anderem bei Red Hat Linux zum Tragen kommt. RPM steht hierbei für RPM Package Manager, welcher ursprünglich als Red Hat Package Manager bezeichnet wurde.

Im Laufe der Zeit wurde der RPM Package Manager weiterentwickelt und verbessert. Das RPM-Format selbst wurde standardisiert, und es wurden Werkzeuge wie YUM (Yellowdog Updater, Modified) und später DNF (Dandified Yum) entwickelt, die als Frontends für RPM dienen und zusätzliche Funktionen wie einfachere Abhängigkeitsauflösung und automatische Updates bieten.

Daneben existieren weitere Paketmanagementsysteme wie Pacman unter Arch Linux. Üblicherweise ist das Paketverwaltungssystem eines der Systeme, die näher betrachtet werden, wenn sich intensiver mit einer Distribution auseinandersetzt wird.

Neben diesen gewöhnlichen Paketmanagern gibt es auch neue Konzepte, wie Nix und NixOS, welche deklarative Ansätze für die Paketverwaltung nutzen.

Snap, Flatpak und Co.

In der Linux-Welt sind zusätzlich zu den Systempaketmanagern weitere Paketformate entstanden, die darauf abzielen, Softwarepakete unabhängiger von den einzelnen Distributionen zu gestalten.

Unter Ubuntu ist das Snap-Format stark vertreten, bei anderen Distributionen hingegen Flatpack. Snap und Flatpak sind moderne Paketmanagement- und Bereitstellungssysteme, die das Ziel haben, die Installation und Verwaltung von Software auf Linux-Systemen zu vereinfachen und zu vereinheitlichen. Sie ergänzen traditionelle Paketmanager wie APT und bieten einige Vorteile.

Snap ist ein Paketformat, das von Canonical entwickelt wurde. Snap-Pakete sind in sich geschlossene Softwarepakete, die alle notwendigen Abhängigkeiten enthalten, um auf einer Vielzahl von Linux-Distributionen zu laufen. Das Snap-System verwendet ein zentrales Repository namens Snap Store, in dem der Nutzer Software suchen und installieren kann.

Snaps sind in der Regel größer als traditionelle Pakete, da sie alle Abhängigkeiten enthalten, bieten dafür aber andere Vorteile. So laufen Snaps in einer Sandbox-Umgebung, die die Sicherheit erhöht, indem sie den Zugriff der Anwendung auf das System beschränkt.

Durch den Dienst snapd, werden Snaps automatisch aktualisiert, was die Wartung vereinfacht. Aus Entwicklersicht können Anwendungen leichter veröffentlicht und aktualisiert werden, da nicht diese nicht auf die Paketverwaltung der einzelnen Distributionen angewiesen sind.

Flatpak ist ein ähnliches System, entwickelt von der unabhängigen Community. Es zielt ebenfalls darauf ab, distributionsübergreifend Software bereitzustellen und verwendet für die Verteilung von Softwarepaketen sogenannte Remotes wie Flathub. Flatpaks können auf einer Vielzahl von Linux-Distributionen laufen. Ähnlich wie Snaps bieten Flatpaks eine Sandbox-Umgebung, die die Sicherheit verbessern soll.

Beide Systeme, Snap und Flatpak, tragen in der Theorie dazu bei, die Fragmentierung im Linux-Ökosystem zu verringern und die Softwareverteilung zu vereinfachen. Sie bieten eine Plattform für Entwickler, um ihre Anwendungen einem breiteren Publikum zur Verfügung zu stellen. Der Nutzer kann über diese Systeme Anwendungen unabhängig von der spezifischen Linux-Distribution installieren.

AppImage ist ein weiteres Format für portable Softwarepakete unter Linux. Im Gegensatz zu Snap und Flatpak wird bei AppImages keine Installation durchgeführt. Stattdessen sind AppImages eigenständige ausführbare Dateien, die alle Abhängigkeiten enthalten und direkt ausgeführt werden können.

macOS

Unter macOS existieren neben dem integrierten App Store, welcher 2011 eingeführt wurde, weitere Paketmanager, bei denen es sich um Community-Projekte handelt.

Der App Store unter macOS

Der App Store selbst ist im Gegensatz zu seinem iOS-Pendant nicht verpflichtend zu nutzen. Auch wenn unsignierte Software mittlerweile nur nach einigen Warnmeldungen gestartet werden kann.

Bei den Community-Projekten stechen die Werkzeuge MacPorts und Homebrew hervor. MacPorts, früher unter dem Namen DarwinPorts bekannt, ist seit 2002 verfügbar und liegt mittlerweile in Version 2.8.1 vor.

MacPorts ist darauf ausgelegt, für jeden Port alle Abhängigkeiten selbst aus dem Quelltext zu kompilieren und zu verwalten. Dies führt zu einer größeren Isolation und Konsistenz, kann aber auch die Nutzung von mehr Speicherplatz und längere Installationszeiten bedeuten.

Der Paketmanager Homebrew wurde 2009 von Max Howell entwickelt. Homebrew versucht, wo möglich, vorhandene Systembibliotheken zu nutzen und installiert nur Abhängigkeiten die darüber hinaus benötigt werden. Dies kann zu schnelleren Installationen führen, birgt aber auch das Risiko eines Konfliktes mit Systembibliotheken.

Homebrew wird oft als benutzerfreundlicher wahrgenommen, mit einfacheren Befehlen und einer einfacheren Installation. Daneben verfügt es über eine breite Unterstützung für Binärpakete, die auf eine schnelle Installation abzielen und das Softwareangebot erweitern.

Die Anwendung der jeweiligen Paketmanager bleibt hierbei dem Nutzer überlassen, je nach dem gewünschten Anwendungszweck. So benötigt MacPorts Administratorrechte, während Homebrew in den meisten Fällen ohne solche auskommt. Genutzt werden beide Paketmanager über das Terminal.

Windows

An Windows ist der Erfolg der Paketmanager ebenfalls nicht vorbeigegangen. So wurde schon seit Windows Vista die Applikation Pkgmgr.exe mitgeliefert. Dabei handelte es sich um einen Paketmanager zur Installation und Deinstallation von Paketen.

Allerdings war dieser Paketmanager nicht für den Nutzer des Systems gedacht. Stattdessen diente er dazu, Komponenten des Betriebssystems zu installieren. Später wurde dieses System insbesondere durch DISM (Deployment Image Servicing and Management) abgelöst.

Neben dem Microsoft Store, welcher als App Store fungiert, existieren auch für Windows eine Reihe von Community getriebenen Paketmanagern. Hier wären unter anderem Chocolatey und Scoop zu nennen. Microsoft hat mit dem Windows Package Manager (winget) ebenfalls einen solchen Paketmanager vorgestellt. Eine detaillierte Betrachtung dieser Paketmanager findet sich auf Golem.de.

Daneben existieren auch Client-Managment-Plattformen, wie ACMP, welche für die Nutzer die Softwareinstallation aus einem Katalog ermöglichen und meist im geschäftlichen Umfeld zu finden sind.

Mobile Systeme

Während Systeme wie die PDAs von Palm überwiegend von Hand mit Apps bestückt wurden, sah dies bei den großen mobilen Systemen der Neuzeit, namentlich Android und iOS anders aus. Hier gab es bereits zu Beginn entsprechende
App Stores.

Google Play

Unter Android war dies der Android Market, welcher schließlich in Google Play aufging, unter iOS der App Store, welcher mit der Version iOS 2 (iPhone OS 2.0) seinen ersten Auftritt hatte.

Software kann über diese App Stores installiert, aktualisiert und deinstalliert werden. Im Unterschied zu reinen Paketmanagement-Lösungen bieten diese App Stores zusätzliche Dienste. Sie wickeln unter anderem Zahlungen ab, was sowohl In-App-Käufe als auch Abonnements einschließt.

Im Android-Bereich existieren daneben weitere alternative App Stores, wie der F-Droid App Store, welcher auf freie Software spezialisiert ist. Unter iOS ist dies bislang nicht ohne Jailbreak möglich. Dies soll sich allerdings durch den Digital Markets Act in der EU ändern.

Auch andere mobile Ökosysteme nutzen ihre jeweiligen App Stores wie Amazon, Samsung und Huawei.

Fazit

Ian Murdock, einer der Mitbegründer des Debian-Projektes, nannte Paketmanager einmal den größten einzelnen Fortschritt, welchen Linux der Industrie bescherte.

Sie erleichtern die Handhabung von Abhängigkeiten und Kompatibilitätsproblemen, die sonst für den Nutzer eine Herausforderung darstellen könnten. Mit dieser Idee haben sie viele Domänen erobert.

So begegnet uns das Konzept der Paketierung immer wieder, z. B. bei Docker-Containern. Auch bei neuen Programmiersprachen, wie Rust, wird das Paketmanagement gleich mitgedacht.

Paketmanager nehmen eine wichtige Rolle ein, indem sie die Installation, Aktualisierung und Entfernung von Softwarepaketen auf effiziente und benutzerfreundliche Weise ermöglichen und uns so auch in Zukunft begleiten werden.

In Zukunft wird auch verstärkt der Fokus auf unveränderliche Systeme und containerisierte Anwendungen gerichtet sein. Dieser Ansatz hat in jüngster Zeit mit Technologien wie Podman und Co. den Weg zurück auf den Desktop gefunden und spiegelt die wachsende Präferenz für isolierte, konsistente und portable Anwendungsumgebungen wider.

Dieser Artikel erschien ursprünglich auf Golem.de und ist hier in einer alternativen Variante zu finden.

Huawei E176 Surfstick unter Mac OS X nutzen

Möchte man einen Surfstick unter Mac OS X nutzen, so hat man meist das Problem das dieser nicht ohne Probleme funktioniert. So auch beim Surfstick Huawei E176. Damit dieser ordnungsgemäß funktioniert, muss im ersten Schritt die SIM-Karte so eingestellt werden, das sie ohne PIN auskommt – ansonsten kann der Surfstick die SIM-Karte nicht nutzen.

Ohne Treiber funktioniert der Stick nicht

Ohne Treiber funktioniert der Stick nicht

Nachdem die SIM-Karte entsprechend konfiguriert wurde, muss im nächsten Schritt der passende Treiber installiert werden. Von Huawei gibt es für die Surfsticks eine Software mit dem Namen Mobile Partner. In dieser Software ist ein entsprechender Treiber enthalten. Nachdem der Treiber installiert wurde können die Netzwerkeinstellungen unter Mac OS X geöffnet werden.

Die Netzwerkeinstellungen unter Mac OS X

Die Netzwerkeinstellungen unter Mac OS X

In diesen Einstellungen wird das HUAWEIMobile-Modem ausgewählt und bei der Telefonnummer *99# eingetragen. Anschließend kann der Verbinden-Button gedrückt werden und die Verbindung zum Internet wird hergestellt.