Comment by forrestthewoods

Comment by forrestthewoods 19 hours ago

24 replies

It’s a bloody shame that Linux is incapable of reliable running software programs without layers and layers of disparate, competing abstractions.

I’m increasingly convinced that the mere existence of a package manager (for programs, not source code) is a sign of a failed platform design. The fact that it exists at all is a miserable nightmare.

Flatpak and Snap tried to make this better. But they do too much which just introduced new problems.

Steam does not have this problem. Download game, play game. Software is not that complicated.

pxc 19 hours ago

> Steam does not have this problem. Download game, play game. Software is not that complicated.

Steam on Linux essentially has its own "package manager" which uses containerized runtimes: https://gitlab.steamos.cloud/steamrt/steam-runtime-tools

  • forrestthewoods 18 hours ago

    The Steam Linux Runtime is pretty bare bones. Their most recent runtime hasn’t been updated in 4 years. That’s quite different.

    • yjftsjthsd-h 17 hours ago

      > Their most recent runtime hasn’t been updated in 4 years. That’s quite different.

      Bad, even.

      • forrestthewoods 17 hours ago

        False. The exact opposite of bad.

        The “system” should provide the barest minimum of libraries. Programs should ship as many of their dependencies as is technically feasible.

        Oh what’s that? Are crying about security updates? Yeah well unfortunately you shipped everything in a Docker container so you need to rebuild and redeploy all of your hierarchical images anyways.

zbentley 4 hours ago

> I’m increasingly convinced that the mere existence of a package manager (for programs, not source code) is a sign of a failed platform design

> Steam does not have this problem. Download game, play game.

These statements seem contradictory. Steam is a package manager. So is the Apple App Store. Sure, they have different UX than, say, apt/dnf/brew/apk/chocolatey, but they're conceptually package managers.

Given that, I'm unclear what the gripe is (though I'm totally down to rip on Snap/Flatpak; I won't rant here, but I did elsewhere: https://news.ycombinator.com/item?id=44069483). Is the issue with OS/vendor-maintained package managers? Or is the issue with package installers that invoke really complicated build systems at install time (e.g. package managers that install from source)?

  • forrestthewoods 4 minutes ago

    This is getting into semantics. Personally I would not consider downloading a zip file from a GitHub releases page in a web browser to be using a “package manager”. But someone could try and make that argument.

    None of this has formal definitions which makes it difficult to discuss.

    Your rant on Snap/Flatpak was great.

    The core gripe is that I want running computer programs on Linux to be easy and reliable. It is not. MacOS and Windows are far more reliable, and they don’t require (imho) package managers to do it.

anglesideangle 17 hours ago

> I’m increasingly convinced that the mere existence of a package manager (for programs, not source code) is a sign of a failed platform design.

Nix is a build system for source code, similar to make. It is such a robust build system that it also can be used as a package manager with a binary cache

chpatrick 18 hours ago

Does Steam let you control the whole dependency tree of your software, including modifying any part of it and rebuilding from source as necessary, or pushing it to a whole other machine?

Real life software is much more than just downloading a game and running it.

  • vilunov 16 hours ago

    > Real life software is much more than just downloading a game and running it.

    Real life software outside of Linux is pretty much just downloading and running it. Only in Linux we don't have a single stable OS ABI, forcing us to find the correct package for our specific distro, or to package the software ourselves.

    • chpatrick 4 hours ago

      Maybe for desktop use but when you want to deploy something to your server it's a bit more complicated than that.

  • forrestthewoods 18 hours ago

    Pushing to another machine? Yes. By strict definition. Steam exists to sell pre-compiled proprietary programs for dollars.

    Rebuilding? No. Linux package management is so-so at allowing you to compile programs. But they’re dogshit garbage at helping you reliably run that program. Docker exists because Linux can’t run software.