Note: That article is only relevant for Linux users.
For as long as I can remember I’ve been installing Emacs (primarily) in one of two ways:
- Via the standard package manager of the operating system I’m using (e.g.
apton Ubuntu or
- From source
Typically, I’d go with the first option unless I am doing some development work on Emacs or I want to experiment with some build options, when I’d go with the second approach. Obviously, nothing beats the convenience of the built-in package manager, but from time to time you’d want to use a version of Emacs that’s not available in your package manager’s repositories and then you have to get more creative (e.g. find third-party repos, some (random) pre-built packages, or build Emacs from source).
Turns out today there’s a third option (at least for Linux users) - installing Emacs via
snap is a distro-agnostic package management framework that distributes self-contained
applications (they don’t have any external dependencies). Think of it as something similar to Apple’s App Store.
There are other similar projects in the realm of Linux (e.g.
seems to be the most popular today, mostly because it was developed by the makers of Ubuntu, Canonical.
Emacs is available at snapcraft.io in 3 flavors:
- latest stable version (published to the
- latest release candidate (published weekly to the
- snapshot build (published weekly to the
Provided you’ve already setup
snap, installing Emacs is trivial:2
# install stable version $ sudo snap install emacs --classic # install release candidate $ sudo snap install emacs --beta --classic # install snapshot version $ sudo snap install emacs --edge --classic
Super simple, right?
While I still plan to use
apt most of the time (these days I’m using Ubuntu), I have to admit that
snap gives you a trivial way to get access to the latest and greatest version of Emacs on all major
Linux distros. I think that’s a very convenient option for anyone who’s not using a rolling release
distro, or simply doesn’t want to waste time on upgrading their Emacs.
That’s all I have for you today! Meta-end!