In this tutorial, we will take you through how to install and use Flatpak on Ubuntu 24.04. So, what is Flatpak? According to the documentation, Flatpak is a framework for building, distributing, and running desktop applications across various Linux distributions. Flatpak applications are developed and hosted on a central reposiory called Flathub respository.
Table of Contents
Install and Use Flatpak on Ubuntu 24.04
If you are looking at universality, space for innovations, stability… on how you manage your package installation on your Ubuntu 24.04 system, Flatpak is what your are looking for. The steps provided below will take you through how to install and use it on Ubuntu 24.04.
Installing Flatpak on Ubuntu 24.04
Flatpak package is available on the default Ubuntu repositories. It can easily be installed by executing the command below.
sudo apt udpate
sudo apt install flatpak
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libmalcontent-0-0 libostree-1-1
Suggested packages:
malcontent-gui
The following NEW packages will be installed:
flatpak libmalcontent-0-0 libostree-1-1
0 upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
Need to get 1,742 kB of archives.
After this operation, 6,548 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu noble/universe amd64 libmalcontent-0-0 amd64 0.11.1-1build4 [21.9 kB]
Get:2 http://archive.ubuntu.com/ubuntu noble/universe amd64 libostree-1-1 amd64 2024.5-1build2 [373 kB]
Get:3 http://archive.ubuntu.com/ubuntu noble/universe amd64 flatpak amd64 1.14.6-1 [1,348 kB]
Fetched 1,742 kB in 1s (1,418 kB/s)
Selecting previously unselected package libmalcontent-0-0:amd64.
(Reading database ... 154396 files and directories currently installed.)
Preparing to unpack .../libmalcontent-0-0_0.11.1-1build4_amd64.deb ...
Unpacking libmalcontent-0-0:amd64 (0.11.1-1build4) ...
Selecting previously unselected package libostree-1-1:amd64.
Preparing to unpack .../libostree-1-1_2024.5-1build2_amd64.deb ...
Unpacking libostree-1-1:amd64 (2024.5-1build2) ...
Selecting previously unselected package flatpak.
Preparing to unpack .../flatpak_1.14.6-1_amd64.deb ...
Unpacking flatpak (1.14.6-1) ...
Setting up libostree-1-1:amd64 (2024.5-1build2) ...
Setting up libmalcontent-0-0:amd64 (0.11.1-1build4) ...
Setting up flatpak (1.14.6-1) ...
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for dbus (1.14.10-4ubuntu4) ...
Processing triggers for libc-bin (2.39-0ubuntu8.1) ...
Once the installation is complete, flatpak command line tools should now be available for use.
which flatpak
/usr/bin/flatpak
Confirm installed version;
flatpak --version
Flatpak 1.14.6
Counter check against the releases.
Using Flatpak on Ubuntu 24.04
Basic Flatpak Command Line Usage
flatpak is a command line tool that you will be using to manage Flatpak applications.
The basic command line syntax for flatpak command is;
flatpak [OPTION…] COMMAND
You can check its help page on various command line arguments (options and commands) to pass to it.
flatpak -h
Or;
flatpak --help
Builtin Commands:
Manage installed applications and runtimes
install Install an application or runtime
update Update an installed application or runtime
uninstall Uninstall an installed application or runtime
mask Mask out updates and automatic installation
pin Pin a runtime to prevent automatic removal
list List installed apps and/or runtimes
info Show info for installed app or runtime
history Show history
config Configure flatpak
repair Repair flatpak installation
create-usb Put applications or runtimes onto removable media
Find applications and runtimes
search Search for remote apps/runtimes
Manage running applications
run Run an application
override Override permissions for an application
make-current Specify default version to run
enter Enter the namespace of a running application
ps Enumerate running applications
kill Stop a running application
Manage file access
documents List exported files
document-export Grant an application access to a specific file
document-unexport Revoke access to a specific file
document-info Show information about a specific file
Manage dynamic permissions
permissions List permissions
permission-remove Remove item from permission store
permission-set Set permissions
permission-show Show app permissions
permission-reset Reset app permissions
Manage remote repositories
remotes List all configured remotes
remote-add Add a new remote repository (by URL)
remote-modify Modify properties of a configured remote
remote-delete Delete a configured remote
remote-ls List contents of a configured remote
remote-info Show information about a remote app or runtime
Build applications
build-init Initialize a directory for building
build Run a build command inside the build dir
build-finish Finish a build dir for export
build-export Export a build dir to a repository
build-bundle Create a bundle file from a ref in a local repository
build-import-bundle Import a bundle file
build-sign Sign an application or runtime
build-update-repo Update the summary file in a repository
build-commit-from Create new commit based on existing ref
repo Show information about a repo
Help Options:
-h, --help Show help options
Application Options:
--version Print version information and exit
--default-arch Print default arch and exit
--supported-arches Print supported arches and exit
--gl-drivers Print active gl drivers and exit
--installations Print paths for system installations and exit
--print-updated-env Print the updated environment needed to run flatpaks
--print-system-only Only include the system installation with --print-updated-env
-v, --verbose Show debug information, -vv for more detail
--ostree-verbose Show OSTree debug information
Enable Flathub Repository on Ubuntu 24.04
As already mentioned, Flatpak applications are developed, published and hosted on Flathub repository. In order to be able to use flatpak command to install Flatpak packages, you need to install and enable it by running the command below;
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
You can check all installed Flatpak repositories using the command below;
flatpak remotes
Sample output;
Name Options
flathub system
To get details about the packages hosted on the installed repository;
flatpak remote-ls [name of the repo]
For example;
flatpak remote-ls flathub
Sample output;
Name Application ID Version Branch Arch
AuthPass app.authpass.AuthPass stable x86_64
BlackboardSync app.bbsync.BlackboardSync stable x86_64
BlueBubbles app.bluebubbles.BlueBubbles stable x86_64
Cantara app.cantara.Cantara stable x86_64
Biblioteca app.drey.Biblioteca stable x86_64
Blurble app.drey.Blurble stable x86_64
Damask app.drey.Damask stable x86_64
Dialect app.drey.Dialect stable x86_64
Doggo app.drey.Doggo stable x86_64
EarTag app.drey.EarTag stable x86_64
Elastic app.drey.Elastic stable x86_64
KeyRack app.drey.KeyRack stable x86_64
MultiplicationPuzzle app.drey.MultiplicationPuzzle stable x86_64
Warp app.drey.Warp stable x86_64
feeddeck app.feeddeck.feeddeck stable x86_64
Clipboard app.getclipboard.Clipboard stable x86_64
Space app.getspace.Space stable x86_64
gummi app.gummi.gummi stable x86_64
Kaiteki app.kaiteki.Kaiteki stable x86_64
Lith app.lith.Lith stable x86_64
MidtermDesktop app.midterm.MidtermDesktop stable x86_64
moosync app.moosync.moosync stable x86_64
desktop app.organicmaps.desktop stable x86_64
pianocheetah app.pianocheetah.pianocheetah stable x86_64
RedNotebook app.rednotebook.RedNotebook stable x86_64
RiftShare app.riftshare.RiftShare stable x86_64
Vup app.vup.Vup stable x86_64
xemu app.xemu.xemu stable x86_64
ytmdesktop app.ytmdesktop.ytmdesktop stable x86_64
Ywallet app.ywallet.Ywallet stable x86_64
App ar.com.pilas_engine.App stable x86_64
Rockarrolla ar.com.softwareperonista.Rockarrolla stable x86_64
TuxGuitar ar.com.tuxguitar.TuxGuitar stable x86_64
Cambalache ar.xjuan.Cambalache stable x86_64
tauno-monitor art.taunoerik.tauno-monitor stable x86_64
tauno-serial-plotter art.taunoerik.tauno-serial-plotter stable x86_64
ConfClerk at.priv.toastfreeware.ConfClerk stable x86_64
server at.ssh_mitm.server stable x86_64
VintageStory at.vintagestory.VintageStory stable x86_64
escript au.edu.uq.esys.escript stable x86_64
terminal br.app.pw3270.terminal stable x86_64
school br.com.eduk.school stable x86_64
Xjump br.com.gualandi.Xjump stable x86_64
qpdftools br.eng.silas.qpdftools stable x86_64
invesalius br.gov.cti.invesalius stable x86_64
irpf2022 br.gov.fazenda.receita.irpf2022 stable x86_64
irpf2023 br.gov.fazenda.receita.irpf2023 stable x86_64
irpf2024 br.gov.fazenda.receita.irpf2024 stable x86_64
Nestopia ca._0ldsk00l.Nestopia stable x86_64
dconf-editor ca.desrt.dconf-editor stable x86_64
Timecop ca.hamaluik.Timecop stable x86_64
asunder ca.littlesvr.asunder stable x86_64
ParallelLauncher ca.parallel_launcher.ParallelLauncher stable x86_64
Raven ca.uwaterloo.Raven stable x86_64
...
Read more on
flatpak remote-ls --help
Installing Flatpak Packages
With Flatpak and repositories in place, you can now install Flatpak packages.
Take for example, you want to install Discord app on Ubuntu 24.04 using Flatpak, you can start by checking if the package is available.
sudo flatpak search discord
You will get multiple hits.
Name Description Application ID Version Branch Remotes
discord-scr… A custom discord client that supports streaming with audio on Linux ….shorsh.discord-screenaudio 0.0.0+git20240404.64c4303 stable flathub
Discord Messaging, voice and video client com.discordapp.Discord 0.0.51 stable flathub
ArmCord ArmCord is a custom client designed to enhance your Discord experience while keeping everything… xyz.armcord.ArmCord 3.2.6 stable flathub
Dissent Tiny Discord app so.libdb.dissent v0.0.23 stable flathub
Discover Ov… A graphical overlay for Discord voice chat. …thub.trigg.discover_overlay 0.7.4 stable flathub
WebCord Web-based Discord client ….github.spacingbat3.webcord 4.8.0 stable flathub
Vesktop Snappier Discord app with Vencord dev.vencord.Vesktop 1.5.1 stable flathub
QTCord Lightweight Discord Client io.github.mak448a.QTCord v0.0.12 stable flathub
Datcord An open-source Discord client that uses Firefox io.github.gamingdoom.Datcord 0.5.1 stable flathub
Ripcord Alternative desktop chat client for Slack (and Discord) fm.cancel.Ripcord 0.4.29 stable flathub
Tonbrett Companion App for Discord Soundboard Bot dev.schlaubi.Tonbrett 1.18.19 stable flathub
Cider An open source and community oriented Apple Music client sh.cider.Cider v1.6.2 stable flathub
Alien Arena Ultra fast paced arena FPS org.alienarena.alienarena 7.71.6 stable flathub
Veloren Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World,… net.veloren.veloren 0.15.0-nightly stable flathub
Airshipper Airshipper is the official launcher for Veloren. net.veloren.airshipper 0.11.0 stable flathub
RetroDECK RetroDECK brings an environment to catalog and play your retro games directly on your Steam Deck net.retrodeck.retrodeck 0.8.0b stable flathub
REAL Video … Free and Open Source Video Enhancement Tool …tntwise.REAL-Video-Enhancer 1.1.2 stable flathub
Resonance Harmonize your listening experience io.github.nate_xyz.Resonance 0.1.3 stable flathub
Muezzin Islamic prayer times application io.github.dbchoco.muezzin v2.6.0 stable flathub
Salawat Islamic prayer times application io.github.dbchoco.Salawat v1.3.0 stable flathub
Guilded Messaging, Voice, and Video Client gg.guilded.Guilded 1.0.9251387 stable flathub
wger Fitness/workout, nutrition and weight tracker de.wger.flutter 1.7.0 stable flathub
AuthPass Password Manager: Keep your passwords safe across all platforms and devices app.authpass.AuthPass 1.9.6_1904 stable flathub
The official discord;
Discord Messaging, voice and video client com.discordapp.Discord 0.0.51 stable flathub
You can then install the Flatpak package using the Application ID.
sudo flatpak install com.discordapp.Discord
Or with the name (If the name matches multiple packages, then you will be prompted to choose one from the matched options).
sudo flatpak install Discord
Looking for matches…
Similar refs found for ‘Discord’ in remote ‘flathub’ (system):
1) app/de.shorsh.discord-screenaudio/x86_64/stable
2) app/com.discordapp.Discord/x86_64/stable
Which do you want to use (0 to abort)? [0-2]:
In this case, you would choose option 2 to install Discord. If prompted, install application runtime and accept the permissions required for the application to work;
Do you want to install it? [Y/n]: y
com.discordapp.Discord permissions:
ipc network pulseaudio x11 devices file access [1] dbus access [2] bus ownership [3]
tags [4]
[1] xdg-download, xdg-pictures:ro, xdg-videos:ro
[2] com.canonical.AppMenu.Registrar, com.canonical.Unity, com.canonical.indicator.application, org.freedesktop.ScreenSaver, org.kde.StatusNotifierWatcher
[3] org.kde.*
[4] proprietary
ID Branch Op Remote Download
1. [✓] org.freedesktop.Platform.GL.default 23.08 i flathub 164.3 MB / 164.6 MB
2. [✓] org.freedesktop.Platform.GL.default 23.08-extra i flathub 18.5 MB / 164.6 MB
3. [✓] org.freedesktop.Platform.Locale 23.08 i flathub 17.9 kB / 360.1 MB
4. [✓] org.freedesktop.Platform.openh264 2.2.0 i flathub 886.7 kB / 944.3 kB
5. [✓] org.freedesktop.Platform 23.08 i flathub 177.5 MB / 227.6 MB
6. [✓] com.discordapp.Discord stable i flathub 106.9 MB / 110.3 MB
Installation complete.
Listing Installed Applications and Runtimes
You can list installed Flatpak apps and runtimes using the command, flatpak list;
flatpak list
Name Application ID Version Branch Installation
Discord com.discordapp.Discord 0.0.51 stable system
Freedesktop Platform org.freedesktop.Platform 23.08.17 23.08 system
Mesa org.freedesktop.Platform.GL.default 24.0.6 23.08 system
Mesa (Extra) org.freedesktop.Platform.GL.default 24.0.6 23.08-extra system
openh264 org.freedesktop.Platform.openh264 2.1.0 2.2.0 system
Running Flatpak Application
Once the application is installed, you can run using flatpak run command.
flatpak run com.discordapp.Discord
You can get a list of running Flatpak applications;
flatpak ps
Update Installed Applications
You can use flatpak update command.
sudo flatpak update <package>
You can press tab after typing sudo flatpak update to get the name of the package.
Remove/Uninstall Flatpak Package
You can also uninstall a Flatpak package;
sudo flatpak uninstall <package>
More Flatpak Package Management Commands
Refer to either;
man flatpak
Or
flatpak --help
For more Flatpak package management options.
Conclusion
You have learnt how to install Flatpak on Ubuntu and how you can use it to manage packages.
Read more on getting started with Flatpak.