apt command in Linux with examples

apt is a command line utility for installing, updating, and removing deb packages on Ubuntu, Debian, and their derivatives.

This is because the apt command integrates the functions of apt-get, apt-cache & apt-config along with essential commands in a well organized manner.

apt command is suitable for end users and does not contain some of the additional features of apt-get command. apt was designed to fix some of the fundamental dependency flaws in apt-get.

After Ubuntu 16.04 release, the apt command grabbed attention from users, rather than the traditional apt-get command.

In this tutorial, we will show you how to use apt commands to manage packages in Debian and Ubuntu based Linux distributions.

Refer the following article to know the difference between apt vs apt-get command.

Common syntax & file location of apt command

General syntax of apt command is as follow.

apt [options] [package 1] [package 2]...[package n]

Important apt configuration files are as follow.

File NameDescription
/etc/apt/apt.confMain apt configuration file
/etc/apt/sources.listMain apt source repositories configuration file
/etc/apt/sources.list.d/apt additional software repositories configuration location
/var/cache/apt/archives/apt’s cached files are located
/var/log/apt/history.logMost recent apt history logs

1) Updating package index

APT package index is a database that contains information of available packages from the various repositories enabled in system.

Run the following command to update the package database, which pulls the updated package records from the APT repositories.

$ sudo apt update

2) Installing packages with apt

If you already know the name of the package that needs to be installed, use the following command and replace the [package_name] with the desired package.

sudo apt install [package_name]

For example, to install apache2, run the below command. Add -y with the apt command to bypass confirmation from you when installing the package.

$ sudo apt install apache2
or
$ sudo apt -y install apache2

To install multiple packages at once, specify them with space-separated.

$ sudo apt install [package_1] [package_2]

To install local deb files, run the following command.

$ sudo apt install /path/to/file.deb

3) Removing packages using apt

Run the following command to remove an installed packages from the system. At the same time multiple packages can be removed by separating them by space.

$ sudo apt remove package_name

The ‘remove’ command will uninstall the given package, but it may leave some configuration files in the system. To remove the package and associated configuration files, use the following command.

$ sudo apt purge package_name

4) Removing unused packages

Whenever a new package is installed on the system that installs related dependencies.

Unused dependency packages remain on the system whenever any package is removed using the ‘remove’ or ‘purge’ command, which are no longer needed by the system.

The ‘autoremove’ command removes all unwanted dependencies left on the system.

$ sudo apt autoremove

5) Upgrading packages

Available updates must be installed regularly to keep the system up-to-date and more secure.

Run the following command to upgrade the all installed packages to their latest versions, but existing package will never removed.

$ sudo apt upgrade

To upgrade a single package, run:

$ sudo apt install --only-upgrade package_name

6) How to use full-upgrade

full-upgrade works the same as upgrade, but it also removes the installed packages if needed to perform system upgrades.

$ sudo apt full-upgrade

7) Searching packages

If you do not know the exact package name you want to install, use the search command that returns the matching string. For example, run the following command to search the list of packages related to ftp.

$ sudo apt search ftpd
p   atftpd                          - advanced TFTP server                      
p   atftpd:i386                     - advanced TFTP server                      
p   ftpd                            - File Transfer Protocol (FTP) server       
p   ftpd:i386                       - File Transfer Protocol (FTP) server       
p   ftpd-ssl                        - FTP server with SSL encryption support    
p   ftpd-ssl:i386                   - FTP server with SSL encryption support    
p   gadmin-proftpd                  - GTK+ configuration tool for proftpd       
p   gadmin-proftpd:i386             - GTK+ configuration tool for proftpd       
p   gadmin-proftpd-dbg              - GTK+ configuration tool for proftpd debug 
p   gadmin-proftpd-dbg:i386         - GTK+ configuration tool for proftpd debug

8) Check package information

To know the detailed information about a package before proceeding with the installation. Use the below command which gives package dependencies, version, installation size, packages source, etc,.

$ sudo apt show nano
Package: nano
State: installed
Automatically installed: no
Version: 2.2.6-1ubuntu1
Priority: standard
Section: editors
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 614 k
Depends: libc6 (>= 2.14), libncursesw5 (>= 5.6+20070908), libtinfo5, dpkg (>=
         1.15.4) | install-info
Suggests: spell
Conflicts: pico, pico, nano
Breaks: alpine-pico (<= 2.00+dfsg-5), alpine-pico (<= 2.00+dfsg-5)
Replaces: pico, pico
Provides: editor
Description: small, friendly text editor inspired by Pico
 GNU nano is an easy-to-use text editor originally designed as a replacement for
 Pico, the ncurses-based editor from the non-free mailer package Pine (itself
 now available under the Apache License as Alpine). 
 
 However, nano also implements many features missing in pico, including: 
 * feature toggles; 
 * interactive search and replace (with regular expression support); 
 * go to line (and column) command; 
 * auto-indentation and color syntax-highlighting; 
 * filename tab-completion and support for multiple buffers; 
 * full internationalization support.
Homepage: http://www.nano-editor.org/
</[email protected]>

9) How to clear apt cache

This command removes ‘.deb’ files for packages that are no longer installed on your system, removing these files from ‘/var/cache/apt/archives’ directory may free up a significant amount of disk space.

$ sudo apt clean
$ sudo apt autoclean

10) Downloading ‘.deb’ package

To download a ‘.deb’ package without installing it, run the following command

$ sudo apt download package_name
$ sudo apt download nano

11) Check broken dependencies

It is is a diagnostic command which update package lists and check for broken dependencies.

$ sudo apt check

12) Fix broken packages

When you encounter “unmet dependencies” when installing the package, run the below command to repair the broken packages.

$ sudo apt -f install

13) Listing packages

The ‘list’ command will display the available, installed and, upgradable packages.

To list all available packages use the following command

$ sudo apt list

To list available package updates.

$ sudo apt list --upgradeable

To list only the installed packages.

$ sudo apt list --installed

14) Finding files belonging to a particular package

Use the below command to find files and their location which is belongs to a particular package.

$ sudo apt content package_name

$ sudo apt content nano
/.
/bin
/bin/nano
/bin/rnano
/etc
/etc/nanorc
/usr
/usr/bin
/usr/bin/nano
/usr/share
/usr/share/doc
/usr/share/doc-base

Use the command below to find a list of files in the package.

$ sudo apt contains package_name

15) Checking package dependencies

Run the following command to check all dependencies for a particular package.

$ sudo apt depends package_name

$ sudo apt depends nano
nano
  Depends: libc6
  Depends: libncursesw5
  Depends: libtinfo5
 |Depends: dpkg
    dpkg:i386
  Depends: install-info
    install-info:i386
  Suggests: spell
  Conflicts: 
  Conflicts: 
  Breaks: alpine-pico
  Breaks: alpine-pico:i386
  Replaces: 
  Replaces: 
  Conflicts: nano:i386

To verify missing dependencies for a package.

$ sudo apt recommends nano
No missing recommended packages were found for nano

16) How to check installed package version

Run the below command to verify the version of package installed in the system.

$ sudo apt version nano
2.2.6-1ubuntu1

17) Checking changelog of the package

The ‘changelog’ command is used to check the list of changes were made on the package by the development team. Often, it is used to verify that a particular ‘CVE’ issue has been fixed.

$ sudo apt changelog package_name

$ sudo apt changelog curl
curl (7.35.0-1ubuntu2.6) trusty-security; urgency=medium

  * SECURITY UPDATE: NTLM credentials not-checked for proxy connection
    re-use
    - debian/patches/CVE-2016-0755.patch: fix ConnectionExists to compare
      Proxy credentials in lib/url.c.
    - CVE-2016-0755

 -- Marc Deslauriers <[email protected]>  Tue, 26 Jan 2016 12:10:58 -0500

curl (7.35.0-1ubuntu2.5) trusty-security; urgency=medium
</[email protected]>

18) Adding PPAs

Use the below command to add a third party PPAs in the system.

$ sudo apt add-repository ppa:PPA_name

19) apt man page

If you want to explore any other commands not listed here, go to the man page of the apt command.

$ man apt
or
$ apt --help

Conclusion

This tutorial explains how to manage packages using apt command in Debian/Ubuntu systems.

About Magesh Maruthamuthu

Love to play with all Linux distribution

View all posts by Magesh Maruthamuthu

3 Comments on “apt command in Linux with examples”

  1. Thanks for the really helpful post. I think you have accidentally used apt-get in 2 and 12. You may want to correct this

Leave a Reply

Your email address will not be published. Required fields are marked *