An Ultimate Guide of “sudo apt-get update” Command in Linux

In Linux, the “sudo apt-get update” is one of the most widely used and vital commands that ensures an up-to-date system environment. This command helps maintain the system’s health and security by refreshing the package information. This article aims to provide a comprehensive overview of the “sudo apt-get update” including its basics, functionality, errors, and comparison with other commands.

Basic of “sudo apt-get update”

The “sudo apt-get command” is a command line utility used in Debian-based Linux distributions such as Ubuntu that fundamentally updates the system environment by refreshing the package repository index. In this section, I’ll break down the command “sudo apt-get update’ command in detail.

What is “sudo”?

The sudo command, short for “superuser do,” is a command line utility in Linux that allows a permitted user to execute commands with the superuser’s or another user’s privileges. The superusers or root are the authorized users who can perform administrative operations.

The root privilege enables users to perform tasks that would require administrative or root access, such as installing or removing software, modifying system configurations, and accessing restricted files or directories. The basic syntax of the sudo command is:


Here, the “options” specify additional behavior of the sudo command, and “arguments” are the parameters or options passed to the command. To learn more, you can check the article on the sudo command.

What is “apt-get”?

The apt-get is a command-line tool used for package management in Debian-based Linux distributions, such as Ubuntu. It helps users to install, remove, upgrade, and manage software packages on their system. It retrieves information and packages for installation, update, upgrade, and removal of any packages including their dependencies.

The basic syntax of “apt-get” is:

sudo apt-get [options] [command] [packages]

Here, the “sudo” ensures the root privilege, the options are the optional parameter that modifies the behavior of “apt-get”, and the packages are the package names to update, upgrade, or remove. You can use multiple packages in a single command.

For example, to update your system’s local package index, run

sudo apt-get update

How does “sudo apt-get update” Work?

The command “sudo apt-get update” refreshes the local package index, also known as the package cache, and ensures it holds the latest information about the available packages.

Here is a flow diagram illustrating the working process of the “sudo apt-get update” command: Flow diagram of the functionality of the "sudo apt-get update" command.

  1. Elevate Privileges: While running the “sudo apt-get update” command in the terminal, the sudo command grants elevated privileges to execute the subsequent command as superuser or root.
  2. Contact Repositories: The system contacts the repositories listed in the configuration files such as “/etc/apt/sources.list” and any additional files in “/etc/apt/sources.list.d/”.
  3. Retrieve Package List: The repositories provide the latest package list containing information about available packages, versions, dependencies, and metadata.
  4. Update Local Cache: The retrieved package lists are updated in the local package cache on the user’s system.

This is how the “sudo apt-get update” command updates the local package index and reflects the latest information from the repositories.

What is the Purpose of “sudo apt-get update” Command?

The purpose of the “sudo apt-get update” command is to:

  • Refresh the local package index on a Debian-based Linux system.
  • Update information about available packages and their versions from specific repositories.
  • Maintain system stability, security, and efficiency.
  • Ensure accuracy when installing, upgrading, or removing packages.
  • Protect the system against vulnerabilities using security updates and patches.

When to Run the “sudo apt-get update” Command?

Times to run the “sudo apt-get update” command include:

  1. Before installing new packages.
  2. When you want to ensure access to the latest package information and versions.
  3. To keep the system updated with the latest software version and security patches regularly.
  4. When you encounter any dependency issues or errors, you can run the “sudo apt-get update” command to resolve them.

How to Use the “sudo apt-get update” Command?

To update a Debian-based operating system, run the following command in the Ubuntu terminal and provide the root user’s password:

sudo apt-get update

The execution of the "sudo apt-get update" command.

The output of the "sudo apt-get update" command.The output shows that all the packages are up to date. Let’s break down the output to understand it more clearly:

Output Breakdown

The output shows different stages and statuses during the execution of the “sudo apt-get update” command. Here’s a breakdown of each of the status messages:

  1. ‘Hit’ indicates that the mentioned repository was reached successfully, and the package index for that repository was obtained.
  2. ‘Get’ indicates that the package index or metadata of the repository are currently being fetched.
  3. ‘Fetch’ represents the overall amount of data fetched throughout the update process from all repositories and the time it took to finish.
  4. ‘Reading Package list … Done’ denotes that the package management has completed reading the new package lists and that they have been updated correctly.
  5. ‘Building dependency tree … Done’ ensures that the installation and upgrades can be completed successfully. The package manager examines the package information and establishes dependencies between packages.
  6. ‘Reading state information … Done’ indicates that package management presently checks the system’s installed packages to ensure that updates will be applied successfully and without issues.
  7. ‘All the packages are updated’ indicates that all the package indexes have been updated successfully according to the latest package index.

Note: Best practices to keep your system healthy using the “sudo apt-get update” command:
  1. Make a habit of running “sudo apt-get update” regularly to get access to the latest software versions and security updates.
  2. After running “sudo apt-get update,” it’s advisable to follow up by executing or combining other commands like “sudo apt-get upgrade” or “sudo apt-get dist-upgrade” to not only refresh the package index but also upgrade the installed packages to their latest version.

Errors of “apt-get update”

When running the “apt-get update” command, you may encounter various errors due to issues such as repository misconfigurations, or system issues. Here are 5 commonly encountered errors when running the ‘sudo apt-get update” command:

Error 1: Failed to Download Repository Information in Ubuntu

This error occurs when the system is unable to download the package list from one or more software repositories configured in the /etc/apt/sources.list file or in files within the /etc/apt/sources.list.d/ directory. This could be due to various reasons such as network connectivity issues, misconfigured repository URLs, repository downtime, firewall or proxy restrictions, DNS resolution problems, or GPG key authentication failures.

To resolve this “failed to download repository information” error, you can check the internet connection, and verify the repository configurations.

Error 2: Hash Sum Mismatch

This error occurs when the checksum of downloaded package files does not match the expected value. This issue indicates corruption during the download process or issues with the repository server.

To resolve this “Hash sum mismatch” issue, you can clear the package file cache and update the system using the following commands respectively:

sudo apt-get clean

sudo rm -rf /var/lib/apt/lists/*

sudo apt-get update

By running these commands sequentially, you can effectively clear the package cache, remove any potentially corrupted package lists, and update the system.

Error 3: 404 Not Found

This error indicates that the package manager could not find the requested package or package list on the repository server. Any outdated or invalid repository URL or a temporary issue with the repository can cause this error.

To resolve this “404 not found” error, you can check the repository URLs in the /etc/apt/sources.list file and the /etc/apt/sources.list.d/ directory for any typographical errors or outdated URLs. Ensure the correct format of the URLs and valid repository locations.

Error 4: GPG Error

This error occurs when the package manager cannot verify the authenticity of packages downloaded from a repository due to missing or incorrect GPG keys. This error typically indicates that the GPG key for the repository is missing, invalid, or has changed.

To solve this “GPG error” issue, find and resolve Malfunction in the configuration file.

Error 5: “Could not get lock /var/lib/dpkg/lock-frontend”

This error indicates another package management process is already running and has locked the package lists directory. It can occur if another instance of apt-get or apt is running or if the package manager gets any interruption during a previous operation.

You can check for any apt processes running or not and then if it’s necessary, you can terminate the process to run the sudo apt-get update command.

What is the Difference between “apt-get update” and “apt-get upgrade”?

The main difference between “apt-get update” and “apt-get upgrade” is that the “apt-get update” updates the local package index to get the latest package information, while the “apt-get upgrade” upgrades the installed packages to their latest versions. In a nutshell, the key differences between “sudo apt-get update” and “sudo apt-get upgrade” are:

Command Purpose

apt-get update

  • Updates the local package index.
  • Downloads metadata and information about local packages.
  • It doesn’t modify any installed packages.

apt-get upgrade

  • Installs updated packages available in the repository.
  • Updates the outdated packages.


In conclusion, “sudo apt-get update” is a fundamental tool for the Debian-based Linux operating system such as Ubuntu, Linux Mint, etc. It ensures system stability, and security by refreshing the local package index with the latest information from the configured repositories. This article initiates from the basics of the “sudo apt-get update” command and covers its functionality, purpose, and errors. I trust this article has provided you with valuable insights into this subject.

People Also Ask

What is sudo apt-get update?

The “sudo apt-get update” is an essential command for the Debian-based Linux distributions to download and refresh the package indexes that are enlisted in the /etc/apt/sources.list file and in the /etc/apt/sources.list.d directory. When executed with the superuser privileges (sudo), it retrieves the latest information about available packages and their versions from the repository servers. This command doesn’t upgrade or install any packages; it simply updates the local package index to reflect the latest changes in the repositories.

Where are the Sources for Packages Defined?

The sources for packages are typically defined in the /etc/apt/sources.list file on Debian-based Linux distributions like Ubuntu. Additionally, any additional software repositories can be configured in separate files located in the /etc/apt/sources.list.d/ directory. These files contain URLs or repository locations where the package manager can find software packages and updates.

To list the content of the file, you can run the following command in the terminal:

cat /etc/apt/sources.list

Why is it important to use “sudo apt-get update”?

Using the “sudo apt-get update” command is necessary to maintain a healthy system environment. There are several reasons for its necessity also:

  1. Updates Package Index: it refreshes the local package index and ensures the latest information for the available packages.
  2. Enables Accurate Dependency Resolution:
  3. Improves Security: Running this command enhances the system’s security by maintaining the package index up-to-date.
  4. Prevents Installation Errors: An outdated package may cause installation errors while installing packages. Updating the package index helps to avoid such errors.
  5. Supports Software Installation: Numerous software installations require running the ‘sudo apt-get update” primarily. This ensures the latest version of packages to avoid compatibility issues.

Is it safe to Interrupt the “apt-get update” Command?

Yes, it is generally safe to interrupt the apt-get update command. This command fetches package lists from repositories and updates the local package index on your system. It doesn’t modify any installed packages on your system.

If any interruption comes in the way while running the “apt-get update” command for any reason, such as network issues, or manual interruption, it will stop fetching package lists. However, if you interrupt the command repetitively or frequently, it may prevent updating the package index fully, leading to outdated package information and security vulnerabilities. That’s why, it’s a good practice to let the command run and function completely.

Can You Chain the sudo apt-get update and sudo apt-get upgrade Commands?

Yes, you can chain the sudo apt-get update and sudo apt-get upgrade commands to ensure that your system is up-to-date with the latest package information and upgraded with any available updates in one go. You can chain the sudo apt-get update and sudo apt-get upgrade commands together using the following syntax:

sudo apt-get update && sudo apt-get upgrade

Here, && ensures that ‘upgrade’ runs only if ‘update’ succeeds, updating the package index first and then installing available updates.

What does “sudo apt-get dist-upgrade” do?

The “sudo apt-get dist-upgrade” command offers a more comprehensive upgrade than the “sudo apt-get upgrade” command. Specifically, dist-upgrade intelligently handles changes in package dependencies. It installs new dependencies and removes conflicting packages as necessary to maintain system consistency. It provides a more aggressive upgrading approach to the packages.

What does sudo apt full-upgrade do?

The command “sudo apt full-upgrade” is the same as “sudo apt-get dist -upgrade”.  It’s a more user-friendly version introduced in newer versions of Debian-based distributions. It upgrades installed packages to their latest available versions. It smartly handles dependency changes.

Why is it considered bad practice to use ‘sudo apt-get upgrade’ instead of ‘sudo apt-get dist-upgrade’?

The main difference between the “apt-get upgrade” and “apt-get dist-upgrade” is that the “apt-get dist-upgrade” installs the latest packages and removes unnecessary dependencies from the system. On the contrary, sudo apt-get upgrade updates the existing packages to their latest versions without handling changes in package dependencies. But it doesn’t install new dependencies or remove conflicting packages. That’s why sometimes one may consider it a bad practice to use “sudo apt-get upgrade’ rather than “sudo apt-get dist-upgrade”.

apt-get vs apt

The “apt-get” and “apt” are both command-line package management tools for Debian-based Linux distributions like Ubuntu. While apt-get is the older and more established tool, apt is a newer, more user-friendly alternative. Both can install, remove, update, and upgrade packages, but apt adds a few extra features like searching for packages, showing package details, listing installed packages, and editing software sources. It’s like having a basic and advanced mode for managing software, where apt-get is the advanced option and apt is the simpler one. To learn more, read: Apt Vs Apt-get What’s the Difference?.

Related Articles

<< Go Back to Update Packages in Linux | Package Management in LinuxLearn Linux Basics

5/5 - (1 vote)
A Complete Guide for Beginners Enroll Course Now
icon linux
Auhona Islam

Auhona Islam is a dedicated professional with a background in Electronics and Communication Engineering (ECE) from Khulna University of Engineering & Technology. Graduating in 2023, Auhona is currently excelling in her role as a Linux content developer executive at SOFTEKO to provide a more straightforward route for Linux users. She aims to generate compelling materials for Linux users with her knowledge and skills. She holds her enthusiasm in the realm of Machine Learning (ML), Deep Learning (DL), and Artificial Intelligence (AI). Apart from these, she has a passion for playing instruments and singing. Read Full Bio

Leave a Comment