2.10. Veröffentlichungen

Debian GNU/Linux wird in verschiedenen Veröffentlichungen angeboten, die jeweils als „Releases“ bezeichnet werden. Eine solche Veröffentlichung kann wie folgt referenziert werden:

Welche Veröffentlichung Sie auf ihrem System verwenden, entnehmen Sie der Datei /etc/debian_version wie folgt:

Die genutzte Debian-Version anzeigen. 

$ cat /etc/debian_version
9.6
$

Ausführlichere Informationen erhalten Sie mit Hilfe des Kommandos lsb_release -a (Langform --all) aus dem Debianpaket lsb-release [Debian-Paket-lsb-release]:

Ausführliche Informationen zur genutzen Debian-Version mit Hilfe von lsb_release anzeigen. 

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.6 (stretch)
Release:        9.6
Codename:       stretch
$

Alternativen dazu sind bspw. linuxinfo, inxi und sosreport aus den gleichnamigen Paketen. Mögen Sie es bunt, ist neofetch [Debian-Paket-neofetch] vielleicht das richtige Werkzeug für Sie.

Abbildung 2.8. neofetch im Einsatz auf Debian 11 Bullseye

konzepte/software-in-paketen-organisieren/neofetch.png

2.10.1. Bedeutung der verschiedenen Entwicklungsstände

Jedes aktuelle Debian-Paket gehört zu mindestens einem der nachfolgend beschriebenen Entwicklungsstände:

unstable
Hier findet die aktive Entwicklung von Debian statt. Neue Pakete und Versionen landen fast immer zuerst hier. Dieser Entwicklungszustand kann inkonsistent sein und beispielsweise unerfüllte Abhängigkeiten beinhalten. Er ist primär für Entwickler gedacht.
testing
Pakete, die in unstable für eine gewisse Zeit keine schwerwiegenden Fehler aufweisen und deren Abhängigkeiten bereits ebenfalls in testing erfüllt werden können, wandern automatisch von unstable hierher. Dieser Entwicklungsstand sollte konsistent sein und alle Paketabhängigkeiten erfüllt sein.
stable
Das ist die jeweils aktuelle stabile Veröffentlichung. Dieser Entwicklungsstand ist für die normale Nutzung von Debian empfohlen. Eine neue stabile Veröffentlichung wird ca. alle zwei Jahre auf Basis von testing erstellt. Pakete werden nur aktualisiert, um sicherheitskritische oder sonstige schwerwiegende Fehler zu beheben. Dabei werden (mit sehr wenigen Ausnahmen) ausschließlich die entsprechenden Fehler durch Patches behoben, anstatt neuere Versionen der Programme auszuliefern.
oldstable
Das ist die jeweils vorherige stabile Veröffentlichung. Bevor eine neue stabile Veröffentlichung freigegeben wird, erfolgt eine Umbenennung der aktuellen stabilen Veröffentlichung in oldstable. Diese wird von da an im Normalfall noch für ein Jahr weiter gepflegt und mit Sicherheitsaktualisierungen versehen.
oldoldstable
Wenn vorhanden, ist dies die jeweils vorvorherige stabile Veröffentlichung. Zum ersten Mal trat dieser Entwicklungsstand auf, als im Frühjahr 2015 Debian 8 Jessie zur stabilen Veröffentlichung erklärt wurde. Gleichzeitig wurde Debian 6 Squeeze zur neuen Suite oldoldstable und wurde seitdem per Long Term Support (LTS) weiterhin noch für 5 Jahre eingeschränkt unterstützt.
experimental
Dies ist der einzige Entwicklungsstand, der keine alleinstehende Veröffentlichung ist, sondern nur ein Zusatz-Repository. Es fungiert als Erweiterung zu unstable und beinhaltet Pakete, bei denen der Paketbetreuer davon ausgeht, dass sie noch und ggf. sogar grobe Fehler beinhalten. experimental wird genutzt, um Pakete im größeren Umfeld zu testen, bevor diese nach unstable hochgeladen werden.

Darüberhinaus existiert der Paketbereich backports. Das beinhaltet Rückportierungen neuerer oder aktualisierter Pakete aus dem Entwicklungszweig testing nach stable, teilweise auch aus unstable. Das ist spannend, aber auch mit gewissen Risiken verbunden. Im Detail gehen wir darauf unter „Debian Backports“ in Kapitel 19, Backports ein.

2.10.2. Alias-Namen

Jede Veröffentlichung von Debian GNU/Linux hat einen Alias-Namen, der nach einer Figur aus Pixars Filmreihe Toy Story benannt ist. Bruce Perens — der Projektleiter für die Version 1.x — arbeitete zu dieser Zeit bei Pixar [Pixar] und legte das bis heute genutzte Namenschema fest. Für die bisherigen Veröffentlichungen von Debian standen die folgenden Figuren aus der Filmserie Pate:

  • Debian 1.0 wurde nie offiziell veröffentlicht, da ein CD-Verteiler bedauerlicherweise eine Entwicklungsversion als Version 1.0 bezeichnet hatte [Debian-Project-History]. Daher entschlossen sich Debian und der CD-Verteiler zur gemeinsamen Bekanntmachung, dass die beigefügte Version fehlerhaft war ("this release was screwed") und das Projekt veröffentlichte die Version 1.1 ein halbes Jahr später.
  • Debian 1.1 Buzz (17. Juni 1996; benannt nach Buzz Lightyear, dem Astronauten)
  • Debian 1.2 Rex (12. Dezember 1996; benannt nach dem Plastikdinosaurier)
  • Debian 1.3 Bo (5. Juni 1997; benannt nach Bo Peep, der Schäferin)
  • Debian 2.0 Hamm (24. Juli 1998; benannt nach dem Sparschwein)
  • Debian 2.1 Slink (9. März 1999; benannt nach dem Hund Slinky Dog)
  • Debian 2.2 Potato (15. August 2000; benannt nach der Puppe Mr. Potato Head)
  • Debian 3.0 Woody (19. Juli 2002; benannt nach dem Cowboy Woody Pride, der Hauptfigur der Filme)
  • Debian 3.1 Sarge (6. Juni 2005; benannt nach dem Feldwebel der grünen Plastiksoldaten)
  • Debian 4.0 Etch (8. April 2007; benannt nach der Zeichentafel Etch-A-Sketch)
  • Debian 5.0 Lenny (14. Februar 2009; benannt nach dem aufziehbaren Fernglas)
  • Debian 6.0 Squeeze (6. Februar 2011; benannt nach den grünen dreiäugigen Aliens)
  • Debian 7 Wheezy (4. Mai 2013; benannt nach Wheezy the Penguin, dem Gummi-Spielzeugpinguin mit der roten Fliege)
  • Debian 8 Jessie (25. April 2015; benannt nach der jodelnden Kuhhirtinnen-Puppe Jessica Jane „Jessie“ Pride)
  • Debian 9 Stretch (17. Juni 2017; benannt nach dem lila Kraken)
  • Debian 10 Buster (6. Juli 2019; benannt nach dem Welpen aus Toy Story 2)
  • Debian 11 Bullseye (14. August 2021; benannt nach dem Pferd von Woody Pride)
  • Debian 12 Bookworm (Sommer 2023; benannt nach dem intelligenten Bücherwurm, einem Spielzeug mit eingebauter Leuchte aus Toy Story 3)

Es stehen bereits ebenfalls die Namen von zwei zukünftigen Veröffentlichungen fest:

  • Debian 13 Trixie — benannt nach dem blauen Dinosaurier
  • Debian 14 Forky — benannt nach dem aus Müll zusammengebauten Hauptcharakter aus Toy Story 4.

Mehr Details zu den einzelnen Veröffentlichungen finden sich in der Debian-Geschichte [Debian-History]. Die Figuren aus den verschiedenen Toy Story-Filmen und insbesondere deren Charakterzüge sind ausführlich im Disney Wiki [ToyStory] dokumentiert (siehe Abbildung 2.9, „Beschreibung der Filmserie Toy Story im Disney Wiki“).

Abbildung 2.9. Beschreibung der Filmserie Toy Story im Disney Wiki

konzepte/software-in-paketen-organisieren/toystory.png

Auch bei der Bezeichnung der Aktualisierungen zur stabilen Veröffentlichung ergeben sich über die Jahre hinweg kleine Unterschiede. Anfangs erfolgte die Kennzeichnung durch Anhängen des Buchstabens r und der Nummer der Aktualisierung, z.B. 4.0r8 für die 8. Aktualisierung von Debian 4.0 Etch. Seit Debian 5.0 Lenny wird stattdessen ein Punkt verwendet, so z.B. 5.0.3 für die dritte Aktualisierung.

Seit Debian 4.0 Etch bekamen stabile Veröffentlichungen immer eine neue Nummer an erster Stelle. Seit Debian 7 Wheezy ist die Null an zweiter Stelle verschwunden. Stattdessen wird die Nummer der Aktualisierung genutzt, so z.B. 7.3 für die dritte Aktualisierung von Debian 7 Wheezy.

2.10.3. Zusammenhang von Alias-Namen und Entwicklungsständen

Neben den o.g. Entwicklungsständen haben alle Veröffentlichungen auch noch Alias-Namen, die eine Veröffentlichung stets unverändert beibehält. Jede neue Veröffentlichung startet nach einer stabilen Veröffentlichung als testing, wird dann bei der nächsten stabilen Veröffentlichung zu stable, bei der übernächsten zum oldstable und danach zu oldoldstable.

Ist eine Veröffentlichung — sei es als oldstable oder als oldoldstable — am Ende ihrer Unterstützung angelangt, wird sie in das Debian-Archiv [Debian-Archive] übertragen. Dieses Archiv beinhaltet alle nicht mehr unterstützten Veröffentlichungen.

Eine weitere Ausnahme bildet die Veröffentlichung zu unstable. Sie besitzt stets den gleichen Alias-Namen Sid. In der Filmreihe Toy Story ist das passenderweise der Name des bösen Nachbarkinds, welches immer alle Spielzeuge kaputt macht. Sid ist auch gleichzeitig ein Akronym für still in development – zu deutsch „noch in Entwicklung“ –, was den Status der Veröffentlichung der zukünftigen Distribution sehr treffend umschreibt.

Experimental trägt – analog zu unstable – immer den Alias-Namen rc-buggy, was im Debian-Jargon eine Kurzform für „contains release-critcal bugs“ darstellt. Das lässt sich sinngemäß als „in dieser Form ungeeignet zur Aufnahme in eine Veröffentlichung“ übersetzen.

2.10.4. Pakete auf Wanderschaft von einem Entwicklungsstand in den nächsten

Sieht man von Uploads nach experimental ab, fängt das Leben einer neuen Version eines Debianpakets mit dem Hochladen nach unstable an. Das Paket wird automatisch in testing übernommen, sobald einige Bedingungen erfüllt sind:

  • Die Version des Pakets in unstable führt keine neuen veröffentlichungskritischen Fehler in testing ein.
  • Alle notwendigen Abhängigkeiten des Pakets sind in testing verfügbar oder werden gleichzeitig nach testing migriert.
  • Es darf keine Abhängigkeiten von Paketen zerstören, die bereits in testing enthalten sind und damit deren Installation verhindern.
  • Das Paket hat ein Mindestalter an Tagen erreicht. Dieses Mindestalter hängt vom Wert des Felds urgency (engl. für Dringlichkeit) im aktuellen Changelog-Eintrag ab und beträgt entweder 10, 5 oder 2 Tage. Die Dringlichkeit wird dabei vom Paketmaintainer entschieden. Bei Korrekturen von sicherheitsrelevanten Fehlern ist es durchaus üblich, dass die Dringlichkeit auf „hoch“ gesetzt wird und damit nur 2 Tage beträgt.
  • Das Paket muss auf allen Architekturen, auf denen es gebaut wird, in der aktuellsten Version verfügbar sein.
  • Das Paket muss auf allen Architekturen bereitstehen, auf denen es vorher bereits gebaut wurde. Für Ausnahmen muss zuerst das alte Paket aus dem Archiv manuell entfernt werden.

Das Debian-Release-Team kann allerdings diese Bedingungen individuell übersteuern und kürzere oder längere Fristen für den Übergang in die testing-Veröffentlichung setzen.

Zu einem bestimmten Zeitpunkt im Entwicklungszyklus einer neuen stabilen Veröffentlichung friert das Release-Team die testing-Veröffentlichung ein – auch genannt Freeze (engl. für Einfrieren). Ab diesem Moment wandern keine Pakete mehr automatisch von unstable nach testing und das Debian-Release-Team muss jeden einzelnen, weiteren Übergang eines Pakets explizit abnicken. Je länger der Freeze andauert, desto schärfer werden die Bedingungen, unter denen das Debian-Release-Team einen Übergang nach testing akzeptiert. Im Normalfall werden nur noch Paketversionen akzeptiert, die ausschließlich Fehler korrigieren und keine neuen Features einführen. Daher wird für diesen Zustand auch der Begriff Feature Freeze verwendet.

Auf diese Weise wird versucht, sämtliche veröffentlichungskritischen Fehler in der testing-Veröffentlichung zu beheben. Sobald es dort keinen dieser Fehler mehr gibt, geschehen die folgenden Dinge:

  • Die bisherige Veröffentlichung stable wird zu oldstable. Sie behält dabei ihren Alias-Namen bei.
  • Eine Kopie des aktuellen Zweigs testing wird zum neuen Zweig stable. Der Alias-Name zieht mit um.
  • testing bekommt einen neuen Alias-Namen.
  • Der Freeze wird aufgehoben und die Pakete propagieren wieder automatisch von unstable nach testing.

2.10.5. Organisation der Pakete im Paketpool

Wenn eine Paketversion von unstable nach testing wandert oder aus testing das neue stable wird, werden allerdings nicht wirklich Pakete kopiert. Stattdessen werden vielmehr nur die Metadaten des betreffenden Pakets von einer Paketliste in eine andere umgetragen. Das Paket selbst liegt immer noch an gleicher Stelle und nur einmal im sogenannten Paketpool.

So kann es vorkommen, dass ein Paket, welches nur selten aktualisiert wird, in allen aktuellen Veröffentlichungen in der gleichen Version vorkommt und dafür auch nur einmal auf jedem Spiegel des Debian-APT-Archivs liegt. Welches Paket dann aus den verschiedenen Entwicklungsständen bei einer Installation ausgewählt wird, erfahren Sie unter „Aus welchem Repo kommen die Pakete“ (siehe Abschnitt 8.14, „Aus welchem Repo kommen die Pakete“) genauer.

2.10.6. Sicherheitsaktualisierungen

Für unterstützte Veröffentlichungen, d.h. die aktuelle stabile Veröffentlichung ("stable release"), sowie mindestens ein Jahr nach einer Veröffentlichung für die vorherige stabile Veröffentlichung bietet Debian Sicherheitsaktualisierungen durch das Debian Security Teams [Debian-Security] an.

2.10.7. Long Term Support (LTS)

Im Frühjahr 2014 wurden zusätzlich sogenannte Long Term Support-Varianten [Debian-LTS] — auf Deutsch "Langzeitunterstützung" und kurz LTS — eingeführt. Diese verlängern den Zeitraum der weiteren Verfügbarkeit und Pflege einer Veröffentlichung von den typischerweise drei Jahren auf bis zu fünf Jahre.

In Folge wurde die im Jahr 2011 freigegebene und 2013 durch Debian 7 Wheezy abgelöste Veröffentlichung von Debian 6 Squeeze bis 2016 mit Aktualisierungen versorgt. Seither wurde jede weitere stabile Veröffentlichung nach ihrem offiziellen Lebensende ebenfalls als LTS mit Einschränkungen — z.B. nur noch die beliebtesten Architekturen — weitergeführt. Anfangs waren dies nur die beiden x86-basierten Architekturen i386 und amd64, momentan beinhaltet das zusätzlich auch noch alle drei ARM-basierten Architekturen (armel, armhf und arm64).

Debian LTS wird nicht wie die normalen Sicherheitsaktualisierungen vom Debian-Security-Team gehandhabt, sondern von einer Gruppe Freiwilliger wie auch Firmen, die daran interessiert sind, daß Debian LTS ein Erfolg wird — oft auch aus Eigenbedarf heraus. Dementsprechend übernimmt das Debian-LTS-Team das Bereitsstellen von Sicherheitsaktualisierungen vom Debian-Security-Team am Ende der normalen Unterstützungsdauer der Veröffentlichung.

Zur Nutzung von Debian LTS nach Ablauf des normalen Unterstützungszeitraumes muß an der Konfiguration des Systems nichts geändert werden. (Historisch galt diese Regel nicht für die allererste Debian Veröffentlichung mit LTS, Debian 6 Squeeze, welche eine Art Machbarkeitstest war. Aber da deren Langzeitunterstützung bereits abgelaufen ist, ist das heute von keiner Relevanz mehr.)

2.10.8. Extended Long Term Support (ELTS)

Da manchen Anwendern — vor allem aus dem professionellen Umfeld — auch die LTS-Varianten nicht lange genug Unterstützung anboten, gibt seit 2018 eine weitere Stufe der Verlängerung. Seit dem Auslaufen von LTS für Debian 7 Wheezy besteht das Projekt "Extended LTS", auf deutsch "Erweiterte Langzeitunterstützung" und kurz "ELTS", die die Unterstützung von Debian-Veröffentlichungen um weitere zwei Jahre auf ca. sieben Jahre verlängert. Im Gegensatz zu Debian LTS, welches immer noch ein Projekt unter dem Dach von Debian ist, ist Extended LTS ein kommerzielles Angebot, dessen Aktualisierungen jedoch trotzdem jeder nutzen kann.

Für welche Pakete es Aktualisierungen gibt, hängt jedoch davon ab, ob ein Paket jemandem wichtig genug ist, um sich am Arbeitsaufwand für dessen Sicherheitsaktualisierungen zu beteiligen. Interessieren sich mehrere Personen oder Organisationen für die Sicherheitsaktualisierungen desselben Paketes, so werden die Kosten entsprechend aufgeteilt. Die Koordination erfolgt über die französische Firma Freexian [Freexian].

Desweiteren gibt es im Vergleich zu LTS weitere Einschränkungen:

  • Es werden nur Pakete unterstützt, für die sich Sponsoren finden. Die aktuelle Liste unterstützter Pakete findet sich unter [Debian-ELTS-Packages].
  • Es werden ggf. noch weniger Architekturen unterstützt. Im Falle von Debian 8 Jessie sind dies nur noch i386, amd64 und armel.
  • Der Linux-Kernel wird ggf. nicht unterstützt. Es wird jedoch ein Backport des Kernels von der darauffolgenden stabilen Debian-Veröffentlichung (die dann typischerweise zu diesem Zeitpunkt bereits unter Debian LTS gepflegt wird) angeboten. Im Falle von Debian 8 Jessie ist dies der Linux-Kernel 4.9 aus Debian 9 Stretch.
  • Für bestimmte Pakete können keine Sicherheitsaktualisierungen angeboten werden, selbst wenn sich ein Sponsor finden würde, weil von den Entwicklern der Software der Unterstützungszeitraum abgelaufen ist. So z.B. für MariaDB 10.0. Für andere Pakete wird die Unterstützung vor Ende der erweiterten Langzeitunterstützung enden, so z.B. Tomcat 7 und OpenJDK 7.

Die aktuellen Details zu den Einschränkungen als auch wie man Sponsor von Debian ELTS werden kann, ist auf der ELTS-Webseite von Freexian [Freexian-ELTS] erklärt.

Um die von der erweiterten Langzeitunterstützung bereitgestellten Paketaktualisierungen nutzen zu können, müssen Sie im Gegensatz zu Debian LTS zwei Dinge tun — 1.) ein weiteres APT-Repository zu Ihrer /etc/apt/sources.list (oder einer Datei im Verzeichnis /etc/apt/sources.list.d/) hinzufügen, und 2.) den PGP-Schlüssel des Extended-LTS-Projektes importieren. Wie das erfolgt, ist im 'Debian ELTS-HowTo [Debian-ELTS-HowTo] beschrieben. Im Folgenden dazu eine kurze Zusammenfassung:

Der erste Schritt ist das Herunterladen des aktuellen Schlüsselrings des Projektes als .deb-Paket von https://deb.freexian.com/extended-lts/pool/main/f/freexian-archive-keyring/ . Das Vertrauen liegt hierbei nur auf dem HTTPS-Zertifikat des Webservers.

Danach wird das heruntergeladene Paket mit Administrator-Rechten (d.h. als root oder z.B. mittels sudo) über den Aufruf dpkg -i freexian-archive-keyring*.deb installiert. Nun wird das APT-Repository durch das Hinzufügen der folgenden Zeile aktiviert:

sources.list-Eintrag für Extended LTS. 

# Generisch (passende Veröffentlichung und Archiv-Bereiche anpassen)
deb http://deb.freexian.com/extended-lts veröffentlichung-lts sektionen

# Beispiel für Debian 8 Jessie mit allen Archiv-Bereichen
deb http://deb.freexian.com/extended-lts jessie-lts main contrib non-free

# Beispiel für Debian 9 Stretch mit allen Archiv-Bereichen
deb http://deb.freexian.com/extended-lts stretch-lts main contrib non-free

Abschließend ist noch apt update oder ein Äquivalent aufzurufen, um die ELTS-Paketlisten herunterzuladen. Sind bereits Aktualisierungen verfügbar, so kann man diese direkt auch mit apt upgrade oder ggf. apt full-upgrade einspielen.