如何在 Debian、Ubuntu 中使用 apt-cache 命令
创始人
2024-03-02 06:01:23
0

使用 apt-cache 命令,你可以在本地 APT 缓存中搜索软件包的详细信息。在本教程中学习使用 apt-cache 命令。

apt-cache 命令是用来干什么的?

APT 包管理器工作在软件包元数据的本地缓存上。元数据通常由包名、版本、描述、依赖关系、仓库和开发者等信息组成。通过 apt-cache 命令,你可以查询这个本地 APT 缓存并获得相关信息。

你可以搜索一个包的可用性、它的版本号、它的依赖关系等等。我将通过实例告诉你如何使用 apt-cache命令。

APT 缓存的位置是 /var/lib/apt/lists/ 目录。缓存哪些仓库元数据取决于你的源列表中 /etc/apt/sources.list 文件中添加的仓库,以及位于 /etc/apt/sources.list.d 目录下的额外仓库文件。

令人惊讶的是,apt-cache 并不能清除 APT 缓存。为此,你必须使用 apt-get clean 命令

不用说,APT 打包系统是在 Debian 和基于 Debian 的 Linux 发行版上使用的,比如 Ubuntu、Linux Mint、Elementary OS 等。你不能在 Arch 或 Fedora 上使用它。

使用 apt-cache 命令

就像其他 Linux 命令一样,apt-cache 也有一些可用的选项,你可以随时参考它的手册页来了解这些选项。

然而,你可能并不需要使用所有的选项。这就是为什么我在本教程中只向你展示 apt-cache 命令中最常见和最有用的例子。

始终更新

更新本地 APT 缓存以与远程仓库同步是一个好主意。如何做到这一点呢?你可以使用命令:

sudo apt update

搜索软件包

apt-cache 命令最常见的用途是查找软件包。你可以使用一个正则表达式来搜索本地 APT 缓存中的包。

apt-cache search package_name

默认情况下,它会在软件包的名称和描述中查找搜索关键词。它按字母顺序显示匹配的软件包及其简短的描述。

你也可以缩小搜索范围,只在软件包名称中查找搜索词。

apt-cache search --names-only package_name

如果你想知道所有匹配软件包的完整细节,你可以使用 --full 标志。

获取详细的包装信息

如果你知道确切的软件包名称(或者你已经成功地通过搜索找到了它),你可以得到软件包的详细元数据信息。

apt-cache show package_name

你可以看到软件包元数据中的所有细节,比如名称、版本、开发者、维护者、仓库、长短描述、软件包大小甚至是校验和。

还有一个选项 showpkg 可以显示软件包的名称、版本、正向和反向依赖关系等信息。

apt-cache showpkg package_name

apt-cache 的策略

这是 apt-cache 命令中很少使用的一个选项。policy 选项可以帮助你调试与 preference 文件相关的问题。

如果你指定了软件包的名称,它将显示该软件包是否已经安装,在哪个版本的仓库中可用,以及它的优先级。

默认情况下,每个已安装的软件包版本的优先级为 100,未安装的软件包的优先级为 500。同一软件包可能有多个不同优先级的版本。APT 会安装优先级较高的版本,除非安装的版本较新。

如果不理解这个部分,也没关系。对于一个普通的 Linux 用户来说,会极少纠结于这么深的软件包管理知识。

检查软件包的依赖关系和反向依赖关系。

你可以在安装之前(甚至在安装之后)检查一个包的依赖关系。它还会显示所有可能满足依赖关系的软件包。

apt-cache depends package

你也可以通过 apt-cahce 检查反向依赖关系来检查哪些包是依赖于某个包的。

坦白说,看到 Ansible 这样的 DevOps 工具对 Cowsay 这样有趣的 Linux 命令有依赖性,我也很惊讶。我想可能是因为在安装 Ansible之后,它会在节点上显示一些信息。

检查未满足的依赖性

你可能会被 Ubuntu 中未满足的依赖问题所困扰,其他 Linux 也有类似问题。apt-cache 命令提供了一个选项来检查系统中各种可用软件包的所有未满足的依赖关系。

apt-cache unmet

结论

你可以用 apt-cache 命令列出所有可用的软件包。输出结果会很庞大,所以我建议将其与 wc 命令 结合起来,得到可用软件包的总数,就像这样:

apt-cache pkgnames | wc -l

你是否注意到你不需要成为 root 用户就可以使用 apt-cache 命令?

较新的 apt 命令也有一些与 apt-cache 命令相对应的功能选项。由于 apt 比较新,所以在脚本中还是首选使用 apt-get 及其相关的 apt-cache 等命令。

希望你觉得本教程对你有帮助。如果你对上面讨论的任何一点有疑问或者有改进的建议,请在评论中告诉我。


via: https://itsfoss.com/apt-cache-command/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

apt

相关内容

[chapter3][5G...
参考: 3GPP 38.211 https://w...
2025-05-29 13:16:24
[ 云计算 | Azure...
本章节主要内容进行讲解:Azure云计算的核心体系结...
2025-05-28 20:08:12
在Linux服务器上绑定域...
要把Linux服务器和域名绑定起来,让我们先简单聊聊这个过程。想象...
2025-02-27 13:49:16
深度deepin 25预览...
deepin深度系统近期发布了其最新版本deepin 25的预览版...
2025-02-06 06:16:56
不要将位置视为固定值,只能...
在RecyclerView Adapter 中,我们应该通过hol...
2025-01-10 20:00:34

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...