this post was submitted on 09 May 2026
28 points (100.0% liked)

technology

24367 readers
277 users here now

On the road to fully automated luxury gay space communism.

Spreading Linux propaganda since 2020

Rules:

founded 5 years ago
MODERATORS
 

Yesterday, I opened Software Sources on Linux Mint and changed the base mirror from archive.ubuntu.com to a different website, hoping this would fix a 0% [waiting for headers] issue I kept running into when I tried installing software. It did fix that issue, but shortly after I applied that fix my computer's keyboard got stuck in Japanese, which freaked me out so I rebooted my computer. I was then greeted by an error message from Ibus about how several of my keyboard layouts apparently didn't exist. Indeed, I suddenly only had a Norwegian and Japanese keyboard to choose from, and Ibus no longer listed my preferred Russian, Esperanto, and Amharic keyboards as options. I soon enough managed to figure out that ibus-m17n had somehow been uninstalled, so I reinstalled it and set up my preferred keyboard layouts again.

Today I changed my base mirror back to archive.ubuntu.com and restarted my computer… annnnnnd now I'm discovering that a bunch of my other shit has just straight up disappeared: Inkscape, Kdenlive, GIMP, these three programs were all apparently uninstalled without my knowledge. If any other programs I use have been uninstalled I am yet to become aware of this. Thankfully, all the programs I noticed were missing were easy to reinstall, and I can jump back into my projects like literally nothing happened. But it's still really damn uncomfortable to suddenly realize that a bunch of my important programs just up and disappeared.

All of this apparently happened (correct me if I'm wrong!) because APT — which is the thingy that handles installing/uninstalling software on Linux Mint — can become convinced that you have obsolete or conflicting packages if you're switching to or from out-of-sync mirrors, or mirrors with bad metadata or whatever; and when APT thinks you have bad packages, it'll just unquestioningly yeet them. In my case the damage this behavior caused seems minimal enough that it's not worth the risk of using Timeshift (I still remember what happened last time I used Timeshift! I ended up breaking initramfs so I couldn't even boot my computer without selecting an older kernel!!), so I'll just reinstall any missing software I notice and take the L. But I'm definitely not going to make that mistake again in case it causes even worse trouble for me the third time, and you should also be advised that changing package mirrors, especially after you've been on Linux Mint for a while, can cause you this sort of trouble.

you are viewing a single comment's thread
view the rest of the comments
[–] trompete@hexbear.net 3 points 4 days ago (1 children)

APT has a fancy constraint solver included, it tries to satisfy all packages being compatible with each other. Packages have metadata. Example snippet from apt show sudo:

Depends: libapparmor1 (>= 2.7.0~beta1+bzr1772), [...]
Conflicts: sudo-ldap
Replaces: sudo-ldap

It needs all the stuff that's in listed as a dependency, with the correct version, and it says you can't have sudo-ldap at the same time. If I were to try and install sudo-ldap, it would yeet sudo. It does show you this and asks if you want to continue though.

In this case, this is by design, the sudo packagers made it so you can choose between the LDAP-enabled version of sudo and the regular version (most people don't use LDAP).

But if you mix-and-match packages from various distros or versions of distros, it will have a hard time satisfying all the "Depends:" stuff, due to differences in versions and sometimes package names, and often it finds the "solution" is to uninstall a whole bunch of stuff.

I suspect you didn't switch just the mirror, but to a different repository with different packages. Possibly a different version of Ubuntu.

This is one of the reasons I kinda like the atomics and try and have newer users install them instead. When everything is a containerized image, including your kernel, it's way easier to switch dependencies and roll back when you fuck something up. Especially since layering a package on the root fs triggers a snapshot.