LTS steht für Long Time Support, bezeichnet also eine mehrjährige Update-Garantie für die wichtigsten Pakete von Ubuntu. Ubuntu 16.04 ist eine LTS-Distribution. Aber für welche Distributionen gelten welche Wartungszeiträume? Und für welche Pakete?
Update: Ein Leser (vielen Dank!) hat mich darauf aufmerksam gemacht, dass der Wartungsstatus der Pakete ganz einfach mit ubuntu-support-status
ermittelt werden kann. Sorry, dieses Kommando habe ich zehn Jahre übersehen und auch mit diversen Google-Suchen nicht gefunden. Ich habe den Artikel um einen entsprechenden Abschnitt erweitert.
Zweites Update: Die LTS-Frage wird mittlerweile auch in der ubuntu-devel-Diskussionsliste erörtert. Dabei ergeben sich neue Aspekte:
- Marc Deslauriers von Canonical schreibt, dass die Supported-Tags der Pakete seit Jahren nicht mehr aktualisiert wurden, dass
ubuntu-support-status
obsolet (deprecated) ist und dass das Paket aus Ubuntu entfernt werden soll. Es hat auch gleich einen entsprechenden Bug-Bericht verfasst. -
Der Ubuntu-Entwickler Stéphane Graber widerspricht und gibt an, die Supported-Tags seien sehr wohl aktuell. Außerdem schreibt er, das es main-Pakete gibt, die weniger als 5 Jahre unterstützt werden, so wie es universe/multiverse-Pakete gibt, die über die vollen fünf Jahre gewartet werden.
-
Dem widerspricht wiederum der Ubuntu-Entwickler Steve Langasek: Alle Pakete in main werden ohne Ausnahmen fünf Jahre unterstützt. Ob und wie lange universe/multiverse-Pakete gewartet werden, hängt von den jeweiligen Maintainern ab, es gibt aber keinerlei Garantien dafür — daher offiziell unsupported.
Drittes Update, Juli 2022: ubuntu-support-status
wurde durch ubuntu-security-status
ersetzt. Das neue Kommando liefert allerdings weniger Details als ubuntu-update-status
. Insbesondere ist es nicht in der Lage, eine Liste der nicht mehr mit Updates versorgten Pakete zu erzeugen. Insofern ist mein unten dargestelltes Script packagelist
aktueller den je :-)
Unterschiedliche LTS-Wartungszeiträume je nach Distribution
Die Grundregel lautet: Der LTS-Zeitraum von fünf Jahren gilt nur für Ubuntu, Ubuntu Server, Ubuntu Core und Ubuntu Kylin (also den chinesischen Ubuntu-Ableger). Für alle anderen Ubuntu-Variante gilt ein LTS-Zeitraum von drei Jahren. Die Mythbuntu-Webseite weist allerdings darauf hin, das Mythbuntu 16.04 nur bis kurz nach dem Release von Mythbuntu 18.04 unterstützt wird.
Distribution Support-Zeitraum
---------------- -----------------
Ubuntu 5 Jahre
Ubuntu Server 5 Jahre
Ubuntu Kylin 5 Jahre
Ubuntu Gnome 3 Jahre
Ubuntu MATE 3 Jahre
Ubuntu Studio 3 Jahre
Kubuntu 3 Jahre
Lubuntu 3 Jahre
Xubuntu 3 Jahre
Mythbuntu 2 Jahre
Was ist mit Edubuntu? Auf der Edubuntu-Webseite ist die Version 16.04 ein Non-Topic. Das liegt daran, dass die bisherigen Maintainer zurückgetreten sind und nur noch die Version 14.04 betreuen. In welcher Form bzw. durch welchen Maintainer Edubuntu weitergeführt wird, muss sich erst zeigen. Das ist auch der Grund, weswegen Edubuntu nicht mehr in der Liste der offiziellen Ubuntu-Varianten aufgeführt wird.
Welche Pakete sind LTS-Pakete? (alias »Die komplizierte Lösung«)
Eigentlich lässt sich diese Frage leicht beantworten: Alle Pakete aus der Ubuntu-main-Paketquelle.
Wenn Sie aber Ubuntu-Installationen (speziell bei Servern) administrieren, fällt die konkrete Antwort viel schwerer: Oft sind nämlich auch Ubuntu-universe- oder Ubuntu-multiverse-Pakete installiert, für die es keine LTS-Garantien gibt. Oft sind außerdem zusätzliche Paketquellen eingerichtet (Chrome, Spotify, MariaDB, PPAs etc.). Für welche der installierten Pakete gilt nun die LTS-Update-Garantie, für welche nicht?
Meines Wissens bieten weder dpkg
noch apt-cache
noch aptitude
geeignete Filtermöglichkeiten, um diese Frage unkompliziert zu beantworten. Ich habe daher das bash-Script packagelist
verfasst, das eine Schleife über alle installierten Pakete ausführt und dann für jedes Paket mit apt-cache madison
herausfindet, woher dieses Paket stammt. (apt-cache madison
kann mehrere Ergebnisse liefern. Das Script wertet nur die erste entsprechende Zeile aus, was für meine Zwecke ausreichend ist.)
#!/bin/bash
# Script packagelist
# Schleife über alle installierten Pakete
for pkg in $(dpkg --get-selections | grep -v deinstall | cut -f1); do
# erste Zeile von apt-cache madison, die nicht Sources beschreibt
data=$(apt-cache madison $pkg | grep -v Sources | head -1)
# pkgsrc (enthält package URL plus z.B. xenial/main)
pkgsrc=$(echo $data | cut -d'|' -f3)
url=$(echo $pkgsrc | cut -d' ' -f1)
repo=$(echo $pkgsrc | cut -d' ' -f2)
# Daten für Ausgabe sammeln
pkgs="$pkgs\n$pkg $repo $url"
repos="$repos\n$repo $url"
done
# Liste aller Pakete samt Quelle in Spalten ausgeben
echo -e $pkgs | column -t
echo
# Liste aller Repos mit Paketanzahl
echo -e $repos | tail -n +2 | sort | uniq -c | sort -n
Das vielfache Ausführen von apt-cache madison
kostet recht viel Zeit, bei einer Desktop-Installation je nach Hardware ca. eine Minute. Deswegen ist es sinnvoll, die Ausgabe gleich in eine Textdatei umzuleiten, damit diese dann bei Bedarf weiter analysiert werden kann, z.B. mit grep
.
Wenn Sie das Script auf einer frischen Ubuntu-Desktop-Installation ausführen, sieht das Ergebnis z.B. so aus:
./packagelist > pkg.txt
cat pkg.txt
a11y-profile-manager-indicator xenial/main http://at.archive.ubuntu.com/ubuntu
account-plugin-facebook xenial/main http://at.archive.ubuntu.com/ubuntu
account-plugin-flickr xenial/main http://at.archive.ubuntu.com/ubuntu
...
zenity-common xenial/main http://at.archive.ubuntu.com/ubuntu
zip xenial/main http://at.archive.ubuntu.com/ubuntu
zlib1g:amd64 xenial/main http://at.archive.ubuntu.com/ubuntu
3 xenial/multiverse http://at.archive.ubuntu.com/ubuntu
1727 xenial/main http://at.archive.ubuntu.com/ubuntu
Es gibt also nur drei multiverse-Pakete:
grep multiverse pkg.txt
virtualbox-guest-dkms xenial/multiverse http://at.archive.ubuntu.com/ubuntu
virtualbox-guest-utils xenial/multiverse http://at.archive.ubuntu.com/ubuntu
virtualbox-guest-x11 xenial/multiverse http://at.archive.ubuntu.com/ubuntu
Hier ist das Ergebnis einer weiteren Desktop-Installation, diesmal mit zusätzlichen Paketquellen:
cat pkg.txt
...
1 stable/non-free http://repository.spotify.com
5 xenial/multiverse http://at.archive.ubuntu.com/ubuntu
1 xenial/main http://ppa.launchpad.net/webupd8team/java/ubuntu
134 xenial/universe http://at.archive.ubuntu.com/ubuntu
1820 xenial/main http://at.archive.ubuntu.com/ubuntu
Hier ist das Ergebnis einer Server-Installation:
cat pkg.txt
...
46 xenial/universe http://de.archive.ubuntu.com/ubuntu
641 xenial/main http://de.archive.ubuntu.com/ubuntu
Die eingangs gestellte Frage, welche Pakete (nicht) LTS-Status haben, beantwortet auch mein Script nicht direkt. Die mit packagelist
erstellte Liste bietet aber eine gute Möglichkeit, gezielt nach den Paketen zu suchen, die nicht aus der Ubuntu-main-Quelle stammen. Dabei müssen Sie aber unbedingt auch die Package-URL mitberücksichtigen. Es gibt Paketquellen, die xenial/main
verwenden, obwohl sie nicht von Ubuntu/Canonical stammen.
Das folgende Listing ist auf einem simplen LAMP-Server entstanden. Es zeigt sich, dass durchaus wichtige Pakete wie fail2ban
keinen LTS-Status haben.
grep universe pkg.txt
dialog xenial/universe http://de.archive.ubuntu.com/ubuntu
fail2ban xenial/universe http://de.archive.ubuntu.com/ubuntu
joe xenial/universe http://de.archive.ubuntu.com/ubuntu
letsencrypt xenial/universe http://de.archive.ubuntu.com/ubuntu
mailutils xenial/universe http://de.archive.ubuntu.com/ubuntu
mailutils-common xenial/universe http://de.archive.ubuntu.com/ubuntu
php7.0-zip xenial/universe http://de.archive.ubuntu.com/ubuntu
...
Zuletzt noch die Ergebnisse eines anderen Servers, der noch unter Ubuntu 14.04 läuft:
cat pkg.txt
1 trusty-backports/main http://mirror.hetzner.de/ubuntu/packages/
8 trusty-updates/universe http://mirror.hetzner.de/ubuntu/packages/
9 trusty/main http://mirror.netcologne.de/mariadb/repo/5.5/ubuntu/
16 trusty/universe http://mirror.hetzner.de/ubuntu/packages/
270 trusty-updates/main http://mirror.hetzner.de/ubuntu/packages/
276 trusty/main http://mirror.hetzner.de/ubuntu/packages/
Die Liste aller Nicht-LTS-Pakete kann in diesem Fall so ermittelt werden:
egrep "universe|backports|mariadb/repo/5.5" pkg.txt
cpufrequtils trusty/universe ...hetzner.de/ubuntu/packages/
fail2ban trusty/universe ...hetzner.de/ubuntu/packages/
htop trusty/universe ...hetzner.de/ubuntu/packages/
joe trusty/universe ...hetzner.de/ubuntu/packages/
libcgmanager0:amd64 trusty-backports/main ...hetzner.de/ubuntu/packages/
libcpufreq0 trusty/universe ...hetzner.de/ubuntu/packages/
libgsasl7 trusty/universe ...hetzner.de/ubuntu/packages/
libkyotocabinet16:amd64 trusty/universe ...hetzner.de/ubuntu/packages/
libmailutils4 trusty/universe ...hetzner.de/ubuntu/packages/
libmariadbclient18 trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
libmysqlclient18 trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
libntlm0:amd64 trusty/universe ...hetzner.de/ubuntu/packages/
libphp-phpmailer trusty-updates/universe ...hetzner.de/ubuntu/packages/
libphp-snoopy trusty/universe ...hetzner.de/ubuntu/packages/
libzend-framework-php trusty/universe ...hetzner.de/ubuntu/packages/
mailutils trusty/universe ...hetzner.de/ubuntu/packages/
mailutils-common trusty/universe ...hetzner.de/ubuntu/packages/
makepasswd trusty/universe ...hetzner.de/ubuntu/packages/
mariadb-client-5.5 trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-client-core-5.5 trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-common trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-server trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-server-5.5 trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-server-core-5.5 trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
mysql-common trusty/main ...netcologne.de/mariadb/repo/5.5/ubuntu/
php5-imagick trusty/universe ...hetzner.de/ubuntu/packages/
python-chardet-whl trusty-updates/universe ...hetzner.de/ubuntu/packages/
python-colorama trusty-updates/universe ...hetzner.de/ubuntu/packages/
python-colorama-whl trusty-updates/universe ...hetzner.de/ubuntu/packages/
python-distlib trusty-updates/universe ...hetzner.de/ubuntu/packages/
python-distlib-whl trusty-updates/universe ...hetzner.de/ubuntu/packages/
python-pip trusty-updates/universe ...hetzner.de/ubuntu/packages/
python-pip-whl trusty-updates/universe ...hetzner.de/ubuntu/packages/
smem trusty/universe ...hetzner.de/ubuntu/packages/
Welche Pakete sind LTS-Pakete? (Update alias »Die einfache Lösung«)
Hinweis: ubuntu-support-status
steht in aktuellen Ubuntu-Versionen nicht mehr zur Verfügung. Es wurde ersetzt durch ubuntu-security-status
, das allerdings weniger Funktionen bietet.
Das Kommando, das ich 10 Jahre übersehen habe, lautet ubuntu-support-status
. Wird es ohne weitere Parameter ausgeführt, liefert es eine wunderbare Statistik, wie viel Prozent der Pakete wie lange gewartet werden. (Alle folgenden Ergebnisse gelten für einen Ubuntu-16.04-Server des Autors.)
ubuntu-support-status
Sie haben 636 Pakete (91.6%), die bis April 2021 (5y) unterstützt werden
Sie haben 9 Pakete (1.3%), die bis April 2019 (3y) unterstützt werden
Sie haben 11 Pakete (1.6%), die bis Januar 2017 (9m) unterstützt werden
Sie haben 7 Pakete (1.0%), die nicht/nicht mehr heruntergeladen werden können
Sie haben 31 nicht unterstützte Pakete (4.5%)
Wenn Sie wissen wollen, welche Pakete noch wie lange gewartet werden, führen Sie ubuntu-supported-status --show-supported
aus:
ubuntu-support-status --show-supported
Unterstützt bis April 2019 (3y):
dialog hddtemp libdbd-mysql-perl libterm-readkey-perl libzip4
lm-sensors python3-numpy python3-psutil watershed
Unterstützt bis April 2021 (5y):
accountsservice acl acpid adduser apache2 apache2-bin apache2-data
apache2-utils apparmor apport apport-symptoms apt apt-transport-https
...
xml-core xz-utils zerofree zlib1g
Unterstützt bis Januar 2017 (9m):
fonts-lyx libjs-jquery-ui liblsan0 libtsan0 php-xml
python-matplotlib-data python3-cycler python3-dateutil
python3-matplotlib python3-pyinotify ttf-bitstream-vera
Umgekehrt liefert ubuntu-support-status --show-unsupported
eine Liste aller Pakete, für die der Wartungszeitraum unbekannt ist oder die gar nicht mehr zur Verfügung stehen:
ubuntu-support-status --show-unsupported
Nicht mehr herunterzuladen:
libmysqlclient18 linux-headers-4.4.0-18
linux-headers-4.4.0-18-generic linux-image-4.4.0-18-generic
linux-image-extra-4.4.0-18-generic php5-common php5-gd
Nicht unterstützt:
fail2ban glances joe letsencrypt libgsasl7 libkyotocabinet16v5
libmailutils4 libmilter1.0.1 libntlm0 mailutils mailutils-common
...
spamass-milter
Wie viele Pakete befinden sich in welcher Paketquelle?
In diesem Zusammenhang ist manchmal auch interessant, wie viele Pakete eine bestimmte Paketquelle zur Verfügung stellt. Diese Informationen liefert das folgende Kommando (Quelle: askubuntu). Im folgenden Listing mit den Ergebnissen einer Ubuntu-16.04-Testinstallation mit einigen zusätzlichen Paketquellen habe ich alle 0-Ergebnisse entfernt.
for f in /var/lib/apt/lists/*Packages; do
printf '%5d %s\n' $(grep '^Package: ' "$f" | wc -l) ${f##*/}
done | sort -n
3 dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages
3 repository.spotify.com_dists_stable_non-free_binary-i386_Packages
4 repository.spotify.com_dists_stable_non-free_binary-amd64_Packages
9 archive.canonical.com_ubuntu_dists_xenial_partner_binary-amd64_Packages
10 archive.canonical.com_ubuntu_dists_xenial_partner_binary-i386_Packages
12 ppa.launchpad.net_webupd8team_java_ubuntu_dists_xenial_main_binary-amd64_Packages
12 ppa.launchpad.net_webupd8team_java_ubuntu_dists_xenial_main_binary-i386_Packages
23 ppa.launchpad.net_atareao_atareao_ubuntu_dists_xenial_main_binary-amd64_Packages
23 ppa.launchpad.net_atareao_atareao_ubuntu_dists_xenial_main_binary-i386_Packages
45 at.archive.ubuntu.com_ubuntu_dists_xenial_restricted_binary-amd64_Packages
46 at.archive.ubuntu.com_ubuntu_dists_xenial_restricted_binary-i386_Packages
758 at.archive.ubuntu.com_ubuntu_dists_xenial_multiverse_binary-i386_Packages
782 at.archive.ubuntu.com_ubuntu_dists_xenial_multiverse_binary-amd64_Packages
7284 at.archive.ubuntu.com_ubuntu_dists_xenial_main_binary-i386_Packages
7322 at.archive.ubuntu.com_ubuntu_dists_xenial_main_binary-amd64_Packages
45574 at.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-i386_Packages
45688 at.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages
Die LTS-Frage bei heise.de
heise.de hat sich auch mit der LTS-Frage beschäftigt und weist ebenfalls auf die Problematik hin, dass es längerfristig nur Updates für main-Pakete gibt. Die Empfehlung, nur main-Pakete zu installieren, ist in der Praxis freilich schwer zu befolgen. Viele wichtige Pakete sind nicht in main. (Bei RHEL/CentOS ist es übrigens ähnlich, wenn auch nicht ganz so eklatant: Auch dort aktivieren viele die EPEL-Paketquelle für Zusatzpakete …)
Schöner Artikel, der das Thema nochmal genauer erklärt.
Ich finde es leider immer noch schade, dass es kein „richtiges“ LTS für Debian-basierte Distributionen gibt wie es z.B. RedHat und SuSE anbieten. Auch traurig, dass sogar Windows in den Desktopvarianten doppelt so lange Support bekommen wie ein LTS Ubuntu.
Hallo,
seltsam Kubuntu-LTS hatte mit der 14.04 noch 5 Jahre und nun 3??
Kubuntu LTS: 3 Jahre laut https://wiki.kubuntu.org/XenialXerus/ReleaseNotes/Kubuntu
(omgubuntu behauptet allerdings 5 Jahre: http://www.omgubuntu.co.uk/2016/04/see-whats-new-ubuntu-16-04-flavors-screenshot)
Hallo,
nein, 3 Jahre ist wohl korrekt, die 14.04 war noch 5 jahre. Es fehlt wohl ein bisschen Manpower
Schönes WE
Was ich trotz Recherchen bisher nicht einwandfrei klären konnte: Wie sieht es denn im Red Hat-Umfeld mit dem Supportstatus von Paketen aus dem EPEL-Repo aus? Ist die Versorgung mit Sicherheitsupdates dort gesichert oder nicht?
Ansonsten trägt es zu meiner gegenwärtigen Unsicherheit bei, das sich offensichtlich selbst Ubuntu-Entwickler über den Support-Status verschiedener Repos nicht einig sind…
EPEL hat meines Wissens den gleichen Support-Status wie Ubuntu universe/multiverse. Kurzum: Es hängt vom jeweiligen Paket-Maintainer ab, ob bzw. wie lange es Updates gibt.
Guten Morgen zusammen,
Meine Frage:
Wie ist die Sicherheitslage bei Linux Mint ? Nach meinem Informationsstand kommt Linux Mint meist 4 Wochen Ubuntu hinterher mit ihren Updates und Upgrades. Die die Leute um Clement Lefebvre gründlicher oder ist es nur eitles Getue ?
Ich nutze beide Systeme und empfehle Linux Neulingen meist Linux Mint. Linux Mint ist sehr komfortabel.
Danke und Grüße aus Baden-Württemberg
Mint verwendet einfach die Ubuntu-Paketquellen (und eine eigene, aber nur für die Pakete, die Mint-spezifisch sind).
Was bei Mint sicher noch eine wichtige Rolle in Abgrenzung vom naturbelassenen Ubuntu spielt, ist das mehrstufige Update-System, bei dem in den Standardeintellungen nicht als hoch sicherheitskritisch eingestufte Updates zurückgehalten werden. Allerdings kann man den Updater auch so einstellen, dass er alle Updates verarbeitet.
Diese Update-Strategie bereitet ja immer wieder Zündstoff für – um es vorsichtig auszudrücken – angeregte Diskussionen:
– http://www.golem.de/news/sicherheit-mit-linux-mint-wuerde-ich-kein-onlinebanking-machen-1311-102830.html
– http://segfault.linuxmint.com/2013/11/answering-controversy-stability-vs-security-is-something-you-configure/
Ich würde gerne einmal noch besser verstehen, was davon zu halten ist … Einleuchtend finde ich jedenfalls den Gedanken, dass durch neuere Softwareversionen durchaus Sicherheitslücken erst eingespielt werden können, wie sie sie beheben können.
Auch ein wichtiger Faktor bei der Distributionswahl dürfte der Umstand sein, dass die deutschsprachige Ubuntu-Community (http://ubuntuusers.de) sehr groß und rege ist, wogegen die von Mint (http://linuxmintusers.de) eher dünn daher kommt.
P.S.
Ich nutze Ubuntu 16.04 LTS seit seiner Einführung im April. Ich habe einen ca 4 Jahre alten Dell PC . ( Second Hand, aufbereitetes Leasing-Gerät) Bisher sind bei mir keine der oben angegebenen Probleme aufgetaucht. Bin eigentlich sehr zufrieden mit der neuen Distribution von Ubuntu. Der PC wir im Alltag eingesetzt, Libre Office 5 läuft gut. Multimedia und Internetnutzung läuft gut. Habe von Hand die Multimedia-Codes eingestellt.