How To Install Discord on Linux: Practical Approaches
Discord remains essential for real-time communications in gaming, developer, and community environments. While native Linux support exists, install reliability depends heavily on your distribution, package ecosystem, and desktop environment. Results can vary.
Methods At a Glance
Distribution | Package Type | Maintainer | Update Mechanism |
---|---|---|---|
Ubuntu, Debian | .deb | Discord (official) | Manual, via apt/dpkg |
Fedora, RHEL | .rpm | Discord (official) | Manual, via dnf/yum |
Any | Snap | Canonical (community) | Automatic |
Any | Flatpak | Community (Flathub) | Automatic |
--
Use Case: You’re on Ubuntu 22.04, you want the official build and system integration (audio, screen sharing), and you don’t want to rely on non-official repackaging.
Solution: Use the official .deb
package.
Debian/Ubuntu: Official .deb
Deployment
Retrieve Latest Stable
wget -O /tmp/discord-latest.deb "https://discord.com/api/download?platform=linux&format=deb"
Discord doesn’t support APT repositories—every update will require a manual download. Be aware: the above URL always gives the latest stable, not beta.
Install with apt for Dependency Resolution
sudo apt update
sudo apt install /tmp/discord-latest.deb
Note: apt
will resolve dependencies automatically. If you use dpkg -i
, you may need to run:
sudo apt-get install -f
to resolve missing dependencies, particularly on minimal or custom installs.
Start Discord
discord &
Or use the application menu. For logging/debug, launch from a terminal to view standard output.
Fedora/RHEL/AlmaLinux: Official .rpm
Deployment
Download Latest .rpm
wget -O /tmp/discord-latest.rpm "https://discord.com/api/download?platform=linux&format=rpm"
Install
On Fedora 38+:
sudo dnf install /tmp/discord-latest.rpm
EL-based (CentOS Stream, RHEL 9+):
sudo yum localinstall /tmp/discord-latest.rpm
Gotcha: Discord's RPM ships with pre-bundled Electron. SELinux in a strict configuration may block screen sharing—audit logs will show denials. Use permissive mode or set suitable policies if needed.
Universal Method: Snap
Discord is available via Snap, maintained by the Snapcrafters community (not upstream). Pros: single command to install, auto-updates, isolation.
Trade-off: start-up times and sandboxing overhead.
Precondition
Ensure snapd
is running:
systemctl status snapd
If not present:
sudo apt install snapd # On Ubuntu/Debian
or consult your distribution documentation.
Install via Snap
sudo snap install discord
Snap applications update silently in the background. App icons may take several seconds to appear after the first install.
Universal Method: Flatpak
Flatpak offers a Flathub-hosted Discord package, often lagging official releases by a few days.
Precondition
Enable Flatpak and Flathub repository:
sudo apt install flatpak # or equivalent on your distro
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Install
flatpak install flathub com.discordapp.Discord
Run with:
flatpak run com.discordapp.Discord
Known issue: Flatpak sandbox may affect screen sharing and system tray integration, depending on your desktop environment.
Manual Install: Advanced/Isolated Case
Rarely used, but if needed (airgapped systems, custom locations):
- Extract the Discord tar.gz from the
.deb
or.rpm
package. - Run
Discord
binary directly. - Install dependencies:
- Required:
libappindicator3-1
,libatomic1
, others as shown byldd ./Discord
.
- Required:
Troubleshooting
Issue | Symptom | Command/Log Example | Resolution |
---|---|---|---|
Missing dependency | “discord: error while loading shared libraries: …” | ldd /usr/bin/discord | Install missing libs via apt/dnf |
Audio not working | No input/output devices in-app | pactl info / pipewire --version | Restart PulseAudio/PipeWire |
Fails to launch | No GUI, stderr logs cryptic | discord (from terminal) | Check logs, purge config, relaunch |
Stuck on Update Loop | “Update Failed – Retrying in X seconds” | -- | Delete ~/.config/discord , reinstall |
Enable Autostart on Login
Most DEs (GNOME/KDE/XFCE) support autostart through .desktop
files. Example for GNOME:
mkdir -p ~/.config/autostart
cp /usr/share/applications/discord.desktop ~/.config/autostart/
Verify the Exec
path in the .desktop
file matches your install method.
Non-Obvious Tip
Running multiple Discord instances (e.g., main + work) is possible via Flatpak/Snap in parallel with the .deb
or .rpm
version. Each uses separate config directories. Don’t mix account logins on the same instance—rate limits and device locks occasionally apply.
Summary
For production-like desktop use, official packages are preferred, but Snap/Flatpak provide convenience on rolling or less-common distributions. Always run Discord from the terminal at least once to catch missing dependencies or sandbox errors. Updates are manual with .deb
/.rpm
, automatic with Snap or Flatpak. Managing audio and screen sharing remains less predictable on some sandboxed deployments.
--
If a specific error or workflow arises (SELinux context issues, Snap confinement), consult distribution-specific documentation or Discord’s Linux support forums for edge-case workarounds.
--
Example error log:
(Discord:4891): libappindicator-WARNING **: 12:21:03.123: Unable to connect to dbus: Failed to connect to socket /tmp/dbus...
Usually resolved via package install:
sudo apt install libayatana-appindicator3-1
--
No method is perfect; pick the trade-offs best suited for your environment.