![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I discovered that Debian 13 Trixie is not ready yet for everyday consumption, lacking not only packages bundled with Ubuntu such as sssd and dmraid, but also such my favorites as deborphan and crack-attack, which all are provided by Debian 12 Bookworm.
So I concentrated my efforts on improving scripts morphing Noble and Trixie into Bookworm
The steps are similar to those of upgrading Ubuntu 22.04 Jammy to Bookworm described at muwlgr.dreamwidth.org/52552.html :
The scripts are at github.com/muwlgr/scripts/raw/main/upgrade-noble-to-bookworm.sh and github.com/muwlgr/scripts/raw/main/upgrade-trixie-to-bookworm.sh , the latter being a minimal customization of the former, which I tested on Ubuntu 24.04 Noble Server, GNOME3 and Kubuntu/KDE virtual machines, as well as on my own laptop where I upgraded Kubuntu Noble to Trixie and then from Trixie to Bookworm.
Probably I could restructure upgrade-jammy-to-bookworm.sh into the same form as well.
I have one important Jammy host with MySQL 8.0 server, and finally, recently we have got MySQL 8.0 built for Bookworm by its vendor, so it would be useful and instructive thing to do.
Upgrade notes are mostly the same:
So I concentrated my efforts on improving scripts morphing Noble and Trixie into Bookworm
The steps are similar to those of upgrading Ubuntu 22.04 Jammy to Bookworm described at muwlgr.dreamwidth.org/52552.html :
- Save initially-installed package lists and states, to be able to restore them in the future
- Strip the system from non-essential packages to simplify upgrade of essential ones (small research on this topic can be seen at muwlgr.dreamwidth.org/52742.html)
- Attach to Bookworm APT sources and disable sources for Trixie or Noble. Update package lists
- Upgrade apt, dpkg, e2fsprogs, gzip to Bookworm-specific versions first, as they could break when upgraded along the rest packages.
- Upgrade shim-signed to allow it being temporarily removed on the next step
- Upgrade libapt-pkg6.0, watching for its potential loss of shared libraries, and reinstall manually-downloaded .deb with dpkg if this happens.
- Upgrade all the rest packages except base-files, watching and fixing potentially missing shared libraries. Repeat this second time if needed
- Remove t64 libs which are not provided by Bookworm
- Upgrade base-files
- Reinstall everything possible from saved lists
- Install Debian's kernel and firmware packages
- Remove running kernel
- Remove extra packages pulled in by Debian's apt
The scripts are at github.com/muwlgr/scripts/raw/main/upgrade-noble-to-bookworm.sh and github.com/muwlgr/scripts/raw/main/upgrade-trixie-to-bookworm.sh , the latter being a minimal customization of the former, which I tested on Ubuntu 24.04 Noble Server, GNOME3 and Kubuntu/KDE virtual machines, as well as on my own laptop where I upgraded Kubuntu Noble to Trixie and then from Trixie to Bookworm.
Probably I could restructure upgrade-jammy-to-bookworm.sh into the same form as well.
I have one important Jammy host with MySQL 8.0 server, and finally, recently we have got MySQL 8.0 built for Bookworm by its vendor, so it would be useful and instructive thing to do.
Upgrade notes are mostly the same:
- Special Debian account for gdm3, different from that of Ubuntu
- Separate step of shim-signed upgrade to allow it to be removed/reinstalled later (Ubuntu version is marked critical and is not allowed to be removed)
- gnome-session in Debian instead of ubuntu-session in Ubuntu
- Split firmware packages in Debian, as well as differently-named linux-image and linux-headers packages
- Apparmor configs need to be purged before installation of its lower version.
- Some Bookworm libraries are not migrated to t64 (64-bit time_t).
When their lower non-t64 version is installed, it replaces .so files in higher t64 installed version.
Later, when t64 version is removed, it removes these .so files according to its list, so they become unavailable to dependent packages.
I added a step to handle this kind of failures, where all dynamically-linked ELF executables are checked with ldd , all .so files not found by ldd are traced to their packages, and these packages are reinstalled either by apt reinstall or by dpkg -i as with libapt-pkg6.0.
The worst offenders were libssl3 breaking systemd, libgdbm6 breaking man-db, and libdb5.3 breaking python3 , apt-utils and don't remember what else - Beware that there could be times where important packages are temporarily uninstalled from your system (such as kernel, firmware, network-manager, grub or shim-signed) so it could become unbootable or un-networked if you decide to reboot or reset it during these periods.
- firefox-esr provided by Debian stable is at older version and would not open profiles upgraded to higher Firefox versions.
It is possible to use Firefox builds from Ubuntuzilla, from Mozilla itself and/or probably from LinuxMint - On the completion of upgrade script, review what has changed (etckeeper would be helpful), what packages you might have lost (comparing current package lists with saved ones), what is left over from now-disconnected Ubuntu or Debian version (aptitude search '~o'), what firmware is potentially missing after the reboot (dmesg | grep -i firm , also look for update-initramfs messages when it updates initrd files)