PPA in Ubuntu – A Brief Introduction

UNDERSTANDING PPAs

Let’s talk about what PPA in Ubuntu means. Linux, being open-source software, has a huge community around it contributing to the ecosystem. Some of these users wish to distribute their own software and packages but not all of them are accepted in the default Ubuntu repositories. This is where third-party repositories or PPA’s come into play.

What is a PPA in Ubuntu?

Personal Package Archive (PPA) is a way for developers to distribute their software on Debian, Ubuntu, and other Debian-based distributions. With PPA, developers don’t have to rely on their software to get accepted in the default Ubuntu repositories, but instead, they can make their own repository and simply ask the user to add that repository to the sources.

To understand more clearly you need to know how a basic software management system works.

When you do a apt install firefox to install the Firefox browser, the apt utility searches for Firefox in all the repositories that are in its sources list. The firefox browser is usually in the Main repository, which is present in Ubuntu by default.

After identifying the repository which holds Firefox, apt proceeds to go to the link of that repository, download the firefox package and install it.

There are four main repositories present in Ubuntu by default. Main, which is the official Canonical repository, popular, reliable, and free software supported by the Ubuntu team.

The second is Universe which contains community-maintained free and open-source software. Then there are the Restricted and Multiverse repositories which contain proprietary drivers and copyright-ed software respectively.

However, if you wish to distribute some software that is not present in any of these repositories, you can publish your own personal repository through Launchpad for other Ubuntu users to access. These third-party repos are called PPAs.

If you are wondering that why does a developer needs a full-fledged repository to distribute software, instead of just allowing the users to download .deb packages from their websites, the answer is convenience.

With the third-party repository (PPA) added to your sources, you won’t have to visit the website every time you want to update the software. Instead, you can update that software, like how you update all your software, with a apt-get update

How to add a PPA in Ubuntu?

Here I will be adding the PPA managed by the OBS project.

sudo add-apt-repository ppa:obsproject/obs-studio
Adding A PPA

The add-apt-repository command adds the PPA to sources. To confirm this, you can check your sources list.

 ls /etc/apt/sources.list.d/
Repository Sources List

As you can see apart from the official packages, I have a Lyx PPA, ProtonVPN PPA and an OBS PPA added to the list.

How to install a software from the PPA?

Now that you have added the PPA, just update the system and then you can install all the software present in the PPA using the system package manager.

sudo update 
sudo apt install obs-studio

How to remove a PPA?

You can remove any PPA by using apt-add-repository –remove followed by the PPA name.

apt-add-repository --remove ppa:obsproject/obs-studio

Not all PPAs can be trusted

PPAs aren’t verified by anyone. By installing them you are basically trusting that the developer of the PPA and their code. So before installing PPAs, you should always check if they come from a trustworthy source, have a decent userbase, are updated etc.

And in general installing third-party tools for each job might not be a good idea. For example, you don’t need an app you display your battery temperature. You can do it now on your own using the single standard command, “acpi -V

Having said this, I think the concerns of PPAs having potentially harmful code is minimal and I have personally never experienced any in 4 years of using Linux.

Conclusion

PPAs are just one of the ways to distribute third-party software. To publish your own repository and learn more you can visit Launchpad and browse cool PPAs you can visit this page. Keep exploring!