Remix.run Logo
AStonesThrow 20 hours ago

20 years ago: "Oh no, the distros are struggling over packaging! We've got apt, yum, dnf, rpm, nix, docker..."

https://m.xkcd.com/927/

For a long time, there was a pax debiana in my world. I used Ubuntu mostly (swapped to Debian and added Fedora towards the end) and the package management was really good. APT was a great tool and I got quite chummy with its ways. It was straightforward to keep my system updated and resolve dependencies. It was way smoother than any other updater system had been, even across major system upgrades.

I sort of lost it when snap started usurping stuff. I knew it was coming, because docker was already making inroads. Then we had flatpak and company. As an admin, as a system architect, I felt that's the point when I lost control of my system. It wasn't possible to know its update state anymore. It wasn't possible to centrally manage or monitor those updates. It became a free-for-all of self-updates and shadow updates. Ubuntu was also introducing livepatch and kernel updates that went outside the apt model.

I think that perhaps it became too great a burden for the major distros to be packaging all of their own downstream packages. Perhaps they saw the opportunity to offload some of that packaging burden on a really pro service that could just package everything, and make pan-distro packages available. If Debian and RHEL packagers are doing less downstream packaging, then perhaps they could focus on their core competencies. I noticed that nearly every Ubuntu package needed to include Ubuntu-specific tweaks, and basically when Ubuntu was already downstream from Debian, why should Canonical be maintaining every damn package themselves as well?

So what's the endgame for all this? Would apt or dnf/rpm eventually get abandoned and have them go all-in on a new system? Or does the proliferation and splintering continue? Many of us said that the beauty of Linux is our freedom of choice. Well there's too much choice. Look at Distrowatch and be paralyzed by not knowing what to choose. Windows or macOS on your desktop is easy to choose because there's... one of each.

When I visited Catalonia my friend took me to Carrefour. We strolled the aisles and I spotted pig-legs (jamon serrano) on every counter. A huge selection of eggs. Everything my stomach could desire. She led me into the olives aisle and gestured around to all the olives there. She said pick whichever I want. There were so many. They were all in fancy jars. I knew nothing of olives. I left without choosing any.

Linux will die a death of a thousand cuts, until some consolidation and unification can happen that's beyond the kernel.

miladyincontrol 17 hours ago | parent | next [-]

>APT was a great tool you had me up until this bit lol apt's spaghetti of software and state assumptions is horrendous. the software itself functions mostly fine for those who havent used more modern package managers, but the user experience itself is a nightmare as soon as you start needing anything outside the distro's default repos

AStonesThrow 14 hours ago | parent [-]

Look, no illusions or exaggerations here; APT is an imperfect tool and it's intricate, complex and unwieldy sometimes. But please consider the status quo ante. I've run Minix-286, OpenBSD, NetBSD, SunOS, HP/UX, and Linux, and in the years between 1990-2003, there were zero package managers in use.

Like literally APT did not exist, no predecessor existed, there was absolutely no package management for those systems. Or if there was, it was by script or some bespoke framework that came with the app you downloaded. There was 100% no system-wide management of what was installed on my computers.

I've been in states of recompiling the kernel from source. I've run those "./configure" scripts that came with GNU. I've fiddled with custom kernel configuration files and Tripwire databases that tried to keep track of everything there. I've applied patches issued by Sun Microsystems.

Absolutely none of that above jumble can hold a candle to the way we use APT today. I'm sorry you suffered nightmares and needed 3rd-party stuff. But it was a dream come true to type out a one-liner and have the system upgrade itself, accounting for all dependencies, replacing all necessary files, being aware of all config updates, leaving audit trails and versioned files. Simply like falling off a log at this point.

Who would ever go back? What can be simpler? It was simply the degrading of this unified control and the loss of a singular point of management that has begun to dismay us.

rollcat 9 hours ago | parent | prev | next [-]

Here's my €0.03:

I really wish Linux distributions started adopting a similar model to the BSDs. Ship a base system that's minimal but rock solid; stick to LTS kernels, etc. Issue patches/updates for security issues ONLY. Ship another major release once or twice a year. (Fedora Silverblue is kinda going in that direction.)

Everything else? Pick from Flatpak, Snap, or AppImage, but just go all-in on that. Focus all development on making the experience first-class. Let Gnome, KDE, etc ship their own builds.

The tricky question is how much to include in the base system vs Flatpak. It's kinda-obvious that for workstations, the installation media must ship enough GUI to get you a functioning desktop, a web browser, and an app manager ("store"). OpenBSD's base system includes X11 and a couple basic WMs, but the story is a bit more complex if your target audience is less technical.

This path would kinda dilute the difference between distributions, but that would actually be good for them. I already tell friends, if you want to try Linux, just pick between Ubuntu and Fedora. They're both OK.

Servers? Go all-in on Docker/Podman. There are plenty of existing distros that do exactly that.

tenebrisalietum 20 hours ago | parent | prev [-]

> until some consolidation and unification can happen that's beyond the kernel.

That's underway, it's called systemd.

Soon, something like Modal Systemd Installers: `systemd-msid`