#!/bin/bash

# Dieses Skript aktualisiert ein Debian-System, indem es die Paketlisten aktualisiert, installierte Pakete auf die neuesten Versionen bringt, nicht mehr benötigte Pakete entfernt und den Paket-Cache bereinigt. Wenn ein Neustart erforderlich ist, wird eine entsprechende Meldung ausgegeben.

set -e

# Das komplette Skript muss als root laufen
if [ "$(id -u)" -ne 0 ]; then
    echo "Dieses Skript muss als root ausgeführt werden:"
    echo "sudo $0"
    exit 1
fi

# Rückfragen und Dialogfenster unterdrücken
export DEBIAN_FRONTEND=noninteractive
export DEBIAN_PRIORITY=critical
export NEEDRESTART_MODE=a
export APT_LISTCHANGES_FRONTEND=none
export UCF_FORCE_CONFFOLD=1

echo "Paketlisten werden aktualisiert ..."
apt-get update

echo "Pakete werden aktualisiert ..."
apt-get -y \
    -o Dpkg::Options::="--force-confdef" \
    -o Dpkg::Options::="--force-confold" \
    -o Dpkg::Use-Pty=0 \
    dist-upgrade

echo "Nicht mehr benötigte Pakete werden entfernt ..."
apt-get -y \
    -o Dpkg::Options::="--force-confdef" \
    -o Dpkg::Options::="--force-confold" \
    -o Dpkg::Use-Pty=0 \
    autoremove

apt-get clean

echo "Debian-Update erfolgreich abgeschlossen."

if [ -f /var/run/reboot-required ]; then
    echo "ACHTUNG: Ein Neustart des Systems ist erforderlich."
fi