Upgrade DietPi to Debian Trixie
I have DietPi running on an Orange Pi 5 Plus. The services that DietPi runs include: Pihole + local unbound, my private FreshRSS instance, my private Nextcloud instance, Prometheus node-exporter, a Docker container for the Tapo P110 Prometheus exporter, a Docker container for the qBittorrent exporter, and a Docker container for the Ntfy service.
Attempt 1
On the DietPi website, they mention using a script to upgrade DietPi from Bookworm to Trixie. I ran the following command:
sudo bash -c "$(curl -sSf 'https://raw.githubusercontent.com/MichaIng/DietPi/dev/.meta/dietpi-trixie-upgrade')"
This script is well-designed and well-written. It offers the user a
chance to run DietPi-backup before proceeding, which I did. After the
backup completed, I followed the menu options to initiate the upgrade
process. This ran well until it wanted to upgrade Docker packages, such
as docker-compose-plugin. The upgrade script downloads a
docker-compose .deb package and attempts to install it, but
it conflicts with the already-installed
docker-compose-plugin package, and apparently dpkg didn’t
know how to proceed. This left my DietPi system in a misconfigured and
broken state. I was able to run the dietpi-backup script to
restore the backup that was done prior to running the upgrade script. I
then rebooted.
Attempt 2
On the freshly booted and restored DietPi system, I ran the following command to remove all Docker-related packages before trying the upgrade script again.
sudo apt remove docker.io docker-doc docker-compose podman-docker containerd containerd.io runc docker-compose-plugin
I then ran the upgrade script with the same command as above, and it succeeded. I rebooted, then ran the following commands to finalize the upgrade and install Docker again.
sudo apt autopurge
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Pihole, FreshRSS, and Nextcloud were migrated seamlessly, the latter
two now using updated versions of PHP and MySQL. After running
docker ps, I noticed my containers are running, and I
didn’t have to reconstruct or rebuild any of them. Their data is mostly
stored under /mnt/dietpi_userdata/docker-data, which was
left untouched when I removed and reinstalled Docker.
Yay!