The most opinionated package manager in Linux. Also the most battle-tested.
T

The most opinionated package manager in Linux. Also the most battle-tested.

The most opinionated package manager in Linux. Also the most battle-tested.

2,037 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Snapd: The Most Opinionated (and Battle-Tested) Package Manager in Linux

If you’ve ever dealt with package hell on Linux — mismatched libraries, broken dependencies, or version conflicts — you’ve probably wished for something simpler. That’s exactly what Snapd tries to solve. It’s the daemon behind Snap packages, and it’s been around long enough to earn the title “most battle-tested” package manager in the ecosystem. But it’s also the most opinionated: snaps are self-contained, sandboxed, and auto-updating. Love it or hate it, it’s used by millions of devices, from Ubuntu desktops to IoT gadgets.

What It Does

Snapd is the background service that manages Snap packages. Snaps are application bundles that include everything an app needs to run: the binary, libraries, configs, and even a filesystem. They’re isolated from the rest of the system using AppArmor and seccomp policies. When you install a snap, snapd downloads the compressed image, mounts it into a loop device, and runs it in a confined environment. Updates happen automatically in the background, and rollbacks are trivial if something breaks. Think of it as a way to get fresh software on older distros without compile hell.

Why It’s Cool

The most obvious feature is isolation. Snaps don’t depend on system libraries, so you can run an app that needs Python 3.12 on a distro stuck with Python 3.6. But the real cleverness is in the update mechanism: snapd uses deltas for updates (only downloading changed blocks), and it keeps multiple versions of an app around. If an update crashes, you can roll back to the previous version instantly. No more “sudo apt-get install fix-broken-package”.

Another cool bit is that snaps support “channels” — like stable, beta, or edge. This lets developers push bleeding-edge builds to testers without affecting stable users. And because snaps are confined, you can run conflicting versions of the same app (like Docker CE and Podman) side by side.

Oh, and it works across distros. Snap is not Ubuntu-only. It runs on Fedora, Arch, Debian, and even some Raspberry Pi OS variants. That cross-distro compatibility is a big deal for developers who need to ship the same app to everyone.

How to Try It

If you’re on Ubuntu 20.04+, snapd comes preinstalled. For other distros:

Debian/Ubuntu

sudo apt install snapd

Fedora

sudo dnf install snapd

Arch

sudo pacman -S snapd

After installing, enable the snap socket:

sudo systemctl enable --now snapd.socket

Then try a simple snap:

sudo snap install hello-world
snap run hello-world

T

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: May 20, 2026