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

  • cerement@slrpnk.net
    link
    fedilink
    arrow-up
    14
    ·
    edit-2
    1 year ago
    • xkcd: Standards
    • one of the most unappreciated aspects of any package manager is how they handle dependency resolution – the modern formats (Flatpak, Snap, AppImage) “solve” the problem by completely ignoring it altogether and just shoving everything-and-the-kitchen-sink into one blob – which works great as long as storage remains cheap or you’re not trying to develop for embedded systems
    • GNU has a package manager – and it’s being used in a current distro
    • GNU development tends to be glacial even compared to something like Debian – the GNU kernel is 33 years old at this point …
    • Kusimulkku@lemm.ee
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Flatpak uses runtimes, which is sorta a middle point between traditional package way and and bundling everything. Quite a nice compromise imo

      • cerement@slrpnk.net
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        had to doublecheck myself …

        • yes, Guix uses the Guix package manager
        • but apparently the Guix package manager is built off (at least the concept) of Stow ?
        • [and then some people also seem to like using Stow and Guix together (similar to using Home Manager with Nix package manager)]
  • nyan@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    1 year ago

    Linux mostly follows POSIX standards, even though it’s never been certified as compliant, so much code targeting POSIX systems runs on Linux too. In other words, it didn’t establish any standards so much as adopt one that already existed.

    There is no POSIX standard for package managers, however.

  • nous@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Damn how does Linux have standards !?

    Linux has standards where interoperability is important. The more things needs to talk to each other the more they need a common standard to talk over. Things like X11/Wayland don’t have many alternatives as so many things need to talk over them. The only reason there are two standards here is because X11 has massive limitations that cannot easily be worked around.

    For package managers applications don’t care about them. Interoperability only matters within a single distro. So people are more free to create what ever standards they want for their own distros. And when people can choose people have opinions and these opinions evolve over time. Which results in multiple competing products that effectively do the same thing.

    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

    Probably, but creating a good, easy to work, fast and reliable package manager that meets everyones needs when you are discovering how you want it to work for the first time is extremely hard. And even if you created a perfect one at the start, requirements can change. This happened with X11, and even with package managers seeing the rise of things like flatpack, snap and appimage that all work fundamentally different from the traditional ones.