If you’ve hopped between Linux distributions as much as I have, you know that each major family of distros introduces you to a different package manager. At first, it can feel a bit daunting (apt on Debian/Ubuntu, dnf on RHEL/Fedora, pacman on Arch, and zypper on openSUSE), but these tools all serve the same purpose of installing and updating software.

After using Linux for years (across everything from Debian to Arch-based systems), I’ve grown comfortable with all of them. Even niche distros like Slackware, Gentoo, and Void. In this post, I’ll break down the major package managers, how they differ, and what it’s like to use each one. We’ll also touch on the universal package formats (Snap and Flatpak) that aim to work across distributions, and lastly mention a few niche package management systems. Let’s dive in!

  • Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    19
    arrow-down
    1
    ·
    3 days ago

    I’ve always liked Zypper (and if I remember correctly, DNF was also fine), purely because it feels sane in everything it does.

    We love to make a religion out of them, but a package manager is ultimately just a secondary tool. It installs other tools, which are what you’re actually interested in using.
    So, I shouldn’t need to learn a scramble of letters to achieve that. I shouldn’t need to think about refreshing the repository listing. The less I need to worry about instructing the package manager, the better.

  • yesman@lemmy.world
    link
    fedilink
    arrow-up
    21
    arrow-down
    1
    ·
    3 days ago

    My desktop is Fedora and I have a file server running Debian. I was doing updates to the Debian box through ssh and it took me way to long to figure out why dnf wasn’t working.

    • Ludicrous0251@piefed.zip
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 days ago

      I’ve done Linux desktops on and off over the years but have had multiple Deb-based servers consistently for 10+ years now. Came time to commit to a desktop and I had to go Mint because I knew I’d be apt installing everything and cursing at myself if I went with anything else

  • TheLazyNerd@europe.pub
    link
    fedilink
    arrow-up
    3
    ·
    2 days ago

    I have been using Nix for a year now, and I am not looking back.

    All regular package managers have a problem: Sometimes a system won’t work if a specific combination of packages is installed. To prevent this, package managers block those combinations. However, how does the package manager know which combination would break the system? It is tested beforehand, and a list of illegal combinations is maintained. However, this comes with a problem: How do you test every combination of packages? If a package manager tracks just 1000 packages, there are 2^1000 possible combinations to evaluate. This means that when a package manager becomes more popular, and more packages get added, relatively fewer combinations get tested, therefore increasing the chance someone breaks his system by installing a unique combination of packages, that wasn’t evaluated and apparently breaks the system. In other words: Package managers have a flaw that causes your system to break if the package manager becomes too popular. The common solution is to create a new package manager from scratch that does exactly the same thing as the old one, but isn’t popular yet, and therefore works. However, since it works, it becomes more popular, causing it to no longer work.

    Nix is different. It is designed from the bottom up that every combination of packages is possible. It is impossible that one package breaks another. This creates some other advantages as well: there is no evaluation to see whether packages break other packages, allowing maintainers to add more packages to the repository. The result: even though it is not even close to the most used package manager, it is the one with the most packages in its repository.

    Yes, there are problems. The biggest is that there is no easy mode yet. But that can be implemented later. For now I see Nix (or something similar like Guix) to be the future of package managers.

  • RedSnt 👓♂️🖥️@feddit.dk
    link
    fedilink
    arrow-up
    13
    ·
    edit-2
    3 days ago

    Over the summer Zypper got a huge speed upgrade after decades of being one of the slowest package managers, and while Hayden James did give Zypper “the best score” (not really, (except if you assume they all got 5 in ecosystem size) all of them got 17, except Pacman that got 16), it would’ve been nice of them to mention that as I’m sure lots of people probably still have this idea of Zypper being sluggish and taking forever.
    In fact, seeing as how APT is limited on simultaneous downloads, I’d wager that Zypper is actually faster than APT now. Probably faster than Nala as well.

    • Evil_Shrubbery@thelemmy.club
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      2 days ago

      Yes, I was fine with/accepted the “slowness” before (I love zypper) & one day just suddenly it just started “skipping” the download parts & it was a huge optimization :D.

  • Infernal_pizza@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 days ago

    Interesting they gave apt a higher score for ecosystem than pacman. I feel like I have to add custom repos to Debian more often than I have to use the AUR on Arch

  • LordKitsuna@lemmy.world
    link
    fedilink
    arrow-up
    9
    arrow-down
    3
    ·
    3 days ago

    Pacman is the best for the simple fact that it’s simple. APT, DNF etc get into the weeds with complex scripts trying to update databases and other nonsense that has caused apt/dpkg to obliterate systems for me too often (over like 10 years)

    but pacman is about as close as possible to “unzip in place and go home” I’ve never had the actual pacman itself break a system. And the only broken update I’ve had is the stupid grub one which I solved by switching to systemdboot. On top of that even IF you somehow obliterated an arch system it’s trivial to chroot in, use a statically built pacman, then reinstall all system packages with a single command.

    I unironically use arch in critical production systems as i genuinely find it to be more reliable. Slap on some filesystem snapshots as a just in case for any bugs from updates (never had to use) and I have a system that is so much easier to use and i feel more confident doing updates

    • MadPsyentist@lemmy.nz
      link
      fedilink
      English
      arrow-up
      9
      ·
      2 days ago

      Pacman works. And over all im an Arch fan. But whats with the esoteric flags? -S? What the fuck does -S mean? why not “pacman install myshityide”, “pacman update”, “pacman upgrade”, “pacman remove myshityide”?

      • LordKitsuna@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        2 days ago

        You know it’s funny I actually find that I like the esoteric Flags more . They just stick in my head as unique and I’m never wondering whether I do update or upgrade or anything else that might sound right. It’s Syu, always has been :)

      • rozodru@piefed.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        CachyOS has that turned on by default

        For other Arch distros you can turning it on by adding “ILoveCandy” to your pacman config

    • gianni@lemmy.ca
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      3
      ·
      3 days ago

      Pacman has fucked me so many times, I will likely never use Arch again. rpm-ostree has always had my back.

      • LordKitsuna@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        2 days ago

        Sounds more likely that AUR fucked you. Which isn’t pacman. I’ve often found people who hate “pacman” usually just hosed their system with the AUR

      • rarsamx@lemmy.ca
        link
        fedilink
        arrow-up
        3
        ·
        2 days ago

        I’m very choosy with AUR. I know people hail it as the holy grail but the lack of vetting makes it “delicate”.

        This is, in the best of cases, what’s being packaged hasn’t been properly tested. In the worst, you really need to read the package file and understand it enough to confirm you can trust the sources or risk being surprised.

      • trolololol@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 days ago

        Oh I didn’t know ostree was used by rpm, I thought it was made from scratch from the flatpak project just like bwrap is.

  • Unattributed@feddit.online
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    2
    ·
    3 days ago

    Even niche distros like Slackware, Gentoo,

    Ooof - I’m feeling old when these are considered “niche” distros…

    • rarsamx@lemmy.ca
      link
      fedilink
      arrow-up
      3
      ·
      2 days ago

      Well, Slackware was a main distro two or three decades ago. I give you that. Il pretty sure that’s what I installed when I installed my first Linux mid/early 99’s.

      Gentoo has always been niche.

      • Unattributed@feddit.online
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        Yeah - Slackware back in the late 90s early 2K’s wasn’t as niche… Remember the Infomagic CD sets?

        Gentoo got traction for a while when they made it easier to install, instead of having to go from Stage 0. Of course, I installed it from Stage 0 since I wanted to know more about the tool chain and how these systems were built – but I wasn’t masochistic enough to try to install LFS.

        • rarsamx@lemmy.ca
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          2 days ago

          I had Gentoo as primary for 6 months. 6 months of an unusable computer always compiling.

          I did a bit of LFS and while I didn’t get to a full desktop, it helped a lot.

          • Unattributed@feddit.online
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 days ago

            Hmm - my Gentoo install was usable, but I did get tired of all the compiling for updates. Still kind of get annoyed with it now when I have to install source packages from the AUR.

            I read a lot of the LFS manual, that’s what made me decide to give Gentoo a go. Seemed like an slightly easier route while still working through a lot of the build process.

            • rarsamx@lemmy.ca
              link
              fedilink
              arrow-up
              1
              ·
              2 days ago

              I mean…mine was theoretically usable. But practically, it was compiling all the time.

              I really don’t understand how can people use it. I really tried.

              • Unattributed@feddit.online
                link
                fedilink
                English
                arrow-up
                1
                ·
                2 days ago

                I think it’s something that you have to get used to… While it’s compiling stuff, you can actually be doing other things on your system. The trick was to make sure your configuration balanced your systems resources so you didn’t get bottlenecks. (For example: putting your home drive on a separate physical drive to reduce issues with writes.)

  • foliumcreations@lemmy.world
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    3 days ago

    App images, love the fact that they exist thou sometimes graphically jarring. Sure… ever only used them for two different applications. Both pretty niche. And not available in my distro repo or flathub. Not advocating for it to become something universal,or anything but they seem pretty distro agnostic. Which I’m guessing is easier to maintain? Or not? Not a developer.

    • TheMadCodger@piefed.social
      link
      fedilink
      English
      arrow-up
      9
      ·
      3 days ago

      Yeah, I’ll take an appimage if that’s what I can get, but it’s not my favorite way to deal with it. I’m on Bluefin, so it’s flatpak and homebrew for me.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    5
    arrow-down
    2
    ·
    3 days ago

    Also most users don’t even have to use a package manager directly, as there are GUI frontends that manages all of this with mouse clicks. In that case, the underlying package manager doesn’t even matter, only the repositories you access to, do. I use easy to remember aliases and when I need some more features, i just look them up quickly. That does all the job I need for the most part.

    • caseyweederman@lemmy.ca
      link
      fedilink
      arrow-up
      7
      ·
      3 days ago

      KDE’s Discover is pretty magical. In Plasma 6, you don’t even need to install a bunch of separate plugins for it. Except I think they still make you sign off on Flathub (but give you instructions on how to do it)

      • entwine@programming.dev
        link
        fedilink
        arrow-up
        6
        arrow-down
        1
        ·
        3 days ago

        Discover is probably the worst app in the entire KDE suite. It’s the only aspect of the Linux desktop that frustrates me, and I’m nearing 10 years of full time Linux desktop usage.

        Oh, you accidentally opened Discover? Now you gotta sit and twiddle your thumbs while it updates/downloads a bunch of stuff very slowly with no way to interrupt it. It also locks the system package manager, so you literally cannot do anything else package management related until Discover slowly decides to finish doing something you never asked it to do.

        • Random Dent@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          I also don’t like how seemingly some parts of KDE like themes and widgets don’t seem to update through the terminal during a normal system update, you have to remember to open Discover once every few weeks and update them all separately.

        • caseyweederman@lemmy.ca
          link
          fedilink
          arrow-up
          3
          ·
          3 days ago

          Huh. I cannot personally relate to anything you’ve said there. Maybe we’re using different versions? The only issue I’ve had with package managers (aside from Flatpak file access, snap… just everything to do with snaps, and Pacman acting like it’s never heard of any of my mirrors if I haven’t updated in a couple of weeks, and official Nvidia drivers breaking my xorg.conf in half) is wiping out my entire desktop suite through Synaptic back in the day (entirely my own fault).
          I suppose there are worse ways to learn to read the “these packages will be removed section”.

      • thingsiplay@beehaw.org
        link
        fedilink
        arrow-up
        2
        ·
        3 days ago

        But Discover on an Arch based system (EndeavourOS) isn’t that great. It only supports Flatpak, not the system packages.

          • thingsiplay@beehaw.org
            link
            fedilink
            arrow-up
            4
            ·
            2 days ago

            I don’t know what exactly you want to know actually. It’s a generic wording / term. I’m not talking about a specific user group or something like that. I’m just saying, “people” do not HAVE to use a commandline package manager, if the system is configured to use a GUI manager for the packages.

            In example SteamOS on the Steam Deck is configured in a way the user never need to use the terminal. There is the gaming mode, without a desktop and a click updates the system. And in desktop mode there is Discover pre-configured with Flathub for Flatpaks. Users don’t have to use the terminal to install new applications or update them. Just as an example. I think openSUSE also has some GUI for that and doesn’t Linux Mint have such a GUI too? Manjaro comes with their Pamac graphical tool.

            • dbtng@eviltoast.org
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 days ago

              Ok, I can see that in SteamOS, users that don’t directly interact with a package manager. That seems likely.

              I would say that ‘most users’ of just about any linux distro know all about command line package managers.
              So, my ‘most users’ and your ‘most users’ don’t seem to be the same people.

              • thingsiplay@beehaw.org
                link
                fedilink
                arrow-up
                4
                ·
                edit-2
                2 days ago

                I said “most users” in the sense of “nobody has to” and refer to everyone, including you and me. We don’t have to use the commandline to update package managers, if we use a GUI for it. I didn’t mean a specific number of people do or don’t.

                • dbtng@eviltoast.org
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  ·
                  2 days ago

                  Well, that’s interesting. I guess linux really is going more mainstream, if that’s the more common user experience. The users I know are mostly professionals that enjoy tinkering under the hood. Thanks for your perspective, stranger.

  • dbtng@eviltoast.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 days ago

    They mentioned YUM just long enough to shit on it. I’ve never had a reason to switch to DNF. Fukit. YUM works.

      • dbtng@eviltoast.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 days ago

        None that I know of. I’m pretty sure they are both installed. I think dnf has some sort of TUI. I was just never interested.

        • Ephera@lemmy.ml
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          3 days ago

          No idea, if it has a TUI, but I feel like improved performance should be good enough of a reason to switch, if there are no downsides…

          • dbtng@eviltoast.org
            link
            fedilink
            English
            arrow-up
            3
            ·
            2 days ago

            That makes perfect sense until I contrast it with the fact that I’ve never had any sort of issue with yum’s performance. I do this crap for a living. I might carry out the same install or patching on several servers. As long as it executes in a consistent and reliable way, performance is really a secondary consideration.

            • Ephera@lemmy.ml
              link
              fedilink
              English
              arrow-up
              2
              ·
              2 days ago

              Ah, so you’ve scripted a whole bunch of stuff with YUM. Then you automatically have the downside that switching over could incur hours of work.

              As much as the software developer in me wants to encourage you to use DNF (or an abstraction like pkcon) for newer scripts, in case they want to remove YUM one day, I get not wanting to deal with two separate tools.

              In my head, switching over was trivial, i.e. just typing D, N, F instead of Y, U, M, because that was my experience when I switched over way back when I was still a freshly hatched penguin.

              • dbtng@eviltoast.org
                link
                fedilink
                English
                arrow-up
                2
                ·
                2 days ago

                Yes, exactly. The company I work for has lots of yum scripting. I don’t hate dnf, its just not the interface I’ve used at work.

          • dbtng@eviltoast.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 days ago

            Well the distros in question are pretty standard. RHEL, CENT, Oracle, Rocky. Ok. At least they let me keep my interface.