Es empfiehlt sich, das Update in einer tmux
- oder screen
-Session durchzuführen, um nicht durch eine unterbrochene SSH-Verbindung den Upgrade-Prozess abzuschießen!
Vor dem Update sicherstellen, dass es ein aktuelles und funktionierendes und wiederherstellbares Backup gibt.
Bei älteren Systemen diese erst auf bullseye aktualisieren. Innerhalb von bullseye auch zuerst einen aktuellen Stand herstellen.
You should make sure the package database is ready before proceeding with the upgrade. If you are a user of another package manager like aptitude
or synaptic
, review any pending actions. A package scheduled for installation or removal might interfere with the upgrade procedure. Note that correcting this is only possible if your APT source-list files still point to bullseye and not to stable or bookworm.
It is strongly recommended that you use the /usr/bin/script program to record a transcript of the upgrade session. Then if a problem occurs, you will have a log of what happened, and if needed, can provide exact information in a bug report. To start the recording, type:
# script -t 2>~/upgrade-bookwormSTEP.time -a ~/upgrade-bookwormSTEP.script
or similar. If you have to rerun the typescript (e.g. if you have to reboot the system) use different step values to indicate which step of the upgrade you are logging. Do not put the typescript file in a temporary directory such as /tmp
or /var/tmp
(files in those directories may be deleted during the upgrade or during any restart).
The typescript will also allow you to review information that has scrolled off-screen. […]
NB: In tmux
kann man in der Standard-Config (grüne Statusleiste unten) mit Ctrl-B PgUp, in der grml-Config (schwarze Statusleiste unten) mit Ctrl-A PgUp scrollen. Scrollmodus verlassen mit q.
After you have completed the upgrade, you can stop script by typing exit
at the prompt.
apt will also log the changed package states in /var/log/apt/history.log
and the terminal output in /var/log/apt/term.log
. dpkg will, in addition, log all package state changes in /var/log/dpkg.log
. If you use aptitude, it will also log state changes in /var/log/aptitude
.
If you have used the -t switch for script you can use the scriptreplay program to replay the whole session:
# scriptreplay ~/upgrade-bookwormSTEP.time ~/upgrade-bookwormSTEP.script
Das aptitude
in den folgenden Zeilen ist nicht aus den Debian-Release-Notes, aber Thomas mag es lieber als apt
.
Finden:
apt list '~o' aptitude search '~o' apt list '?narrow(?installed, ?not(?origin(Debian)))' aptitude search '?narrow(?installed, ?not(?origin(Debian)))' apt install apt-forktracer apt-forktracer | sort
Entfernen:
apt purge '~o'
Pakete, die von uns selbst eingebracht wurden, sollten konfiguriert belassen werden:
tivsm-*
(s. u.)gskssl
(s. u.)gskcrypto
(s. u.)sssd
ganeti*
adcli
Das Paket systemd-journal-persistent
ist obsolet und kann entfernt werden. Das Verzeichnis /var/log/journal
sollte auch bei einem Purge überleben, da es nicht leer ist, ggf. aber zur Sicherheit überprüfen.
Die TSM-Pakete sind prinzipiell durch das CommVault-Backup obsolet, könnten aber möglicherweise nochmal relevant sein um Backups vor der Umstellung im Januar 2023 zu restoren. Also eher unwahrscheinlich.
find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
dpkg --audit
Holds überprüfen:
apt-mark showhold
Pinning (/etc/apt/preferences{,.d}
) überprüfen.
APT needs gpgv version 2 or greater to verify the keys used to sign releases of bookworm. Since gpgv1 technically satisfies the dependency but is useful only in specialized circumstances, users may wish to ensure the correct version is installed with:
# Installiert und markiert es als Dependency (so als würde man `apt-mark auto` hinterherschieben), idempotent wenn schon installiert aptitude install gpgv+M
Nicht-offizielle Quellen ggf. temporär entfernen; Codename anpassen:
sed -i s/bullseye/bookworm/ /etc/apt/sources.list.d/* systemd-detect-virt -q || sed -i -E '/non-free/{p;s/(non-free)/\1-firmware/}' /etc/apt/sources.list.d/*
Ggf. eine Maintenance/Silence in Zabbix und Prometheus einstellen.
Der übliche Drei-Schritt-Prozess, natürlich mit neuen Commands:
apt update apt upgrade --without-new-pkgs apt full-upgrade
Einige Körner auf die Enter-Taste streuen. Zu Risiken und Nebenwirkungen den entsprechenden Abschnitt der Release Notes konsultieren.
shutdown -r now
Postgres-Cluster von 13 (bullseye
) zu 15 (bookworm
) upgraden:
pg_dropcluster 15 main --stop pg_upgradecluster --no-start 13 main
Die /var/lib/postgresql/15/main/postgresql.auto.conf
überprüfen, sie sollte enthalten:
archive_mode = 'on' archive_command = 'run-parts --report --arg=%p --arg=%f --arg=pgbackrest /etc/postgresql/wal-archive'
pgBackRest updaten:
sed -i s,/var/lib/postgresql/13/main,/var/lib/postgresql/15/main, /etc/pgbackrest.conf sudo -u postgres pgbackrest --stanza=main --no-online \ --log-level-console=info stanza-upgrade
Neuen Cluster starten:
pg_ctlcluster 15 main start
Check:
pg_lsclusters sudo -u postgres pgbackrest --stanza=main check
Alten Cluster entfernen:
pg_dropcluster 13 main apt purge postgresql-13 postgresql-client-13 postgresql-contrib-13
Pfade in CommVault anpassen.
Obsolete Pakete aufräumen:
apt list '~o' aptitude search '~o' # Liste überprüfen! apt purge '~o' aptitude purge '~o'
Pakete mit übrig gebliebener Config:
apt list '~c' aptitude search '~c' apt purge '~c' aptitude purge '~c'
Allgemeines aufräumen:
apt autoremove --purge apt clean find /etc -name '*.dpkg-*' -or -name '*.ucf-*' -or -name '*.merge-error'
Externe Quellen wieder einbinden und mit dem üblichen Prozedere updaten und upgraden.
Stand 2023-08-07 hat das Ansible noch keine Anpassungen für bookworm
. Nach Möglichkeit mit –check
vorab überprüfen und ggf. anpassen. Achtung auch mit noch offenen, aber bereits umgesetzten Merge Requests, vor allem Postgres!
shutdown -r now
Manuelle Prüfung des Systems. Auch schauen, ob das Monitoring zufrieden ist.
Monitoring wieder scharf schalten.