「apt-cache(8)」-

查询APT缓存

命令语法格式

apt-cache [-agipns] [-o=config_string] [-c=config_file] {gencaches | showpkg pkg… | showsrc pkg… | stats | dump | dumpavail | unmet | search regex… | show pkg [{=pkg_version_number | /target_release}]… | depends pkg [{=pkg_version_number | /target_release}]… | rdepends pkg [{=pkg_version_number | /target_release}]… | pkgnames [prefix] | dotty pkg [{=pkg_version_number | /target_release}]… | xvcg pkg [{=pkg_version_number | /target_release}]… | policy [pkg…] | madison pkg… }

命令描述

命令apt-cache在APT的包缓存上执行各种操作。命令apt-cache不会操纵系统的状态,但会提供的操作会从包元数据中搜索和生成有趣输出。例如通过“apt-get update”命令获取和更新元数据。如果最后一次更新太久,它可能会过时,但作为交换,apt-cache的工作独立于配置的源的可用性(例如,离线)。

命令行命令

除非给出-h或–help选项,否则必须存在以下命令之一。

搜索包名

search regex…
在所有可用包列表上,使用给定的POSIX正则表达式模式的执行全文搜索,请参阅regex(7)。它在包名、描述中搜索正则表达式的出现,并打印出包名称和简短描述,包括虚拟包名称。

如果给出–full选项,则为每个匹配的包生成与show相同的输出。如果给出–names-only选项,则不搜索长描述,只搜索包名和提供的包。

可以使用单独的参数来指定多个搜索模式,多个搜索模式以“and”的方式进行连接。

pkgnames [prefix]
此命令打印APT知道的每个包的名称。可选参数是用于过滤名称列表的前缀匹配。输出适用于Shell的Tab补全功能,输出生成非常快。此命令最好与–generate选项一起使用。

注意,APT知道的包不一定可以下载、安装、已安装,例如,虚拟包也列在生成的列表中。

包信息

show pkg…
执行类似于dpkg --print-avail的功能;它显示命名包的包记录。

showpkg pkg…
显示有关在命令行中列出的软件包的信息。剩余参数为包名。列出了每个列出的软件包的可用版本、反向依赖性、每个版本的正常依赖性。 正常依赖关系是查询包所依赖的包;反向依赖性是依赖于查询包的那些包。 因此,必须满足包的正常依赖性,但不需要反向依赖性。 例如,apt-cache showpkg libreadline2将产生类似于以下内容的输出:

Package: libreadline2

Versions: 2.1-12(/var/state/apt/lists/foo_Packages),

Reverse Depends:

libreadlineg2,libreadline2

libreadline2-altdev,libreadline2

Dependencies:

2.1-12 – libc5 (2 5.4.0-0) ncurses3.0 (0 (null))

Provides:

2.1-12 –

Reverse Provides:

因此可以看出,libreadline2, version 2.1-12,依赖于libc5和ncurses3.0,必须安装它们才能使libreadline2工作。 反过来,libreadlineg2和libreadline2-altdev依赖于libreadline2。 如果安装了libreadline2,还必须安装libc5和ncurses3.0(以及ldso);不必安装libreadlineg2和libreadline2-altdev。 有关输出其余部分的具体含义,最好参考apt源代码。

showsrc pkg…
显示与给定包名称匹配的所有源码包记录。 显示所有版本,以及声明该名称为二进制包的所有记录。 使用–only-source仅显示源码包名称。

policy [pkg…]
旨在帮助调试与首选项文件相关的问题。没有参数,它将打印出每个来源的优先级。 否则,它会打印出有关命名包的优先级选择的详细信息。

madison pkg…
该命令试图模仿Debian档案管理工具madison的输出格式和功能的子集。 它以表格格式显示包的可用版本。与原始madison不同,它只能显示APT已经检索包列表的架构的信息(APT::Architecture)。

依赖关系

depends pkg…
显示每个包具有的依赖项列表,以及可以实现该依赖项的所有其他可能的包。

rdepends pkg…
显示了包具有的每个反向依赖项的列表。

dotty pkg…
在命令行中获取包列表,并生成适合在GraphViz中dotty(1)使用的输出。结果将是一组表示包之间关系的点和边。 默认情况下,给定的包将跟踪所有依赖包;这可以产生一个非常大的图形。要将输出限制为仅命令行中列出的包,请设置APT::Cache::GivenOnly选项。

结果节点将具有多个形状:普通包是盒子,纯虚包是三角形,混合虚包是钻石,缺失包是六边形。橙色框意味着递归停止(叶包),蓝线预先依赖,绿线是冲突。

注意,命令dotty(1)无法绘制更大的包集。

xvcg pkg…
类似于dotty选项,但是输出是用于VCG工具中的xvcg命令。

缓存相关

gencaches
创建APT的包缓存。如果缓存缺少或过时,所有需要使用缓存的命令都会隐式执行此操作。

stats
显示有关缓存的一些统计信息。没有参数。 统计报告是:

  • Total package names:缓存中找到的包名称数。
  • Normal packages:常规、普通包名的数量;这些包与它们的名称和依赖项中其他包使用的名称之间具有一对一的对应关系。大多数包都属于这一类。
  • Pure virtual packages:仅作为虚拟包名存在的包的数量;也就是说,这种包只“提供”虚拟包名称,并且没有包实际使用该名称。例如,在Debian系统中的“mail-transport-agent”是一个纯虚拟包;几个软件包提供“mail-transport-agent”,但没有名为“mail-transport-agent”的软件包。
  • Single virtual packages:只有一个包提供特定虚拟包的包数。例如,在Debian系统中,“X11-text-viewer”是一个虚拟包,但只有一个包xless提供了“X11-text-viewer”。
  • Mixed virtual packages:提供特定虚拟包或将虚拟包名称作为包名称的包数。例如,在Debian系统中,“debconf”既是一个实际的包,也是由debconf-tiny包提供的。
  • Missing:依赖项中引用,但未由任何包提供的包名数。如果未访问完整分发,或者从分发中删除了包(实际或虚拟),则缺少包可能是一个证据。通常它们是从Conflicts或Breaks语句中引用的。
  • Total distinct versions:缓存中找到的包版本数。如果正在访问多个发行版(例如,“stable”和“unstable”),则此值可能远大于总包名称的数量。
  • Total dependencies:缓存中所有包声明的依赖关系数。

dump
显示缓存中每个包的简短列表。 它主要用于调试。

dumpavail
将可用列表打印到标准输出。 这适用于dpkg(1),并由dselect(1)方法使用。

unmet
显示包缓存中所有未满足的依赖项的摘要。

命令行选项

可以使用配置文件设置所有命令行选项,描述指示要设置的配置选项。对于布尔选项,您可以使用-f-,–no-f,-f=no或其他几种变体来覆盖配置文件。

-p, –pkg-cache
选择要存储包缓存的文件。 包缓存是所有操作使用的主要缓存。 配置项:Dir::Cache::pkgcache。

-s, –src-cache
选择要存储源缓存的文件。 源仅由gencaches使用,它存储来自远程源的包信息的解析版本。 构建程序包缓存时,使用源缓存来避免重新分析所有程序包文件。 配置项:Dir::Cache::srcpkgcache。

-q, –quiet
安静;产生适合记录的输出,省略进度指标。更多-q选项将产生更多的静音,最多可以达到“2”。您还可以使用-q=#来设置静默级别,覆盖配置文件。 配置项:quiet。

-i, –important
仅打印重要的依赖项;用于unmet和depends命令。导致仅打印Depends和Pre-Depends关系。 配置项:APT::Cache::Important

–no-pre-depends, –no-depends, –no-recommends, –no-suggests, –no-conflicts, –no-breaks, –no-replaces, –no-enhances
默认情况下,命令depends和rdepends打印所有依赖项。 这可以通过这些标志进行调整,这将省略指定的依赖类型。 配置项:APT::Cache::ShowDependencyType,例如:APT::Cache::ShowRecommends。

–implicit
默认情况下,命令depends和rdepends仅打印在元数据中明确表示的依赖关系。 使用此标志,它还将显示基于遇到的数据隐式添加的依赖项。例如Conflicts: foo隐含地表示:此包还与来自任何其他体系结构的包foo冲突。 配置项:APT::Cache::ShowImplicit。

-f, –full
搜索时打印完整包记录。 配置项:APT::Cache::ShowFull。

-a, –all-versions
打印所有可用版本的完整记录。 这是默认值;关闭它,使用–no-all-versions。 如果指定了–no-all-versions,则只显示候选版本(将选择安装的版本)。 此选项仅适用于show命令。 配置项:APT::Cache::AllVersions。

-g, –generate
执行自动包缓存重新生成,而不是按原样使用缓存。 这是默认值;关闭它,使用–no-generate。 配置项:APT::Cache::Generate。

–names-only, -n
仅搜索包并提供包名称,而不是长描述。 配置项:APT::Cache::NamesOnly。

–all-names
使pkgnames打印所有名称,包括虚拟包和缺少的依赖项。 配置项:APT::Cache::AllNames。

–recurse
使depends和rdepends递归,以便提到的所有包都打印一次。 配置项:APT::Cache::RecurseDepends。

–installed
将depends和rdepends的输出限制为当前安装的包。 配置项:APT::Cache::Installed。

–with-source filename
添加给定文件作为元数据来源。 可以重复添加多个文件。 目前支持*.deb,*.dsc,*.changes,Sources和Packages文件以及源包目录。文件仅根据其名称进行匹配,而不是其内容!

只要具有正确的扩展名,Sources和Packages就可以以任何支持的格式进行压缩。 如果您需要将多个这些文件存储在一个目录中,则可以为您选择的名称添加为前缀,名称的最后一个字符为下划线(“_”)。 示例:my.example_Packages.xz

请注意,这些源被视为受信任的(请参阅apt-secure(8))。 配置项:APT::Sources::With。

-c, –config-file
配置文件;指定要使用的配置文件。 程序将读取默认配置文件,然后读取此配置文件。 如果需要在解析默认配置文件之前设置配置设置,请使用APT_CONFIG环境变量指定文件。有关语法信息,请参阅apt.conf(5)。

-o, –option
设置配置选项;这将设置任意配置选项。 语法是-o Foo::Bar=bar。选项-o和–option可以多次使用来设置不同配置项。

其他选项

-h, –help
显示帮助信息。

-v, –version
显示版本信息。

相关文件

/etc/apt/sources.list
从中获取包的位置。 配置项:Dir::Etc::Sources List

/etc/apt/sources.list.d/
用于从中获取包的位置的文件片段。配置项:Dir::Etc::SourceParts

/var/lib/apt/lists/
在source.list(5)中指定的每个包资源的状态信息的存储区域。配置项:Dir::State::Lists

/var/lib/apt/lists/partial/
传输中的状态信息的存储区域,partial将被隐式附加。 配置项:Dir::State::Lists

退出状态

0 正常操作

100 发生错误

相关手册

apt.conf(5), sources.list(5), apt-get(8)

参考文献

  • man 8 apt-cache, Version 1.6.4

更新日志

  • 10/22/2018 创建文章