6.3. apt-cache 命令

apt-cache 命令可显示 APT 内部数据库里的多种信息。这些信息是从 sources.list 文件内聚集不同来源的缓存。于运行 apt update 运作时产生的。

术语 缓存

缓存是一种暂存系统,近用方法昂贵 (讲究性能) 时,用于加快常用数据的取用速度。这个概念应用范围极广,从微处理器核心至高端保存系统。

在 APT 的环境,参照 软件包名称 文件是他们在 Debian 镜射站的位置。也就是说,近用数据库软件包时,每次都通过网络读取,极无劾率。所以,APT 在其文件内保存一个复本 (在 /var/lib/apt/lists/) 每次搜索本地的文件即可。同样的,/var/cache/apt/archives/ 保存已经下载的软件包避免在移除后又需要时的重复下载行为。

On the other hand, it is mandatory to run apt update regularly to update the cache. Otherwise your package search results will always miss the latest updates distributed by the Debian mirrors.

apt-cache 命令可以做键词软件包搜索 apt-cache search *键词*。也能显示软件包标头的可用版本 apt-cache show *软件包名称*。这个命令提供软件包说明、其相依性、维护者名称等。apt searchapt showaptitude searchaptitude show 都以同样方式运作。

其他 axi-cache

apt-cache search 是基础的工具,应用在 grep 软件包描述。输入过多键词可能送回大量结果或完全无数据。

axi-cache search *term*, on the other hand, provides better results, sorted by relevancy. It uses the Xapian search engine and is part of the apt-xapian-index package which indexes all package information (and more, like the .desktop files from all Debian packages). It knows about tags (see sidebar 更进一步标签字段) and returns results in a matter of milliseconds.

  1. $ axi-cache search package use::searching
  2.  
  3. 100 results found.
  4. Results 1-20:
  5. 100% packagesearch - GUI for searching packages and viewing package information
  6. 99% apt-utils - package management related utility programs
  7. 98% whohas - query multiple distributions' package archives
  8. 98% dpkg-awk - Gawk script to parse /var/lib/dpkg/{status,available} and Packages
  9. 97% apt-file - search for files within Debian packages (command-line interface)
  10. [..]
  11. 90% wajig - unified package management front-end for Debian
  12. More terms: debtags debian paket dpkg search pakete tools
  13. More tags: role::program interface::commandline works-with::software:package suite::debian admin::package-management scope::utility network::client
  14. `axi-cache more' will give more results

有些功能极少用到。例如,apt-cache policy 显示软件包来源及个别软件包的优先性。另个例子是apt-cache dumpavail 显示所有软件包全部版本的标头。apt-cache pkgnames 显示出现在缓存至少一次的软件包清单。

秘诀 apt-cache policy

The apt-cache policy command displays the pinning priorities and distribution properties of each package source as explained in 第 6.2.5 节 “包的优先级管理”. It can also show the pinning priorities for all available versions and sources of a package. For the sources.list example used in 例 6.2 “/etc/apt/sources.list 给 Debian Stable 使用者的文件” and APT::Default-Release set to "buster", the output will look like this:

  1. $

apt-cache policy can also show the pinning priorities for all available versions and sources of a given package.

  1. $

Although there is a newer version of iptables in the buster-backports repository, APT will not install it automatically based on the priority. One would have to use apt install iptables/buster-backports or add a higher pinning priority to /etc/apt/preferences.d/iptables:

  1. Package: iptables
  2. Pin: release o=Debian Backports, a=buster-backports
  3. Pin-Priority: 1001