As you are reading this article then you probably are a Ubuntu user. Ubuntu is a very popular linux distro that has great software support and an online community.
When you install new software on Ubuntu, you use the sudo apt install command to install it. But have you ever wondered how these APT commands work?
Well, this question leads us to Ubuntu repositories.
Concept of Ubuntu Repositories And PPA
Ubuntu repositories are the storage location of software packages. Ubuntu uses APT Package Manager to manage software packages for your desktop. APT is a set of commands that helps you to install, remove, update, and reinstall the software.
The repository information is available in the /etc/apt/sources.list file and the files are listed in /etc/apt/sources.list.d directory.
APT uses the Ubuntu repositories to locate the pre-compiled packages of software. These packages include all the metadata (name, version, description) and dependencies of the software.
When you run the sudo apt update command, it grabs all the software information from the repositories and creates a local cache using that metadata. You can see this in the /var/lib/apt/lists directory.
When you try to install software, it matches the package name from the cache. And if the package is available on a repository then it connects to the Internet and downloads all the dependencies and software packages from that repository
But sometimes we may face an issue of software unavailability. Even though the package name is correct and you know this software is available for Ubuntu/Linux.
The problem here is the missing repository information in the source file located in /etc/apt/sources.list file. You need to activate or register the appropriate repository to get the software. Without the proper software package location, the APT package manager won’t be able to fetch the package.
How Many Repositories Does Ubuntu Have?
Ubuntu offers five different categories of repositories to maintain its software packages. These are –
- Main
- Universe
- Multiverse
- Restricted
- Partner
A couple of questions may arise in your mind:
- Why are there five different repositories?
- Why not put every software package in a single repository?
Well, before asking these questions, we have to acknowledge that every single piece of software can not be maintained equally. You have to prioritize the software according to its need or importance. At the same time, Ubuntu does not maintain everything the linux community has. That’s why Ubuntu has five different categories.
Apart from that, there are also third-party repositories and PPA (Personal Package Archive) available that which Ubuntu has no authority.
What are third-party repositories and PPAs? How do they work? Well, We will get to that later in this article.
Let’s See How Ubuntu Repositories Work
Though Ubuntu offers five different repositories, they do not get maintained equally. Every repository has its purpose. Let’s begin, shall we?
Main
This repository is enabled by default after installing Ubuntu. This Main repository consists of only FOSS (Free and Open Source Software) applications. This software can be distributed freely without any restrictions.
Every package of this repository is fully supported by Ubuntu developers. Ubuntu provides all the security patches and system updates through this repository.
This repository is fully controlled by Canonical and Ubuntu developers.
Universe
The Universe is a community-driven repository consisting of a vast number of free and open-source software. This software is maintained by the community and Ubuntu does not guarantee regular security updates of this software.
The Ubuntu community is very active and provides updated applications. If you want to use a large number of FOSS software then activate the Universe repository using the following command.
sudo add-apt-repository universe
Multiverse
Ubuntu/Linux doesn’t mean everything is FOSS (Free and Open Source Software). There are many software available that can not be distributed freely due to licensing and legal issues.
For example, Microsoft Core Fonts. Ubuntu can not directly support MS core fonts even though they are free. Microsoft does not allow its fonts to use on other platforms outside the MS ecosystem. U have to accept the EULA before using them.
Ubuntu can not provide direct support, updates, or fix. It is up to you whether you use software from this repository or not.
To activate this repository, run the following command.
sudo add-apt-repository multiverse
Restricted
The Restricted repository consists of closed-source software. This software is hardware drivers that are officially supported by Canonical. Ubuntu developers always try to offer open-source software but sometimes it can not be possible due to hardware compatibility.
Hardware manufacturers offer their drivers via this repository and Ubuntu developers or Canonical support those drivers officially. For example, your Nvidia or AMD graphics cards get the graphics drivers from this repository and these are officially supported.
You can enable these drivers from the Additional Drivers tool in Ubuntu. Or run the following command to enable it.
sudo add-apt-repository restricted
Partner
This repository is for Canonical partners that offer some free but closed-source software. For example, Adobe Flash Player.
The easiest way to enable this repository is to search for “Software & Updates” from the app menu and open it. Click on the “Other software” tab and tick the “Canonical Partners” option and close it. Wait until Ubuntu finishes updating the cache.
Now you can use its software from the Ubuntu Software Center.
Third-party Repositories And PPA
Third-party developers use their repositories to maintain their software and provide updates and fixes. As Ubuntu does not have any authority over these repositories, it is up to you whether you use these third-party repositories or not. On the other hand, PPA works slightly differently. PPA stands for “Personal Package Archive”. Ubuntu provides a platform called launchpad where developers can create their repositories.
Ubuntu ensures software stability over bleeding-edge technology. For this reason, you may find slightly older versions of your app in Ubuntu repositories. When developers create a new version of any software, Ubuntu does not include it immediately. They need to test them before publishing them in their repositories.
With PPA, you can easily download and try the latest version of your software, if you like to tinker with bleeding-edge technology. But remember, bleeding-edge software always has bugs and instability issues. So use it at your own risk.
Another thing is, that not all software is available on Ubuntu Software Center or repositories. Some software needs the proper PPA listed in the source file before installation.
Conclusion
I hope now you understand the concept of Ubuntu repositories. It’s a way of archiving software and its dependencies so that developers can maintain them easily and efficiently.
If you have any questions or suggestions, please let us know in the comment section below. If this article helps you then don’t forget to share it.