• lemmyvore@feddit.nl
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 hours ago

    Because apt is fundamentally broken and it shows most readily on a desktop-oriented distro like Ubuntu.

    In order to benefit from packages not included by the distro you need to use 3rd party apt repos, but there’s no rule against those repos using package names used by another repo, including the distro’s repos. It could’ve also been fixed by identifying packages by [repo name + package name] instead of just [package name]… but it hasn’t.

    The result is that when Ubuntu packages get replaced by 3rd party packages by the same name it can mess up the dependency graph if the 3rd party repo isn’t super careful about it.

    It’s not a huge issue immediately after installing something but as time passes and more updates pile on top of each other (from both Ubuntu and the 3rd parties) it can get completely ruined and eventually the update solver can’t find an upgrade path anymore and you can’t use Ubuntu’s newer releases.

    At that point you have two options. One is to use an advanced solver like the one in aptitude, for example, but in order to fix the mess it will recommend to uninstall and reinstall a huge number of packages, including very core, essential packages, which is very risky and you lose the 3rd party stuff anyway. At which point you might as well use option two, which is to reinstall a newer Ubuntu release from scratch.

    Eventually after you go through this a few times it starts to get really annoying and you either get stuck on an old release out of dread, or you start looking for a distro that can be updated in-place indefinitely.