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.
I upgraded pipewire from stable to backports (I want to know if this is related to my problem why essential packages were removed)
I reinstalled tlp because installing gdm3 removed it
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
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
I rebooted, and my built-in extensions and other stuff were resurrected, so now I have full redemption
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
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.
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.
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
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."
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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.