Searching Packages

You know you need "something for editing images" but don't know the package name. Let's find it.

Search by Name or Description

Terminal
$apt search image editor
Sorting... Done Full Text Search... Done gimp/jammy 2.10.30-1 amd64 GNU Image Manipulation Program krita/jammy 5.0.2-1 amd64 pixel-based image manipulation program inkscape/jammy 1.1.2-1 amd64 vector-based drawing program

apt search looks through package names and descriptions.

Search is Case-Insensitive

apt search NGINX and apt search nginx return the same results.

Get Package Details

Found something interesting? Get more info:

Terminal
$apt show gimp
Package: gimp Version: 2.10.30-1build1 Priority: optional Section: graphics Maintainer: Ubuntu Developers Installed-Size: 19.5 MB Depends: libgimp2.0 (>= 2.10.30), libgtk2.0-0... Recommends: gimp-data, ghostscript Suggests: gimp-help-en, gimp-data-extras Homepage: https://www.gimp.org/ Description: GNU Image Manipulation Program GIMP is an advanced picture editor...

This shows:

  • Version
  • Size
  • Dependencies
  • Description
  • Homepage

List Package Contents

What files does a package install?

Terminal
$# For installed packages
$dpkg -L nginx
/usr/sbin/nginx /etc/nginx/nginx.conf /var/log/nginx ...
$
$# For not-yet-installed packages
$apt-file list nginx
(requires apt-file to be installed)

Find Which Package Provides a File

"I need the dig command but it's not installed. Which package has it?"

Terminal
$apt-file search /usr/bin/dig
dnsutils: /usr/bin/dig
$
$# Or search by command name
$apt-file search bin/dig
dnsutils: /usr/bin/dig bind9-dnsutils: /usr/bin/dig

Install apt-file First

apt-file isn't installed by default: sudo apt install apt-file && sudo apt-file update

Check Available Versions

Terminal
$apt policy nginx
nginx: Installed: 1.18.0-6ubuntu14 Candidate: 1.18.0-6ubuntu14.3 Version table: 1.18.0-6ubuntu14.3 500 500 http://archive.ubuntu.com/ubuntu jammy-updates/main *** 1.18.0-6ubuntu14 500 500 http://archive.ubuntu.com/ubuntu jammy/main

Shows installed version, available version, and which repository provides it.

List Upgradable Packages

Terminal
$apt list --upgradable
Listing... Done bash/jammy-updates 5.1-6ubuntu1.1 amd64 [upgradable from: 5.1-6ubuntu1] coreutils/jammy-updates 8.32-4.1ubuntu1.2 amd64 [upgradable from: 8.32-4.1ubuntu1]

Search Installed Only

Terminal
$apt list --installed | grep python
python3/jammy,now 3.10.6-1~22.04 amd64 [installed] python3-apt/jammy,now 2.4.0 amd64 [installed,automatic]
Knowledge Check

How do you find which package provides the 'convert' command?

Quick Reference

CommandPurpose
apt search keywordSearch packages
apt show packagePackage details
dpkg -L packageList installed files
apt-file search fileFind package by file
apt policy packageVersion info
apt list --upgradablePending updates

Key Takeaways

  • apt search finds packages by name/description
  • apt show gives detailed package information
  • apt-file search finds which package owns a file
  • apt policy shows version information
  • dpkg -L lists files in an installed package

Next: adding third-party repositories.