Installing snap on Arch Linux

On Arch Linux, snap can be installed from the Arch User Repository (AUR).

The manual build process is the Arch-supported install method for AUR packages, and you’ll need the prerequisites installed before you can install any AUR package. You can then install snap with the following:

git clone
cd snapd
makepkg -si

Once installed, the systemd unit that manages the main snap communication socket needs to be enabled:

sudo systemctl enable --now snapd.socket


To take advantage of Snap confinement and application sandboxing, ensure AppArmor is install and enabled on your system, then run the following:

sudo systemctl enable --now snapd.apparmor.service

To test whether confinement is running correctly, install the hello-world snap and run hello-world.evil. If confinement is working, you will see a permission denied error:

$ hello-world.evil 
Hello Evil World!
This example demonstrates the app confinement
You should see a permission denied error next
/snap/hello-world/29/bin/evil: 9: /snap/hello-world/29/bin/evil: cannot create /var/tmp/myevil.txt: Permission denied

Classic support

To enable classic snap support, enter the following to create a symbolic link between /var/lib/snapd/snap and /snap:

sudo ln -s /var/lib/snapd/snap /snap

Either log out and back in again, or restart your system, to ensure snap’s paths are updated correctly.

To test your system, install the hello-world snap and make sure it runs correctly:

$ sudo snap install hello-world
hello-world 6.3 from Canonical✓ installed
$ hello-world
Hello World!

Snap is now installed and ready to go! If you’re using a desktop, a great next step is to install the Snap Store app.

1 Like


I have tried to follow the manual AS IS, but noticed this error repository '' not found:

[myuser@alarm snap]$ makepkg -si
==> Making package: snap 0.3.2-1 (Mon Jan 29 07:51:16 2024)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning snap git repo...
Cloning into bare repository '/home/myuser/snap/snap'...
Username for '': myuser
Password for '': 
remote: Repository not found.
fatal: repository '' not found
==> ERROR: Failure while downloading snap git repo
[myuser@alarm snap]$ 

P.S. GitHub requests credentials hoping the repo is private, but it is very confusing UX for the enduser, as I didn’t expect my GH credentials to build snapd :smiley: