Installing Programs on Linux From Decentralized Sources
Install programs in three decentralized application formats on Linux, within a few seconds.
This article is part of our Operating Systems module, where we recommend operating systems and walk you through installing them. Start reading the series here!
After you get finished with this article, start searching for applications, use the resources in our Finding Applications article.
Watch The Video
Teebot wants you to follow us on these alternative social platforms:
Official #TakeBackOurTech Community
The goal of this article is to get you comfortable with the many ways to install programs on your new Linux machine. We will cover the following formats:
- Debian Packages
Please keep in mind you will need a Debian (or Ubuntu) based operating system to install Debian packages. Follow the article here to get one. If you are not using one of the three operating systems covered in this series (KDE Neon, Pop!_OS, Linux Mint) then you may need to install FlatPak as well.
Why not snap?
If you are in the Linux space, you may be aware of a 4th method commonly used in the Ubuntu ecosystem (snap), and wonder why it wasn't included. We have chosen to cover these three application distribution technologies because of the ability to decentralize the distribution process. All three methods allow the user to add a developer's source or download the file directly (in the case of .AppImage). Canonical's (the company behind Ubuntu) snap ecosystem is not free or open source, with closed-source back end code, only one centralized source to obtain snaps (the Snap Store), and it forces developers to sign a Contributor Agreement, giving Canonical the ability to convert snap to a proprietary license if they wish.
- Be careful about what packages you download and install of the internet. The application stores of your distribution is the most trusted place to install software. If you download programs online, always ENSURE that what you're downloading is created by the official maintainers of the software, or recommended by them.
Installing From Your Application Store
The easiest, most reliable & trusted method to install applications is to use your distributions built in Application Store.
Here are the names for the application stores on our 3 favorite distributions:
Pop!_OS: Pop Shop
KDE Neon: Discover
Linux Mint: Software Manager
You can search for these in your application launcher (which is launched from the desktop, by pressing the Windows/Meta/Super key)
Inside, you will find a treasure trove of applications grouped by functionality! Simply click on an application to get more information about it, and then click install in the top right hand corner. The process for all 3 distributions is very similar - and very simple.
WARNING: You may find proprietary applications in your application store. This means there is no transparency for the program's code, and no means to verify how much data is collecting about you. Always look for an open-source alternative.
Installing Debian Packages From The Command Line
Your application store is a graphical interface built over the 'advanced-package-tool' (apt), that is the traditional way to install packages in Debian based operating systems.
You can use this tool directly in a few simple commands.
You can search through the repository of packages that are available to you using the apt-cache search command, where package is what you're searching for.
apt-cache search package
If you wanted to search for the password manager 'KeepassXC', you would type
apt-cache search keepassxc
This would return the names and descriptions of the resulting packages. You can use the name to then install the package directly.
apt-get install keepassxc (remember to preface this with sudo)
What is happening here?
- The advanced package tool first looks at the package metadata, and finds all the other packages the software is dependent on.
- It will then download, install and upgrade existing packages until all dependencies are met, finally installing the application.
Installing From The Internet
The applications on the app store and repositories only contain a portion of the applications available to you in the greater Linux ecosystem. It will be likely that you'll go out to find your favorite applications out on the internet, directly on the websites of the developers or organizations that manage them.
Depending on the organization, you may find that they distribute their packages in a few formats, maybe some and not others.
Let's use Bitwarden, the open-source cloud password manager as an example.
If you go to their downloads page, you'll see the following.
Bitwarden by default offers an .AppImage, but there are also more options for installation. If you click on 'more desktop installation options', you'll see the others.
You'll notice here that the .AppImage is the standard way they'd like for people to download the application. We can download these two and observe the differences.
Installing Debian Packages From The Internet
Its quite easy to install .debian packages you have downloaded from the internet!
WARNING: Always make sure you are downloading a program's Debian package from the developer's website, or a source that they directly endorse on their website.
All you need to do is double-click on the Debian file to prompt the installation, and then click Install (usually in the top right), and authenticate with your password.
You may have noticed that the Debian package for Bitwarden warned that there were no auto-updates. This is because the Bitwarden repository has not been added to your system, so your package manager cannot check to see if there are updates for packages that are installed.
Debian packages can be updated if the developers outfit their Debian packages to add their repositories to your sources list, or if you add the source manually. This way, your package manager can check for updates along with the other packages that are installed from sources on your system. However, users are recommended to limit the amount of sources on their system, as conflicting dependencies (dependency hell) in future updates may cause your programs to break. The Debian package ecosystem has become more stable over time, but dependency management has always been an issue. This is why newer application distribution technologies have grown in popularity with both users & developers.
We can also work with .AppImages very easily in most Linux distributions. AppImages are self-mounting disk images, we can think of them as containers, that hold the application code and their dependencies all in one. This avoids the dependency issues we mentioned earlier. It also means we don't need to install it.
To run an AppImage, follow 4 easy steps.
- Dowload the AppImage
- Organize it in a location you like (we recommend creating a Programs folder in your home directory)
- Make the .AppImage Executable by right clicking on the file, clicking Properties > Permissions - and then check the 'Allow executable' box.
- You can also use the terminal command, which is what happens under the hood when you edit the file's properties.
sudo chmod +x /path/to/your/.AppImage
Then you can run the .AppImage by double clicking on it.
Adding AppImages To Your Desktop
If you follow the instructions above, you will be able to launch the .AppImage at any time by clicking on the file. But it won't automatically be integrated into the desktop applications. In order to do this, you can use a Menu Editor to add the application in.
We recommend the
menulibre package, which can be installed with a simple command, or installed in your Application Store by searching for it.
After it is installed you can do the following.
- Create a new application menu entry by clicking the plus sign in the top left. This can also be called 'New Launcher'
- Fill out the name, description, choose an optional icon on your system. (you can download an image and keep it in your programs folder if you wish)
- In the command field, click the folder icon and navigate to where your .AppImage is stored, select the file.
- Save the new launcher / entry.
Notice how Bitwarden is included in the application launcher after we add the entry!
Flatpaks are a new application distribution technology that make it easier for both developers and users to run applications. Flatpak is installed by default on the most recent versions of our three distributions, KDE Neon, Pop!_OS, and Linux Mint.
Flatpaks are designed with reliability and security in mind. Flatpak applications are built and run in a sandboxed environment that cannot access the rest of your operating system, unless permitted to. Flatpaks also avoid the dependency issues by bundling an application with a common runtime that has a collection of common dependencies.
Flathub (the main source for Flatpak applications) is also integrated into the application sources of Pop!_OS's Pop Shop, and KDE Neon's Discover, so searching for and installing Flatpaks takes a few clicks.
Watch us install ungoogled-chromium, the De-googled Chromium browser.
Installing FlatPaks From The Command Line
If you're using Linux Mint and don't have the Flatpak integration in your store, don't fret. Installing Flatpaks through command line takes about the same amount of time.
First, search for an application on Flathub, the official Flatpak repository.
Click on the desired applications and scroll to the botttom to find the installation command. It will take the form of:
flatpak install flathub <application name>
Comparison Of Methods
Debian Packages (.deb)
- Debian packages contain metadata and executables, dependencies are listed in the metadata and installed until the main package can be installed
- The oldest method on install packages on mature systems and widely available on official app stores
- Can be installed using a graphical package installer or from the command line using tools like
- Can auto-update if installed from a repository, or the package enables a repository itself by adding it to
etc/apt/sources.list.d, the list of all locations your system will look for software & updates to those softwares. - Will not auto-update if installed from a .deb file on the internet and the package is not set up to do so (most packages found on the internet will not auto-update)
- Require you to install dependencies that may be diferent for each system
Use Case: A good option for programs you can find in your Application Store. These will be very stable and provide good performance. Debian packages are not the best fits for sensitive things (i.e - programs that connect to the internet), because these programs will have access to the system, instead of running sandboxed like Flatpaks. BE CAREFUL OF INSTALLING .DEBs off the internet as they could potentially break your dependencies.
- AppImages are self-mounting disk images that contain an application and its dependencies together
- Widely available, and are usually downloaded directly from the developer without intermediaries like an application store.
- Contains everything it needs to run within the file, and works across many distributions.
- They work seamlessly across most Linux distributions
- They don't need to be installed, just executed, simply run them from anywhere, even on a portable USB.
- They don't integrate into your desktop menu, but can be added using a .desktop file, or more simply through a Menu Editor, which creates a .desktop entry for you.
- Can auto-update using AppImageUpdate or with embedded information
- Can be run with or without sandboxing
Use Case: The best choice if you want easy installations and extreme portability of your programs, so that they can be used across distros, work well with live environments, and can be shared by USB.
- The newest fully open-source standard for application distribution
- Widely popular with with default support in many new Ubuntu based operating systems, including all 3 of the recommended distributiosn
- Flatpaks require installation from the Flathub repository
- Decentralized distribution
- Higher security, requiring apps to be ran in a sandbox
- Don't require elevated privleges (sudo) to be installed
- Require apps to be run sandboxed in BubbleWrap, where they have restriction access to parts of the OS and user data
- FlatPak applications can share dependencies and common runtimes with each other, the first few FlatPaks you download will be large downloads, but successive Flatpaks will become smaller over time as they share a larger base of runtimes and packages.
- Application dependencies run in the sandboxed environment, which can increase performance
- Initial load times are slightly slower than .debs due to the creation of the sandbox.
Use Case: The best choice for modern applications from which you want security & stability.
Gear Up & Find More Applications
You now know how to use tools to install whichever applications you desire. Head over to our Finding Applications article to see what all is out there.
Don't Miss The Tech
Read our easy-to-follow guides on privacy, security, and awesome technology weekly. By subscribing, you will also join the Above Agency mailing list.