Automatische Updates

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

./software-update-available.png Wie bei jedem Betriebssystem müssen auch bei Ubuntu regelmäßig Updates installiert werden. Diese Updates beinhalten Bugfixes und Sicherheitsupdates, allerdings keine neuen Programmversionen. Dies liegt an der Politik von Ubuntu, die besagt, dass nach der Veröffentlichung einer Ubuntu-Version keine neuen Programmversionen aufgenommen werden.

Dies soll gewährleisten, dass neue Pakete die Abhängigkeiten nicht zerstören oder zu neuen Programmfehlern führen. Sicherheitsrelevante oder die Stabilität deutlich erhöhende Änderungen werden jedoch meist zurückportiert, so dass die in den Ubuntu-Quellen vorhandenen Versionen auch von Neuerungen profitieren.

Hinweis:

Auf diesem Wege wird die Ubuntu-Installation immer auf dem aktuellen Stand gehalten, was bei LTS-Versionen bedeutet, dass das eigene System identisch zu nachträglich veröffentlichten Revisionsversion (.x) ist - wenn man immer alle Updates eingespielt hat. Es ist daher nicht notwendig, diese neue Version eigenständig herunterzuladen und erneut installieren, es sei denn, der Ubuntu-Rechner hat keine oder nur eine eingeschränkte Verbindung zum Internet. In so einem Fall empfiehlt sich ein Update mittels einer aktuellen Ubuntu-Alternate-CD oder -DVD (siehe Downloads).

./gnome-update-notifier.png

Ubuntu (GNOME) / Xubuntu (Xfce)

Wer ständig mit dem Internet verbunden ist, wird automatisch über neue Sicherheitsupdates informiert, über andere Updates wird spätestens wöchentlich informiert. Die Überprüfung auf neue Updates geschieht täglich.

Aktualisierungsverwaltung

Die Aktualisierungsverwaltung listet alle verfügbaren Updates auf. Die Schaltfläche "Prüfen" liest dabei die Paketquellen noch einmal neu ein, so dass die Liste an verfügbaren Paketen in jeden Fall auf dem neusten Stand ist. Über die Dropdownbox "Beschreibung der Aktualisierung" lassen sich Informationen zu jedem der aktualisierten Pakete einblenden. Ein Klick auf "Aktualisierungen Installieren" sorgt nun dafür, dass die markierten Updates heruntergeladen und installiert werden. Danach kann man den Dialog schließen.

Möchte man die Aktualisierungsverwaltung von Hand starten, so geschieht das über "System -> Systemverwaltung -> Aktualisierungsverwaltung" (GNOME) bzw. "Applications -> System -> Aktualisierungsverwaltung" (Xfce).

Kubuntu (KDE)

Ab Kubuntu 9.04

Wiki/Icons/Oxygen/system-software-update.png Seit Jaunty Jackalope überprüft der Update Notifier, falls man mit dem Internet verbunden ist, ob Sicherheitsupdates zur Verfügung stehen. Falls dies so ist, wird dies mit einem Symbol im Systemabschnitt der Kontrollleiste angezeigt. Ein Klick auf das Symbol startet die Softwareverwaltung KDE, welche die Möglichkeit bietet die Updates zu installieren. (mehr)

Automatische Sicherheitsupdates ohne Interaktion

Mittels weniger Schritte kann man das System so einstellen, dass Bugfixes und Sicherheitsupdates automatisch installiert werden, ohne dass man als Benutzer aktiv werden muss. So kann man administrativen Aufwand sparen.

Ubuntu

Hier gibt es einen Dialog, in dem man zahlreiche Einstellungen rund um die Paketverwaltung vornehmen kann. Man findet ihn unter

  • "System -> Systemverwaltung -> Software-Quellen"

  • oder in der "Aktualisierungsverwaltung", unten links über den Button "Einstellungen"

Im Reiter "Updates" bzw. "Aktualisierungen" findet man die Option "Sicherheitsaktualisierungen ohne Bestätigung installieren". Ist diese aktiviert, so werden Sicherheitsupdates ohne Interaktion des Benutzers installiert.

Kubuntu

Seit Kubuntu 7.04 Feisty Fawn ist es über den Adept Manager möglich, Sicherheitsupdates automatisch installieren zu lassen. Ab Kubuntu 9.04 Jaunty Jackalope wird dies in der Softwareverwaltung KDE konfiguriert. Das in älteren Versionen verwendete Adept bietet diese Möglichkeit nicht, hier musste man auf das Autoupdate von aptitude zurückgreifen. Adept zeigte dann nur die verfügbaren Nicht-Sicherheitsupdates an.

Ohne grafische Oberfläche

Hier muss ein Cronjob eingesetzt werden, der in den gewünschten Zeitabständen (zumindest sicherheitsrelevante) Aktualisierungen aufspielt. Cronjobs führen Skripte aus, deshalb muss irgendwo ein Skript angelegt werden, das die Sicherheitsupdates durchführt. Dieses Skript muss dann z.B. in /etc/cron.daily abgelegt oder von dort verlinkt werden. Die Datei muss ausführbar sein.

Hier ein Vorschlag für ein solches Skript:

#! /bin/sh
eval `cat /etc/lsb-release | grep "DISTRIB_CODENAME="`
echo "**************" >> /var/log/apt-security-updates
date >> /var/log/apt-security-updates
aptitude update >> /var/log/apt-security-updates
aptitude safe-upgrade -o Aptitude::Delete-Unused=false --assume-yes --target-release ${DISTRIB_CODENAME}-security >> /var/log/apt-security-updates
echo "Security updates (if any) installed"

Zur Erklärung: Zuerst wird die aktuell installierte Distribution ausgelesen. Dann wird eine Trennlinie in die Log geschrieben, in die nächste Zeile dann das jeweilige Datum. Der update-Befehl holt sich dann die Liste der verfügbaren Anwendungen und Aktualisierungen. Der safe-upgrade-Befehl installiert alle Aktualisierungen, die aus dem Security-Repository stammen. Die Ausgabe der Aktualisierung wird dabei in die Log geschrieben. Es werden jedoch nur Aktualisierungen vorgenommen, die nicht die Installation oder Deinstallation eines Pakets zur Folge haben. Das wird erst mit einem full-upgrade erledigt.

Es gibt auch noch die Möglichkeit, das Programm cron-apt zu verwenden, das sich ebenfalls um automatische Aktualisierungen kümmert.

Einfache Variante ohne Cronjob

Eine Alternative ohne Crobjobs kann über rc.local erfolgen, womit bei jedem Systemstart ein Update-Skript gestartet werden kann. Ein solches Skript könnte beispielsweise so aussehen:

#! /bin/bash
#
# provide automatic updates
#

LOGFILE="/var/log/auto_update.log"
DELAY=10 # minutes

let delays=$DELAY*60

# initialize first run
if [ ! -f $LOGFILE ]; then
  let "i=$(date +%Y%m%d)-1"
  echo $i > $LOGFILE
fi

# check for last update
if [ -r $LOGFILE ] && [ "$(date +%Y%m%d)" -gt "$(cat $LOGFILE)" ]; then
  # wait
  sleep $delays
  # test internet connectivity
  WGET="/usr/bin/wget"
  $WGET -q --tries=10 --timeout=5 http://www.ubuntu.com -O /tmp/index.update &> /dev/null
  if [ -s /tmp/index.update ];then
    # execute update
    aptitude update -o quiet=2 
    aptitude -y dist-upgrade
    date +%Y%m%d > $LOGFILE
  fi
fi

Das Skript prüft zu Anfang zunächst, ob es am Ausführungstag schon mal gelaufen ist (LOGFILE). Das Update wird gegebenenfalls 10 Minuten nach dem Systemstart begonnen. Kurz vorher wird aber noch getestet, ob überhaupt eine Internetverbindung vorhanden ist. Statt aptitude kann man natürlich auch apt-get verwenden. Heruntergeladen und installiert werden übrigens alle Aktualisierungen, nicht nur die Security-Updates.

Hinweis:

Wenn das Skript nicht über einen Cronjob gestartet wird, läuft es natürlich auch nur einmal nach dem Rechnerstart. Diese Vorgehensweise ist also eher für Clients geeignet, die mindestens einmal am Tag neu gestartet werden - z.B. Laptops. Allerdings lässt sich das selbe Ergebnis auch über die Einstellungen in der Aktualisierungsverwaltung verwirklichen, ("System -> Systemverwaltung -> Aktualisierungsverwaltung -> Einstellungen -> Aktualisierungen"), wo neben anderen Vorgaben z.B. auch eine tägliche Überprüfung und automatische Installation der sicherheitsrelevanten Aktualisierungen festgelegt werden kann.

Diese Revision wurde am 16. September 2011 um 09:51 Uhr von Scarabol erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Sicherheit, Paketverwaltung, System, Einsteiger, Aktualisierung

Passwort vergessen?