Because of something I did during an anthropology lecture, I learned the hard way to read the "The following packages will be REMOVED" list when upgrading a package to backports in Debian GNU + Linux.

dullbananas (Joseph Silva)@lemmy.ca to Linux@lemmy.ml – 402 points –
  1. I upgraded pipewire from stable to backports (I want to know if this is related to my problem why essential packages were removed)
Start-Date: 2024-09-18  14:59:02
Commandline: apt install libpipewire-0.3-0/bookworm-backports
Requested-By: dullbananas (1000)
Install: libpulsedsp:amd64 (16.1+dfsg1-2+b1, automatic), pulseaudio:amd64 (16.1+dfsg1-2+b1, automatic), pulseaudio-utils:amd64 (16.1+dfsg1-2+b1, automatic), libasound2-plugins:amd64 (1.2.7.1-1, automatic), policykit-1-gnome:amd64 (0.105-8, automatic), pulseaudio-module-bluetooth:amd64 (16.1+dfsg1-2+b1, automatic), libspeexdsp1:amd64 (1.2.1-1, automatic)
Upgrade: libspa-0.2-modules:amd64 (0.3.65-3+deb12u1, 1.2.3-1~bpo12+1), libpipewire-0.3-0:amd64 (0.3.65-3+deb12u1, 1.2.3-1~bpo12+1)
Remove: pipewire-pulse:amd64 (0.3.65-3+deb12u1), pipewire-audio-client-libraries:amd64 (0.3.65-3+deb12u1), t2-apple-audio-dsp-speakers161:amd64 (0.2.0-1), gnome:amd64 (1:43+1), gnome-remote-desktop:amd64 (43.3-1), pipewire:amd64 (0.3.65-3+deb12u1), gnome-shell-extensions:amd64 (43.1-1), gnome-shell:amd64 (43.9-0+deb12u2), pipewire-tests:amd64 (0.3.65-3+deb12u1), gdm3:amd64 (43.0-3), libspa-0.2-jack:amd64 (0.3.65-3+deb12u1), libspa-0.2-bluetooth:amd64 (0.3.65-3+deb12u1), pipewire-jack:amd64 (0.3.65-3+deb12u1), gstreamer1.0-pipewire:amd64 (0.3.65-3+deb12u1), t2-apple-audio-dsp-mic:amd64 (0.4.0-1), pipewire-audio:amd64 (0.3.65-3+deb12u1), pipewire-bin:amd64 (0.3.65-3+deb12u1), chrome-gnome-shell:amd64 (42.1-3), task-gnome-desktop:amd64 (3.73), gnome-session:amd64 (43.0-1+deb12u1), gnome-browser-connector:amd64 (42.1-3), gnome-core:amd64 (1:43+1), libpipewire-0.3-modules:amd64 (0.3.65-3+deb12u1), wireplumber:amd64 (0.4.13-1), gnome-shell-extension-prefs:amd64 (43.9-0+deb12u2), pipewire-alsa:amd64 (0.3.65-3+deb12u1)
End-Date: 2024-09-18  14:59:35

Start-Date: 2024-09-18  14:59:43
Commandline: apt install libpipewire-0.3-modules/bookworm-backports
Requested-By: dullbananas (1000)
Install: libconfig++9v5:amd64 (1.5-0.4, automatic), libxml++2.6-2v5:amd64 (2.40.1-3, automatic), libpipewire-0.3-modules:amd64 (1.2.3-1~bpo12+1), libffado2:amd64 (2.4.7-1, automatic)
End-Date: 2024-09-18  14:59:48

Start-Date: 2024-09-18  14:59:57
Commandline: apt install pipewire/bookworm-backports
Requested-By: dullbananas (1000)
Install: pipewire:amd64 (1.2.3-1~bpo12+1), pipewire-bin:amd64 (1.2.3-1~bpo12+1, automatic), wireplumber:amd64 (0.4.13-1, automatic)
End-Date: 2024-09-18  15:00:02
  1. I suspended the computer, and after resume, the lock screen was broken:
  • When I clicked on the password field, the text cursor only appeared for a split second, and I could not type in it
  • Clicking on the user switch button on the bottom right corner did nothing
  • A few times, the text "Authentication error" randomly appeared for a split second, probably for 1 frame
  • No way to reboot the normal way, because I could only use the power menu on the lock screen, which only has suspend
  1. I used the power button to reboot, and instead of GNOME, there was darkness
Debian GNU/Linux 12 dullbananas-macbookpro161 tty1

dullbananas-macbookpro161 login:
  1. I downgraded pipewire to stable
Start-Date: 2024-09-18  15:20:16
Commandline: apt install pipewire/stable
Requested-By: dullbananas (1000)
Downgrade: pipewire:amd64 (1.2.3-1~bpo12+1, 0.3.65-3+deb12u1), pipewire-bin:amd64 (1.2.3-1~bpo12+1, 0.3.65-3+deb12u1), libspa-0.2-modules:amd64 (1.2.3-1~bpo12+1, 0.3.65-3+deb12u1), libpipewire-0.3-modules:amd64 (1.2.3-1~bpo12+1, 0.3.65-3+deb12u1), libpipewire-0.3-0:amd64 (1.2.3-1~bpo12+1, 0.3.65-3+deb12u1)
End-Date: 2024-09-18  15:20:26
  1. I ran dpkg --verify and got this output
??5??????   /lib/modules/6.10.9-1-t2-bookworm/modules.alias
??5??????   /lib/modules/6.10.9-1-t2-bookworm/modules.alias.bin
??5??????   /lib/modules/6.10.9-1-t2-bookworm/modules.dep
??5??????   /lib/modules/6.10.9-1-t2-bookworm/modules.dep.bin
missing     /usr/share/dbus-1/services/io.snapcraft.Prompt.service
??5?????? c /etc/systemd/logind.conf
??5?????? c /etc/tlp.conf
??5??????   /lib/modules/6.10.8-1-t2-bookworm/modules.alias
??5??????   /lib/modules/6.10.8-1-t2-bookworm/modules.alias.bin
??5??????   /lib/modules/6.10.8-1-t2-bookworm/modules.dep
??5??????   /lib/modules/6.10.8-1-t2-bookworm/modules.dep.bin
??5?????? c /etc/gdm3/daemon.conf
missing     /etc/os-release.debootstrap
??5??????   /lib/modules/6.10.7-1-t2-bookworm/modules.alias
??5??????   /lib/modules/6.10.7-1-t2-bookworm/modules.alias.bin
??5??????   /lib/modules/6.10.7-1-t2-bookworm/modules.dep
??5??????   /lib/modules/6.10.7-1-t2-bookworm/modules.dep.bin
  1. I reinstalled systemd (not sure if this made a difference)
Start-Date: 2024-09-18  15:48:58
Commandline: apt install --reinstall systemd
Requested-By: dullbananas (1000)
Reinstall: systemd:amd64 (252.30-1~deb12u2)
End-Date: 2024-09-18  15:49:02
  1. I reinstalled gdm3, and immediately without me doing anything else, there was GNOME instead of darkness
Start-Date: 2024-09-18  15:51:49
Commandline: apt install --reinstall gdm3
Requested-By: dullbananas (1000)
Install: gnome-remote-desktop:amd64 (43.3-1, automatic), gnome-shell:amd64 (43.9-0+deb12u2, automatic), power-profiles-daemon:amd64 (0.12-1+b1, automatic), gdm3:amd64 (43.0-3), gstreamer1.0-pipewire:amd64 (0.3.65-3+deb12u1, automatic), chrome-gnome-shell:amd64 (42.1-3, automatic), gnome-session:amd64 (43.0-1+deb12u1, automatic), gnome-browser-connector:amd64 (42.1-3, automatic), gnome-shell-extension-prefs:amd64 (43.9-0+deb12u2, automatic)
Remove: tlp:amd64 (1.5.0-2), tlp-rdw:amd64 (1.5.0-2)
End-Date: 2024-09-18  15:52:05
  1. End of class

  2. I reinstalled tlp because installing gdm3 removed it

  3. After selecting an app search result, instead of a new window opening, an existing window was focused, and this led to me discovering that my built-in extensions were gone

  4. While writing this post, I got the idea of using the list of removed packages in the apt history log output from apt install libpipewire-0.3-0/bookworm-backports to see what packages to install again, so I did that, then I also had to uninstall firefox-esr again

  5. I rebooted, and my built-in extensions and other stuff were resurrected, so now I have full redemption

  6. Another Window Session Manager restored my windows in a way that pissed me off

(Failed attempts of recovery are not listed)

Edit: actually I made the mistake 1 minute before the start of class

70

And this is why you don't update your system while in the middle of something you need it for

Two things to change if you switch from Ubuntu to Debian:

  1. Add the systray icon extension from Ubuntu.
  2. Don't, please don't, forget to turn off auto updates

What is wrong with your system that requires disabeling updates?
Been running debian stable on a few hundred servers for 25 ish years.
And I always install and enable unattended upgrades. And it have never been a problem. Not even once.

When you boot up for a meeting and have to wait 10 minutes for updates to finish. Too much like Windows.

I am capable of running updates myself and I'd rather choose when they happen

Also, Nvidia

Where's the fun in that? You've gotta raw dog life to get your blood pumping.

^Hey, ^why ^are ^my ^prod ^credentials ^revoked? ^Guys?

This is why I love ostree distributions so much for my laptop. Not only can I safely update in class, I once switched distributions twice in one day of classes with only like 30s of total downtime, I just waited for the professor to go off on a tangent I didn't need to take notes about so I could reboot.

I do the same with nix, unless I'm fucking with the bootloader I'll do risky updates because I can always just boot a previous generation

Not everyone has that luxury though

True, I still think it's fair to criticize the package managers and distros for not anticipating this common scenario and having the ability to roll back easily. How many millions of Linux users have experienced this issue? I'll bet a few.

Debian, Gentoo come from another generation and sometimes it shows, I mean snapshots weren't even a thing yet AFAIK.

Actually, I don't think you could break a system in quite this way in Gentoo these days. Portage generally doesn't remove packages during upgrades (certainly not unrelated ones that would break the depgraph!). It would have exited with (in this case) a message about version conflicts before changing any packages and left it for the user to sort out. Modern versions of portage do a pretty good job of keeping you from shooting yourself in the foot by accident, while leaving you with a lot of leeway for doing so on purpose.

This is one of the reasons I love nix. Most of the time if I break it I just roll back, if I really fuck it up I just reinstall, rebuild my config and I'm back

I used to update my laptop in class because my school's WiFi was so much faster than my home internet.

Good person! This is how you learn Linux and gain experience. Trying to understand why something happened and trying to fix it using that understanding. Not "just reinstall" or worse "you should use X distro instead."

And for the full Linux experience do it at the perfect moment, such as when you're in a lecture or customer presentation!

This doesn't feel like something that should happen. Like at all. I don't want experience repairing stuff. I want stuff not breaking. I know mos tpeople here treat a OS like a hobby, but for most people its a tool.

1 minute before class: the perfect time to mess with Linux audio and video drivers.

This is why I use Debian 12 with minimal backports on my main college laptop. (I just have backports kernel and firmware for the Wi-Fi card as well as backports smartctl due to a bugfix).

As long as you can log into a shell and get root permissions, everything's fine.

On nixos i managed to uninstall nix (package manager), remove my user account, git, ls, WiFi drivers and basically everything else

I can't remember how I rescued it now but managed to get it back without a reinstall

I can't remember how I rescued it now but managed to get it back without a reinstall

You could've booted into a previous generation where you still had all those things on your system. The glory of atomic distros :)

I could have done that had I not deleted all previous generations in an attempt to make space for the update

I really wonder how you managed to uninstall nix. Editing configuration.nix shouldn't even allow for removing .nix...

Anyway, this post made me remember why I used btrfs for my new btrfs system.

Damn, I didn't even realize that was doable lol. At least the nix part, the rest definitely sounds like stuff I might've accidentally done myself while learning the ropes.

as long as you have access to the boot drive everything's fine, just varying degrees of painful to rectify.

When you do a dist-upgrade on anything but the stable main repos, you're on your own.

yum history undo last

There's a colossal amount of work that goes into making that command usable and reliable, and I'm glad to say the yum-adjacent distros are still putting in the effort. That may change, but so far it's been there to save my bacon when I need it.

kinda love how you used gnome with macbook it fits soo well

There's something very appropriate about you using all those (system) tools during an anthropology lecture.

That's why it's a good idea to take a btrfs snapshot before updating or changing things. Snapshots are almost instant and sure save a lot of work if you break something.

Congratulations 🎉 Nice work figuring it out.

Gotta love the idea that when you uninstall a package all the packages that depend on it must be removed for consistency.

Out of curiosity, what were you looking to gain from the pipewire upgrade?

Debian GNU/Linux 12 dullbananas-macbookpro161 tty1

dullbananas-macbookpro161 login:

What more do you need?!

Lol but seriously,

Remove: ...gnome-shell...

That'll do it.

You should consider setting up btrfs w/ Timeshift.

That’s a fun mistake to make. I had a similar thing happen with Kubuntu uninstalling my GPU drivers. I could never figure out what caused it.

At least you got to multi-user.target. I've done worse to my arch system that needed an entire chroot reinstall

I feel you. I once was messing around with python and realized I had too many python versions installed for no reason, so I uninstalled them all to install a single one.

Oh the pain.

Newer versions of apt now have coloured text showing what will be installed (green) and what will be REMOVED (red)

Handy feature for someone like me who also makes mistakes

Reminds me of what happened with PopOS. I did not expect this to happen with Debian. I'm glad you figured something out and have a working system again! Maybe we really need Atomic style distributions for stable environments.

You might be interested in reading the Unix Haters Handbook. I mean, that the command to install a backport so easily allowed you to remove core packages without a... Better warning, is an old complaint

So I got this error alot with elementaryOS doing exactly what you did. And it was always some dependency like lightDM not initiating properly.

(Failed attempts of recovery are not listed)

Would be interesting though

Yet even without a WM, still better than macOS

Hard lesson to learn, I've been taught the same myself.

Some others have said it already, but I will repeat the gospel, use Timeshift!

I did nearly the exact same thing you did on my Debian laptop at a tech conference right at the beginning of an important session.

I decided to mess around with my wireless drivers. IDK why I thought that was a good idea, I don't remember what I was trying to do, but I borked my networking stack completely.

couldn't get it to reconnect, couldn't get the settings to revert or anything.

I quickly ran Timeshift and selected my most recent automatic daily restore point. 5 minutes later I was back 100% Internet was working perfectly, nothing funky, and I was able to catch up and follow the lecture again.

Timeshift is awesome too because it runs from the command line if you need it to. So even borking your GUI isn't a death sentence, you can still run Timeshift from the terminal and restore your system.

Eh, at least you can still take notes very easily and reinstall DE later.

This was definitely one of my least favorite things when I used Debian.

It shows that we need to think about how users are performing tasks and how to intuitively make their usage more successful. The OS should try to get out of the way and always have the ability to easily revert in the case of platform failure.

There should be an undo oopsies feature you can turn on and off somewhere so in terminal when I accidentally rm -f * the entire system doesn't eat it's own tail.

This is a fascinating concept.

If files are removed from the Index it would only seem natural that they can be undeleted until their physical address is recycled and overwritten.

In fact I remember something like this pre Windows 95 era where files were crossed out. Undeleting them was like magic.

This is why the windows term "Recycle" is more appropriate because the data remains until the space is reused or zero'd out.

This is the kind of reexamining we need, does our current iteration make sense from an engineering perspective or is it just a evolution of a bunch of archaic stuff from a time that doesn't represent the present tech world at all.

I would be okay with replacing rm with recycle and shred as their function is more clear in the name.

Yes. Potentially make it wipe the undo action saved after a second reboot. As in;

1."sudo apt dist upgrade -reverttool"

2.reboot #1

3.oops bricked my dependencies

4.sudo "ah shits fucked -reverttool!"

5.reboot #2

6.-reverttool completed the reversion of "sudo apt dist upgrade"

ALTERNATIVELY

1.sudo apt dist upgrade -reverttool

2.reboot #1

3.everything worked

4.forget about the -reverttool

5.reboot #2

6.-reverttool wipes it's /tmp/revert.txt until next command.

While that sounds good it would be extremely complex to actually implement. The only real-world feature like this is btrfs snapshots (or filesystem snapshots generally). The good thing is that snapshots only store the difference in data and so they don't have to take up much space.

I still have to set mine up for my laptop. I'm using mine for dev use raw. No protection. Or backups

It just wanted to remove French, ofc I said yes!!

But also, honestly, I always "-y".
The gamble is I'll have to use an earlier bitchtree btrfs snapshot.

And thx for the great commentary on point 13.

If only you had timeshift and a CoW filesystem ;) rollbacks are easy peasy then!

I have tries the same on Ubuntu. It was also the desktop that had gotten removed, because if pipewire. Silly computer.

You should consider switching to some immutable distro like Silver Blue, uBlue, etc. for the peace of mind and the easiness to revert back to some stable system. I am currently using one in conjunction with Nix and it is truly a blessing.

That's exactly what I was thinking lol. There are debian based immutable systems that would be great for this setup

Yeah, I realise a comment like this is mostly unhelpful (switching distros is a pain, of course - even just the hassle of moving over your data), but it does remind me how glad I am that I did it at some point. Painless upgrades are amazing.

(That said, it's not entirely risk-free; although I never got an unworkable system, at some point upgrades were blocked until I did some manual work. Universal Blue had similar issues.)

Okay, here me out, but the other day I accidentally rebased my nvidia Bazzite system to the testing version of the deck image. It would fuzz out before even the bios splash. So yeah, you can still mess it up lol