网站搜索

如何在 Debian 系统中使用 apt 和 apt-cache


如果您曾经使用过 Debian 或基于 Debian 的发行版,例如 UbuntuLinux Mint,那么您很可能使用过 apt 软件包系统安装删除软件。

即使您从未涉足过命令行,为您的包管理器 GUI 提供支持的底层系统也是 APT 系统。

今天,我们将看看一些熟悉的命令,深入研究一些不太常用或较常用的 apt 命令,并阐明这个设计出色的系统。

什么是APT?

APT 代表高级软件包工具,它于1999首次出现在Debian 2.1中。本质上,APT 是 dpkg 软件包的管理系统,如扩展名 *.deb 所示。

它的设计目的不仅是管理软件包更新,而且还可以解决安装某些软件包时的许多依赖性问题

作为那些在那些先驱时代使用 Linux 的人,当我们尝试从源代码编译某些东西时,甚至在处理包含许多 Red Hat 的单独 RPM 文件。

APT 自动解决了所有这些依赖关系问题,使得安装任何软件包(无论依赖关系的大小或数量如何)都只需一行命令即可。

对于我们这些在这些任务上工作了几个小时的人来说,这是我们 Linux 生活中“阳光拨开云层”的时刻之一!

了解 APT 配置

/etc/apt/sources.list 文件是一个配置文件,用于指定程序包管理器 (apt) 从中检索和安装软件包的存储库。该文件包含存储库的 URL(统一资源定位器)列表,以及分发代号和组件等详细信息。

以下是 /etc/apt/sources.list 文件的示例:

sudo cat /etc/apt/sources.list

您可能可以从我的 /etc/apt/sources.list 文件中推断出,我使用的是 Ubuntu 22.04 (ammy Jellyfish)。我还使用三个存储库:

  • 主存储库
  • 宇宙知识库
  • Ubuntu 安全存储库

/etc/apt/sources.list 文件的语法相对简单:

deb (url) release repository

随附的行是源文件存储库。它遵循类似的格式:

deb-src (url) release repository

该文件几乎是您必须使用 APT 进行编辑的唯一文件,而且默认值很可能会很好地为您服务,您根本不需要编辑它。

但是,有时您可能想要添加第三方存储库。您只需使用相同的格式输入它们,然后运行更新命令:

sudo apt update

注意:添加第三方存储库时要非常小心!!!仅从可信信誉良好的来源添加。添加不可靠的存储库或混合版本可能会严重扰乱您的系统!

我们已经查看了 /etc/apt/sources.list 文件,现在知道如何更新它,那么下一步是什么?让我们安装一些软件包。假设我们正在运行一台服务器,并且想要安装 WordPress

首先,我们来搜索一下这个包:

sudo apt-cache search wordpress

什么是 APT 缓存?

Apt-Cache 是一个简单查询apt-cache 的命令。我们将搜索参数传递给它,表明我们要搜索 APT 。正如我们在上面看到的,搜索“wordpress”返回了几个与搜索字符串相关的包,以及每个包的简短描述。

由此,我们看到了“wordpress – 博客管理器”的主包,我们想要安装它。但是如果能准确地看到哪些依赖项将随之安装不是很好吗? apt 也可以告诉我们:

sudo apt-cache showpkg wordpress

这向我们显示了 wordpress 5.8.3 是要安装的版本、要安装的存储库、反向依赖项以及它依赖的其他包,以及它们的版本号。

注意:(null表示未定义版本,将安装存储库中的最新版本。)

现在,实际的安装命令:

sudo apt install wordpress

该命令将安装 WordPress-5.8.3 以及当前未安装的所有依赖项。

当然,这并不是 APT 所能做的全部。其他一些有用的 apt 命令如下:

注意:在运行任何一系列 apt 命令之前运行 apt update 是一个很好的做法。请记住,apt update 会解析您的 /etc/apt/sources.list 文件并更新其数据库。

卸载软件包与安装软件包一样简单:

sudo apt remove wordpress

不幸的是,apt remove命令使所有配置文件保持不变。要删除它们,您需要使用 apt purge

sudo apt purge wordpress

有时,您可能会遇到依赖关系被破坏的情况。当您没有正确运行 apt update 从而破坏数据库时,通常会发生这种情况。幸运的是,apt 可以解决这个问题:

sudo apt –f install

由于 apt 将所有 *.deb 文件从存储库直接下载到您的计算机(将它们存储在 /var/cache/apt/archives )您可能需要定期删除它们以释放磁盘空间:

sudo apt clean

这只是 aptapt-cache 及其一些有用命令的一小部分。在下面的文章中还有很多东西需要学习和探索一些更高级的命令。

与往常一样,请查看手册页以获取更多选项。一旦熟悉了 apt,就可以编写出色的 Cron 脚本来使系统保持最新状态。