10

When running apt depends on some packages (e.g. libgtk3-dev on Ubuntu 24.04), some names are surrounded by angle brackets (<>) and another package name is displayed in a line underneath it:

...
Depends: wayland-protocols (>= 1.17)
  Depends: <gir1.2-atk-1.0-dev>
    libatk1.0-dev
  Depends: <gir1.2-cairo-1.0-dev>
    gir1.2-freedesktop-dev
  Depends: <gir1.2-gdkpixbuf-2.0-dev>
    libgdk-pixbuf-2.0-dev
...

man apt and man apt-cache do not seem to describe this syntax. What does it mean?

1 Answer 1

12

The package name in angle brackets is a virtual package, which is provided by the actual package named below.

$ apt show libatk1.0-dev
…
Provides: gir1.2-atk-1.0-dev (= 2.52.0-1build1)
…
$ apt-cache showpkg gir1.2-atk-1.0-dev
Package: gir1.2-atk-1.0-dev
Versions: 

…
Reverse Provides: 
libatk1.0-dev 2.52.0-1build1 (= 2.52.0-1build1)

The empty “Versions” list in the showpkg output show that gir1.2-atk-1.0-dev is virtual. The “Reverse Provides” list shows packages that provide the other name.

A package name can both exist as an actual package and be provided by another package. For example, hello exists as a package but is also provided by hello-traditional.

$ apt-cache showpkg hello
Package: hello
Versions: 
2.10-3build1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_binary-amd64_Packages)
…
Reverse Provides: 
hello-traditional 2.10-6 (= )
$ apt depends junior-system
…
  Recommends: hello
    hello-traditional

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .