Affiliate Disclosure: By buying the products we recommend, you help keep the lights on at MakeUseOf. Read more.
Welcome to Linux. Chances are your distribution came with plenty of software to cover the basics. Yet no matter how thorough of a job it did, you want to install more. The question is, how?
Installing software on Linux feels closer to a smartphone than Windows. Most of the time, you will fire up a package manager (akin to an app store) and search for the name of the application you want. From there, it’s a matter of hitting the install button.
But package managers change depending on your distro. Ubuntu uses Ubuntu Software. That’s simply a rebranded version of GNOME Software, which is what Fedora uses. Meanwhile, openSUSE does its own thing with YaST.
Package managers work by searching your distribution’s software repositories. But sometimes what you want isn’t there. Occasionally you will download a file from a website and click on it like you would a Windows EXE. Except there’s a problem. Just like there’s no single version of Linux, there’s no one universal Linux package format (though some people are trying to change that).
You need to know which file type will successfully install software for your distro. Fortunately you only need to learn a few acronyms and abbreviations to make sense of the situation.
The DEB format gets its name from Debian, a Linux distro and one of the largest open source projects in existence. You can click a DEB to install an application directly or search in a package manager to have it do the job for you in the background. In the terminal, you use the
dpkg command, for example:
sudo dpkg -i /home/user/software.deb
Since Ubuntu is based on Debian, DEBs are easy to find. With millions of users and strong name recognition, Ubuntu and DEBs have become the Windows and EXEs of the Linux world.
Debian and Ubuntu both use the DEB file format, but packages that work in one may not in the other. Packages are sometimes compatible with both, such as with Google Chrome. Don’t assume that this is the case. Make sure you download DEBs intended for your distribution.
Popular distros that use DEB:
- Linux Mint
RPM originally stood for Red Hat Package Manager. Now the acronym is recursive, standing for RPM Package Manager. Either way, the origins are with Red Hat. The North Carolina-based organization that went on to become the world’s first billion dollar open source company developed the format for Red Hat Linux. As a result, this is what you find throughout the Red Hat ecosystem.
That means if Fedora is your distro of choice, this is the package file type you will use to install software. When you click on an RPM, it will open up inside GNOME Software.
Despite the name, Red Hat-related distros are not the only ones to use RPMs. openSUSE is another prominent community that has adopted RPM. You can install these using YaST, the distribution’s one-stop-shop for doing most system management.
Either way, you can install packages using the
rpm command, for example:
rpm -ivh /home/user/software.rpm
Fedora and openSUSE both use RPMs, but the packages are not interchangeable. Again, make sure the RPM you download is intended for your distribution.
Popular distros that use RPM:
- Red Hat Enterprise Linux
- SUSE Linux Enterprise Server
I know I said there isn’t a universal package format for Linux, but that isn’t 100% true. When you see an app packaged as a TAR, TGZ, or TAR.GZ, there’s a good chance it will run on your machine. The problem is that installation isn’t as simple as pointing your cursor or entering a single command. Installing a TAR file is worthy of its own separate guide.
That’s because this archive doesn’t ship in an executable format. Instead it contains the source files needed to build the application in question. Some TAR files come with their own personal installation instructions, and the resulting program may not automatically appear in your application menu.
Popular distros that exclusively use TAR:
- Arch Linux
More Where That Came From
The three types listed above aren’t the only package formats for Linux, but they are the most common. Some distros develop their own types that aren’t used elsewhere. Gentoo has ebuild. Pardus has PiSi (short for Packages Installed Successfully as Intended). Android, which is technically a Linux distro, uses APK.
Why Are Package Formats So Weird?
Each type is an archive containing what an application needs to run plus the metadata required by a package manager. Since different distros use different tools and repositories, what goes into that metadata varies. That is why even formats that share the same name, such as Fedora and openSUSE RPMs, aren’t guaranteed to be compatible.
What do you think of installing software on Linux? How does it compare to other operating systems? Could it be improved? Share your thoughts, and if you have any questions, don’t hesitate to ask!