Kategorie: Debian
Erstellt: 22.06.2017
Aktualisiert: 02.07.2020
Ab Debian 8 funktioniert die Aktualisierung einer Debian-Installation auf die nächste größere Versionsummer ziemlich reibungslos. Je nach Geschindigkeit des Servers und Dauer des Reboots ist ein Upgrade meistens in unter 15 Minuten erledigt.
Aktualisieren Sie Debian Linux immer nur von einer Version auf die nächsthöhere, überspringen Sie also keine Versionen!
Um einen Server von Debian 8 auf Debian 10 zu aktualisieren, müssen Sie erst von 8 auf 9 und anschließend von 9 auf 10 aktualisieren. Rebooten Sie dabei auch jedesmal den Server!
Mit folgenden Schritten führen Sie das Upgrade durch:
/etc/apt/sources.list
(jessie
durch stretch
ersetzen)/etc/apt/sources.list.d/liveconfig.list
apt update
ausapt install apt dpkg
ausapt upgrade
ausapt full-upgrade
aus. Zwischendurch werden Sie gefragt, ob einige vorhandene Konfigurationsdateien ersetzt werden sollen - in den meisten Fällen besser nicht (mit nein antworten).apt-get autoremove
aus, um alle nicht mehr benötigten Pakete zu löschenapt upgrade
aus, um ggf. die MariaDB-Umstellung abzuschließen (siehe Abschnitt Mögliche Probleme)
Während eines Upgrades wird PHP nicht automatisch auf Version 7 aktualisiert. Wenn Sie das wünschen, gehen Sie wie folgt vor:
apt remove php5-cli php5-cgi php5-common
apt install php-cli php-cgi
service liveconfig restart
ProFTPD: auf virtualisierten Servern haben wir vereinzelt festgestellt, dass apt während des Upgrades des ProFTPD-Paketes hängen bleibt. Das lässt sich leider auch nicht mit strg + c abbrechen. In diesem Fall per SSH eine zweite Verbindung zum Server aufmachen, den Prozess mittels ps aux | grep frontend
heraussuchen und mit einem INT-Signal unterbrechen:
# ps aux | grep frontend
root 30473 0.0 0.8 64756 18304 pts/2 S+ 13:24 0:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/proftpd-basic.postinst configure 1.3.5-1.1+deb8u1
# kill -INT 30473
NGINX: wenn NGINX durch LiveConfig verwaltet wird, kann es während des Upgrades zu einer Fehlermeldung kommen:
Setting up nginx-full (1.10.3-1) ...
[FAIL] Upgrading binary: nginx failed!
invoke-rc.d: initscript nginx, action "upgrade" failed.
[FAIL] Restarting nginx: nginx failed!
invoke-rc.d: initscript nginx, action "restart" failed.
dpkg: error processing package nginx-full (--configure):
subprocess installed post-installation script returned error exit status 1
Prüfen Sie, ob die Datei /etc/nginx/nginx.conf
eine Zeile mit der Anweisung ssl_prefer_server_ciphers on;
enthält. Falls ja, kommentieren Sie diese aus und starten NGINX anschließend neu.
Sollte es noch immer zu Fehlern kommen, prüfen Sie die Datei /var/log/nginx/error.log
.
OpenDKIM: falls die Datei /etc/default/opendkim
während des Upgrades überschrieben wird, dann enthält diese die Anweisung RUNDIR=/var/run/opendkim
. Das ist falsch und muss auf RUNDIR=/var/spool/postfix/opendkim
geändert werden. Anschließend müssen Sie das Script /lib/opendkim/opendkim.service.generate
ausführen, damit die Änderung in die systemd-Konfiguration übernommen wird.
Dovecot: es kann sein, dass Dovecot nicht startet weil in der Datei /etc/dovecot/dovecot.conf die Anweisung ssl_protocols = !SSLv2 !SSLv3
enthalten ist. Speichern Sie (wie oben beschrieben) über LiveConfig die Dovecot-Konfiguration neu ab, anschließend können Sie Dovecot wieder starten.
MariaDB: beim Upgrade auf Debian 9 wird MySQL durch MariaDB ersetzt. Dabei kann es während des Upgradevorgangs zu folgender Fehlermeldung kommen:
Setting up mariadb-server-10.1 (10.1.23-9+deb9u1) ...
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
* mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mariadb.service.d
`-whatever.conf
Active: failed (Result: exit-code) since Thu 2017-06-22 10:03:37 CEST; 14ms ago
Process: 13896 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=227/NO_NEW_PRIVILEGES)
Process: 13804 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
Process: 13801 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 13798 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Main PID: 13896 (code=exited, status=227/NO_NEW_PRIVILEGES)
Jun 22 10:03:37 preview systemd[1]: Starting MariaDB database server...
Jun 22 10:03:37 preview systemd[13896]: mariadb.service: Failed at step NO_NEW_PRIVILEGES spawningâ¦gument
Jun 22 10:03:37 preview systemd[1]: mariadb.service: Main process exited, code=exited, status=227/â¦ILEGES
Jun 22 10:03:37 preview systemd[1]: Failed to start MariaDB database server.
Jun 22 10:03:37 preview systemd[1]: mariadb.service: Unit entered failed state.
Jun 22 10:03:37 preview systemd[1]: mariadb.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: error processing package mariadb-server-10.1 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of default-mysql-server:
default-mysql-server depends on mariadb-server-10.1; however:
Package mariadb-server-10.1 is not configured yet.
dpkg: error processing package default-mysql-server (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on default-mysql-server; however:
Package default-mysql-server is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mariadb-server-10.1
default-mysql-server
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Der Grund hierfür liegt häufig darin, dass der Server noch mit einer zu alten Kernel-Version läuft - Abhilfe ist also erst den Server neu zu starten (läuft dann mit Kernel 4.9.x aus Debian Stretch) und anschließend noch mal mittels apt install mariadb-server-10.1
die MariaDB-Installation anzustoßen. Nicht wundern, das kann einige Minuten dauern!