• @rtxn@lemmy.worldM
        link
        fedilink
        English
        142 years ago

        Canonical is doing the same thing Microsoft is doing with Edge - using its dominant position to push its other products and force out competition, and to lock users (and potentially developers) into its own ecosystem.

      • @grue@lemmy.world
        link
        fedilink
        English
        82 years ago

        and avoid needing to install all of their dependencies locally

        Wait, but doesn’t it result in more copies of the dependencies being installed locally because they’re duplicated for each application?

          • @JoeyJoeJoeJr@lemmy.ml
            link
            fedilink
            32 years ago

            It’s actually less about the library being obscure, and more about version conflicts, which is actually more a problem with common libraries.

            For example, let’s say you want to install applications A, B, and C, and they each depend on library L. If A depends on Lv1, and B depends on Lv2, and C depends on Lv3, with traditional package management, you’re in a predicament. You can only have one copy of L, and the versions of L may not be compatible.

            Solutions like snap, flatpak, appimage, and even things like Docker and other containerization techniques, get around this issue by having applications ship the specific version of the library they need. You end up with more copies of the library, but every application has exactly the version it needs/the developer tested with.

              • @JoeyJoeJoeJr@lemmy.ml
                link
                fedilink
                12 years ago

                The age and obscurity of the library is irrelevant - you could always include libraries bundled with the app, if they didn’t exist in system repos. For example, in deb packages, you could include it in the data.tar portion of the package (see https://en.m.wikipedia.org/wiki/Deb_(file_format)).

                Libraries with version names baked in are one solution to the dependency hell problem, but that requires support from the language/framework/tooling to build the application, and/or the OS (or things get hacky and messy quickly).

                If you read that dependency hell page, you’ll see another solution is portable apps, which specifically mentions Appimage, Flatpak, and Snap.

                Additionally, if you read the Debian docs on How to Cope with Conflicting Requirements, the first solution they give is to “Install such programs using corresponding sandboxed upstream binary packages,” such as “Flatpak, Snap, or AppImage packages.”

                Bin the consumer environment? It is nice and good practice but it is nowhere near as important as it used to be.

                This is incorrect. The target audience for Flatpak is desktop users: https://docs.flatpak.org/en/latest/introduction.html#target-audience. Flatpaks are explicitly for consumer, graphical applications.

    • Ooops
      link
      fedilink
      20
      edit-2
      2 years ago

      It’s a bad, slow and inefficient solution for a problem that is already solved. And because nobody would use their proprietary shit over flatpack, they force the users to use it. Even for things that exist natively in the repositories and would need neither snap nor flatpack.

      • @yaaaaayPancakes@lemmy.world
        link
        fedilink
        22 years ago

        Flatpack isn’t without its own quirks and flaws. There is no One True Way. Being open-source, there shouldn’t be one.

        It is definitely slow though, mostly on first run.

      • shininghero
        link
        fedilink
        22 years ago

        I still don’t even know what problem snap and flatpak were intended to solve. Just apt or dnf installing from the command line, or even using the distro provided store app, has always been sufficient for me.

        • @doktorseven@lemmy.world
          link
          fedilink
          5
          edit-2
          2 years ago

          Modern Linux distros tend to have configuration and dependency issues where certain packages if installed the “Linux Way” doesn’t completely work as desired at times depending on the distro or even a desktop spin (which might have different default libraries installed than the “main” one). Flatpak is a single configuration meant to work one single way across all distributions and has become more of a standard, usable way for Linux applications to just work.

          Use Flatpak. Easy to install and easy to tweak from flatseal or similar GUI Flatpak permission tweakers if you want more flexibility at the possible cost of security.

      • 520
        link
        fedilink
        122 years ago

        The main reason is that it is completely controlled by Canonical, with no way to add alternative repos.

          • 520
            link
            fedilink
            22 years ago

            You can, but that completely negates the reasons why you’d want to have a repo system in the first place. You gotta do the legwork to get updates, for example.

            • @JoeyJoeJoeJr@lemmy.ml
              link
              fedilink
              12 years ago

              This isn’t necessarily true - a developer choosing to not include their app in a repo can always opt for a self-updating mechanism.

              Don’t get me wrong - repos and tooling to manage all of your apps at once are preferred. But if a developer or user wants to avoid the Canonical controlled repo, I’m just pointing out there are technically ways to do that.

              If you’d question why someone would use snap at all at that point… that would be a good question. The point is just that they can, if they want to.

      • Avid Amoeba
        link
        fedilink
        5
        edit-2
        2 years ago

        For computer idiots it’s not bad at all. It mostly just works if you don’t mess with it and Canonical relies on it to ship software for Ubuntu. It’s one of those you should know what you’re doing situations if you’re using standard Ubuntu and messing with it. If you remove it, you will have to figure out what’s shipped via snap and how to supplant it if you want it working, among other potential headaches.

        • @EvacuateSoul@lemmy.world
          link
          fedilink
          32 years ago

          No, it does not just work. It removes the option to install updates manually through GUI. If Firefox was running, the only GUI solution is to close it and wait 6 hours or whatever.

          My wife was perfectly fine installing updates from the tray with Synaptic. The PC is always connected to the TV with Jellyfin left open in Firefox where she was watching.

          So I switched to Manjaro to have a pretty OS that isn’t getting rid of their package manager controlling the most used program.

          • Avid Amoeba
            link
            fedilink
            2
            edit-2
            2 years ago

            Ever since the fix for the “Pending update” notification, updating Firefox has been as complicated as closing it and reopening it when you see the notification. The pending update is installed immediately after closing it. It just works for my wife. ☺️

            Also I wouldn’t leave her dead without automatic updates.

            I’m glad yours enjoying Manjaro. 👌

              • Avid Amoeba
                link
                fedilink
                22 years ago

                Yup. Actually I should have said implemented instead of fixed. The implementation was sizeable. I saw some of the PRs. From a user point of view it was a defect fix but in reality it was a non-trivial implementation. I guess that’s why it wasn’t there from the get go.

      • @aesthelete@lemmy.world
        link
        fedilink
        32 years ago

        I hate it for the refresh nag messages alone.

        The default Firefox in Ubuntu is a snap and I only knew that because due to nagging and having to restart constantly while I was using it and had to learn about snaps and how to install Firefox without them on Ubuntu.

      • Ooops
        link
        fedilink
        1
        edit-2
        2 years ago

        If something exists in native form, use that. If it doesn’t or you want some sandboxing (and there is at least some argument for a containerized version that brings all its needed dependencies, for developers not having to test for every linux for example) there’s flatpack or appimage. Snap is just Canonical’s proprietary alternative to flatpack. And also worse in basically any aspect. So they shove it down their users throat instead. Even for stuff that would be available natively and should just be installed via the normal package manager. And to make really sure, nobody is avoiding their crap, they also redirect commands, so for example using apt to install your browser automatically redirects your command to snap install…