Understanding Ubuntu’s Repository System

Learn the underlying mechanism of the repository system in Ubuntu to better handle the package management and avoid common update errors.
Warp Terminal

When you start using Ubuntu or an Ubuntu-based distribution, soon you’ll find yourself using apt commands to install software like this:

sudo apt install package_name

You’ll probably also install additional software using the 3-step PPA command:

sudo add-apt-repository ppa:PPA_Name/ppa
sudo apt update
sudo apt install package_from_ppa

And when you start adding random external repositories, you’ll encounter update errors sooner or later.

Now, you can search for the error on the internet and perhaps fix it as well. Most of the time, you won’t understand what causes the problem and how it was fixed.

But if you understand the repository mechanism in Ubuntu, you’ll understand the root cause of the problem and fix it accordingly.

You might find all this information in fragments on It’s FOSS and various forums. But the fragmented information is not easy to understand.

Hence, I created this page to give you a comprehensive understanding of how the repository system works.

This guide also benefits the users of Linux Mint, elementary OS and other distributions based on Ubuntu (and perhaps Debian).

📋
This is intended for end users, not developers. I will not show you how to package an application for Ubuntu. You’ll get the necessary knowledge for maintaining your system’s repository sources.

Let's start with the essentials first. Understands the basic concept of the package manager and the repositories. This will build a foundation for you to understand how things work underneath.

Chapter 1: What is a Package Manager?

In simpler words, a package manager is a tool that allows users to install, remove, upgrade, configure and manage software packages on an operating system.

Ubuntu provides the software through repositories. The repositories contain software packages of different kinds. They also have metadata files that contain information about the packages such as the name of the package, version number, description of package and the repository name etc.

The package manager interacts with the metadata and creates a local metadata cache on your system. When you ask it to install a software, the package manager refers to this cache to get the information and then uses the internet to connect to the appropriate repository and downloads the package first before installing it on your system.

This article explains the working of the package manager in a bit more detail. Do check it out.

What is a Package Manager in Linux?
Learn about packaging system and package managers in Linux. You’ll learn how do they work and what kind of package managers available.

Chapter 2: Ubuntu’s Default Repositories

From the previous section, you have some idea of the repositories.

You may have guessed that there is not a single repository that contains all the packages. Why not? Because it is categorized to have the packages in different repositories so that they can be enabled or disabled accordingly.

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.
How to Enable Universe and Multiverse Repositories in Ubuntu
This detailed article tells you about various repositories like universe, multiverse in Ubuntu and how to enable or disable them.

Chapter 3: Understanding sources.list

The sources.list is an integral part of Ubuntu's repository mechanism. Several update-related issues find their root cause in the incorrect entries in the sources.list file.

This is why it is important to understand it.

Sources.list is basically a text file that contains the repository details. Each uncommented line represents a separate repository.

sources.list in Ubuntu

But these entries follow a specific format and should not have duplicate entries. Read more about them in the article below.

What is the Use of sources.list File in Ubuntu Linux?
Understanding the concept of sources.list in Ubuntu will help you understand and fix common update errors in Ubuntu.

Chapter 3: Going in-depth with PPA

Though Snaps are pushed by Ubuntu a lot these days, PPAs are still a reliable way to get newer software in Ubuntu.

Many Ubuntu users blindly run three commands to use the PPA and naturally end up with issues like 'repository does not have release file'.

This is an in-depth and one-of-a-kind guide on PPA. It will improve your knowledge tremendously.

Understanding PPA in Ubuntu Linux [Ultimate Guide]
An in-depth article that covers almost all the questions around using PPA in Ubuntu and other Linux distributions.

Chapter 4: Adding External Repositories

Apart from the default repositories and PPAs, you will also add software from their party repositories. Softwares like Brave browser, Docker and many more provide dedicated repositories for Ubuntu.

Understand the mechanism of using external repositories.

Installing Packages From External Repositories in Ubuntu
Learn the logic behind each step you have to follow for adding an external repository in Ubuntu and installing packages from it.

Chapter 5: Troubleshooting Common Errors

Now that you are familiar with the underlying mechanism, it's time to get familiar with the typical update errors you might encounter while using Ubuntu.

When you see go through the error, you may start getting the hint about the root cause. And when you go through the root cause, you will understand how the specific solution fixes it.

And that's the aim of this page. To give you enough under-the-hood knowledge on the package management system so that you can avoid common errors or effectively fix them.

You'll understand the why along with the how.

Failed to Download Repository Information

If you encounter this error, it's just the beginning of your investigation.

Failed to download repository information

While the internet connection could be the issue in some cases, chances are that you have an issue because of some repository you added or wrong entries in the sources.list.

You should jump into the terminal and (try to) refresh the package cache.

sudo apt update

Look at the last few lines of the output. It will give you the error message (lines starting with E:). When you have the error message, your troubleshooting begins.

Repository Does Not Have a Release File

A common error Ubuntu users encounter while blindly adding PPAs to the system without checking if the PPA exists for their Ubuntu version or not.

E: The repository ‘http://ppa.launchpad.net/numix/ppa/ubuntu focal Release’ does not have a Release file.

Let me give you a hint. The repository is not configured for the Ubuntu version being used.

What to do When You See “Repository does not have a release file” Error in Ubuntu
One of the several ways of installing software in Ubuntu is by using PPA or adding third-party repositories. A few magical lines give you easy access to a software or its newer version that is not available by default in Ubuntu. All thing looks well and good until you get

Problem With MergeList

If you see an error like this:

E:Encountered a section with no Package: header,
E:Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise_universe_binary-i386_Packages,
E:The package lists or status file could not be parsed or opened.

It indicates that somehow the cached file mentioned in the second line got corrupted. The fix is to empty the cache and repopulate it.

How To Fix Ubuntu Update Error: Problem With MergeList
One of the most common error a user encounters while updating is Problem with MergeList. The error could be encountered while using both Ubuntu Update Manager and using the sudo apt-get update in terminal. The complete error looks something like this: E:Encountered a section with no Packag…

Target Packages is configured multiple times

Alright! Technically, not an error. It's just a warning. But it is still quite common and could trouble many new Ubuntu users.

This is a good example for putting your newly acquired knowledge here.

There are duplicate entries in the sources.list files and that's causing the issue. The solution is to delete all the duplicate lines keeping just one.

[Solved] Target Packages is configured multiple times Error
Seeing repository configured multiple times error while updating your system with apt update command? Here’s what you can do about it.

Continue Learning

I hope you have a slightly better understanding of the repository mechanism in Ubuntu. The next time you encounter an error and come across a solution, you are more likely to understand what's going on.

Next, you should learn to use the apt command for package management. There's more than just apt install or apt remove.

Using apt Commands in Linux [Ultimate Guide]
This guide shows you how to use apt commands in Linux with examples so that you can manage packages effectively.

You may also go a bit into detail about package management.

How To Install And Remove Software In Ubuntu [Complete Guide]
Brief: This detailed guide shows you various ways to install applications on Ubuntu Linux, and it also demonstrates how to remove installed software from Ubuntu. When you switch to Linux, the experience could be overwhelming at the start. Even basic things like installing applications on Ubuntu…

Since Ubuntu is pushing for Snaps more than ever, learn the essential Snap commands.

Using Snap Packages In Ubuntu & Other Linux [Complete Guide]
Ubuntu’s new universal package Snaps are now everywhere. You should learn the essential snap commands to master this new packaging system.

Flatpak applications are also gaining popularity and you may come across them sooner or later.

Install and Use Flatpak on Ubuntu
Ubuntu may come with Snap by default but you could still enjoy the Flatpak universal packages on it.

💬 I hope you enjoyed learning about the repository mechanism and has more clarity on package management. Do share your thoughts in the comment section.

About the author
Abhishek Prakash

Abhishek Prakash

Created It's FOSS 11 years ago to share my Linux adventures. Have a Master's degree in Engineering and years of IT industry experience. Huge fan of Agatha Christie detective mysteries 🕵️‍♂️

It's FOSS

Making You a Better Linux User

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.