Just saw a post of a novice user asking why are there so many package managers.

At first I was about to copy and paste the good old “The OS is yours if you want to make a different package manager you can, and many did”.

But then I though

Damn how does Linux have standards !?

And reached a somewhat of conclusion that many of the established standards were established at the early stages of the project, there are of course those who change like the transition from X11 to Wayland the upcoming desktop portals and such.

And here is my hipotesis if the GNU project came up with a good and easy to work package manager in the early days of Linux, do you think we would have so many different ones? Maybe even win the desktop war (OS not DEs)?

Edit: replace package manager with packaging format

  • ransomwarelettuce@lemmy.worldOP
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    OK maybe what I meant was a packaging format and not a package manager, above there was a user that mentioned that all distros have their quirks and kinks, if GNU created a package manager that worked perfectly at first time maybe it’s adoption would go across the distros but as u said to make it perfect the first time is something hard and even harder on early days where nothing was set on stone and there would be always the odd one that would make their package manager.

    But if we all agreed early on, one one packaging format (which of course would have to go through many iterations to reach a stable state ) all package format wars would be over and in well implemented ecosystem of package managers of each distro, it would be also an somewhat interoperable one.

    • nous@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 year ago

      The package format is almost irrelevant TBH. Most packages are not interoperable between distros due to the versions and names of dependencies. That is not something that gets fixed by a standard package format. Packages don’t even work well between different versions of the same distro. largely due to libc - anything that depends on that is built against a specific version and when you upgrade it you need to rebuild and install everything that depends on it. Similar problems exist for all compiled dependencies on a distro.

      And while some packages of the same format can be installed on multiple distros (mostly those based of the same foundation) most cannot. This is what the newer package formats (like flatpack) are trying to solve - by including all dependencies inside the package.

      So a standard format does not really solve those issues, so there is little advantage for one. At least not one of the old school formats. And the wars are not really over the format, they are over the tooling required for that format. At the end of the day RPMs, DEBs, and arch packages are just tarballs of files and some meta data (and there is even a tool that can convert between them - though anything with dependencies quickly becomes a complete mess). It is the build and install tooling that makes all the difference.

      • ransomwarelettuce@lemmy.worldOP
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Oh … thx for the insight, it was a daydream anyways looks like the only solution is cloud native if one wants uniformity, still a bit hesitant to have a system so stable I can’t change it’s core filesystem.