How to install Signal on Linux

Signal is a free and open source messaging application developed by the Signal Foundation: it is available on all the major operating systems such as Linux, Windows, Android and iOS, and supports all the major features one can expect, such as encryption, the ability to send files and make group calls. All the infrastructure behind Signal is open source, including the messaging protocol and the server software: the source code is available on github.

In this tutorial we learn how to install the Signal desktop application on the major Linux distributions, using native, snap and flatpak packages.

In this tutorial you will learn:

  • How to install the Signal desktop application on Debian from the official Signal repository
  • How to install the Signal desktop application as a snap package
  • How to install the Signal desktop application as a flatpak
How to install Signal on Linux
How to install Signal on Linux

 

Category Requirements, Conventions or Software Version Used
System Distribution independent
Software snapd or flatpak (if using the corresponding installation methods)
Other None
Conventions # – requires given linux-commands to be executed with root privileges either directly as a root user or by use of sudo command $ – requires given linux-commands to be executed as a regular non-privileged user

Introduction

Installing the Signal desktop application on Linux is not an hard task. On every Linux-based system we can install the application by using one of the two major cross-distribution installation methods: snap and flatpak. Additionally, if we are using a recent version of Debian or a Debian-based distribution, we can choose to install Signal as a native package from the official repository. Let’s see how to proceed.

Installing Signal from the official repository on Debian-based distributions

Installing the native Signal package from the official repository let us achieve the best possible system integration. With this method, the application and its dependencies will be updated and managed together with the other system packages by using the distribution package manager.



The first thing we need to do is to download and import the GPG key used to sign the packages contained in the Signal repository. The key needs to be “dearmored” before being saved on our system, in the /usr/share/keyrings directory. We can use the gpg --dearmor command to accomplish the task:

$ curl -s https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null

Once the repository key is in place, we can add the Signal repository to our distribution software sources:

$ echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list > /dev/null

At this point, we can synchronize our system with the new repository and install Signal:

$ sudo apt update && sudo apt install signal-desktop

Installing Signal as a snap package

Snap packages are one of the two main software cross-distribution methods on Linux. Snaps were originally developed by Canonical, the company behind Ubuntu. A snap package contains an application together with its runtime dependencies. On recent versions of Ubuntu (>= 16.04) snapd, the utility used to manage snap packages, is installed by default; on older Ubuntu versions and on other Linux distributions, we must install it explicitly. To perform the installation on Debian and older versions of Ubuntu, we can run:

$ sudo apt install snapd



On Fedora, instead, we need to run:

$ sudo dnf install snapd

Once snapd is installed on our system, to install the Signal desktop application, we can run:

$ sudo snap install signal-desktop

For the application launcher to appear in the applications menu, we may need to logout and login again.

Signal desktop installed as a snap package
Signal installed as a snap package

Installing Signal as a flatpak

Flatpaks represent another cross-distribution method to install applications on Linux. Some people (like me), prefer them over snap packages, since, among the other things, they can be installed at the user-level, without using privilege escalation. In order to install Signal as a flatpak, we first need to make sure the flatpak application is installed on our system.

To install it on Debian and Debian-based distributions, we can run:

$ sudo apt install flatpak

To install it of Fedora or Red Hat Enterprise Linux (and its clones):

$ sudo dnf install flatpak

The next thing we need to do, is to add the Flathub remote as a software source:

$ flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo



The --user option in the command above is used to perform the operation in the user-level context. If you want to add the Flathub remote at the system level, just remove it, and run the command with elevated privileges by prefixing it with sudo. The same thing is valid for the command used to install the Signal flatpak:

$ flatpak --user install flathub signal

As an alternative, we can search and install the Signal flatpak from a graphical application like gnome-software:

Installing the Signal flatpak from gnome-software
Installing the Signal flatpak from gnome-software

Conclusions

In this tutorial we learned how to install the Signal desktop application on some of the major Linux distributions. We saw how to add the official Signal repository on Debian and Debian-based distributions and perform the installation using native packages, but also how to install Signal as a snap or flathub package.