AppImage

For years, we have DEB packages for Debian/Ubuntu-based Linux distributions and RPM for Fedora/SUSE based Linux distributions.

While these packages provide a convenient way of installing software to their respective distribution users, it is not the most convenient for the application developer. The developers have to create multiple packages for multiple distributions. This is where AppImage comes into the picture.

AppImage is a universal software package format. By packaging the software in AppImage, the developer provides just one file ‘to rule them all’. End-user, i.e. you can use it in most (if not all) modern Linux distributions

AppImage doesn’t install software in the traditional way

A typical Linux software will create files at various places, requiring root permission to make these changes to the system.

AppImage doesn’t do it. In fact, AppImage doesn’t really install the software. It is a compressed image with all the dependencies and libraries needed to run the desired software.

You execute the AppImage file, you run the software. There is no extraction, no installation. You delete the AppImage file, the software is removed. You can compare it to .exe files in Windows that allow you to run the software without actually going through the installation procedure.

How to use AppImage in Linux

Using AppImage is fairly simple. It is done in these 3 simple steps:

  • Download AppImage file
  • Make it executable
  • Run it

PPA and How it is Used

what is PPA? Why is it used? Is it safe to use PPA?

I’ll answer all of the above questions in this detailed guide. Even if you already know a few things about PPAs, I am sure this article will still add to your knowledge.

Do note that I am writing this article using Ubuntu. Therefore I’ll use the term Ubuntu almost everywhere but the explanations and steps are also applicable to other Debian/Ubuntu-based distributions.

PPA stands for Personal Package Archive. Does that make sense? Probably not.

Before you understand PPA, you should know the concept of repositories in Linux. I won’t go into details here though.

Concept of repositories and package management

A repository is a collection of files that has information about various software, their versions and some other details like the checksum. Each Ubuntu version has its own official set of four repositories:

  • Main – Canonical-supported free and open-source software.
  • Universe – Community-maintained free and open-source software.
  • Restricted – Proprietary drivers for devices.
  • Multiverse – Software restricted by copyright or legal issues.

You can see such repositories for all Ubuntu versions here. You can browse through them and also go to the individual repositories. For example, Ubuntu 20.04 main repository can be found here.

So basically it’s a web URL that has information about the software. How does your system know where are these repositories?

This information is stored in the sources.list file in the directory /etc/apt. If you look at its content, you’ll see that it has the URL of the repositories. The lines with # at the beginning are ignored.

Now when you run the command sudo apt update, your system uses the APT tool to check against the repo and stores the information about the software and their version in a cache. When you use the command sudo apt install package_name, it uses the information to get that package from the URL where the actual software is stored.

If the repository doesn’t have the information about a certain package, you’ll see an error like:

E: Unable to locate package

Why we need PPA’s

As you can see, Ubuntu controls what software and more importantly which version of the software you get on your system. But imagine if a software developer releases a new version of the software. Ubuntu won’t make it available immediately. There is a procedure to check if the new version of the software is compatible with the system or not. This ensures the stability of the system.

But this also means that it will be some weeks or in some cases, some months before it is made available by Ubuntu. Not everyone would want to wait that long to get their hands on the new version of their favorite software. Similarly, suppose someone develops software and wants Ubuntu to include that software in the official repositories. It again will take months before Ubuntu makes a decision and includes it in the official repositories. Another case would be during beta testing. Even if a stable version of the software is available in the official repositories, a software developer may want some end-users to test their upcoming release. How do they enable the end-user to beta test the upcoming release?

Similarly, suppose someone develops a software and wants Ubuntu to include that software in the official repositories. It again will take months before Ubuntu makes a decision and includes it in the official repositories.

Another case would be during  beta testing. Even if a stable version of the software is available in the official repositories, a software developer may want some end users to test their upcoming release. How do they enable the end user to beta test the upcoming release?

Enter PPA!

How to use PPA? How does PPA work?

PPA, as I already told you, means Personal Package Archive. Mind the word ‘Personal’ here. That gives the hint that this is something exclusive to a developer and is not officially endorsed by the distribution.

Ubuntu provides a platform called Launchpad that enables software developers to create their own repositories. An end user i.e. you can add the PPA repository to your sources.list and when you update your system, your system would know about the availability of this new software and you can install it using the standard sudo apt install command like this.

sudo add-apt-repository ppa:libreoffice/ppa

sudo apt update

sudo apt install libreoffice

To summarize:

  • sudo add-apt-repository <PPA_info> <– This command adds the PPA repository to the list.
  • sudo apt-get update <– This command updates the list of the packages that can be installed on the system.
  • sudo apt-get install <package_in_PPA> <– This command installs the package.

You see that it is important to use the command sudo apt update or else your system will not know when a new package is available.

Official PPA vs unofficial PPA

You may also hear the term official PPA or unofficial PPA. What’s the difference?

When developers create PPA for their software, it is called the official PPA. Quite obviously because it is coming from none other than the project developers. But at times, individuals create a PPA of projects that were created by other developers.

Why would someone do that? Because many developers just provide the source code of the software and you know that installing software from source code in Linux is a pain and not everyone could or would do that.

This is why volunteers take it upon themselves to create a PPA from those source code so that other users can install the software easily. After all, using those 3 lines is a lot easier than battling the source code installation.

Make sure that a PPA is available for your distribution version

When it comes to using PPA in Ubuntu or any other Debian based distribution, there are a few things you should keep in mind.

Not every PPA is available for your particular version. You should know which Ubuntu version you are using. The codename of the release is important because when you go to the webpage of a certain PPA, you can see which Ubuntu versions are supported by the PPA.

For other Ubuntu-based distributions, you can check the content of /etc/os-release to find out the Ubuntu version information.

.Deb

If you’re completely new to Ubuntu, you might be wondering about how to install applications.

The easiest way is to use the Ubuntu Software Center or any software center that is part of your flavor of Ubuntu (Discover for Kubuntu). Search for an application by name and install it from there. Life would be too simple if you could find all the applications in the Software Center. That’s not the case, unfortunately.

Some software is available via ‘deb’ packages. These are archived files that end with the .deb extension. You can think of .deb files as like .exe files in Windows. You double click on the .exe file and it starts the installation procedure in Windows. Deb packages are pretty much the same.

You can find these deb packages in the download section of a software provider’s website. For example, if you want to install Google Chrome on Ubuntu, you can download the Chrome deb package from its website.

Now the question arises, how do you install deb files? There are multiple ways of installing deb packages on Ubuntu. I’ll show them to you one by one in this tutorial.

The simplest method is to use the default software center in Ubuntu. There’s nothing special to do here. Simply go to the folder where you downloaded the .deb file (usually the Downloads folder) and double click on the file.

It will open the software center, where you should see the option to install the software. All you have to do is to hit the install button and enter your login password.

Install Google Chrome in Ubuntu Software Center
The installation of the deb file will be carried out via the Software Center

See, it’s even more simple than installing from a .exe file on Windows.