Ubuntu 包简介

2025年3月17日 | 阅读 10 分钟

Ubuntu 包是**一组项**(库、脚本、文本文件、许可证、清单等),它们使我们能够安装一部分软件,以包管理器能够解包并将其引入我们系统的方式进行组织。

我们的 Linux 系统上安装了几个包。我们可能想知道这些包来自哪里。许多包在新安装的 Linux 系统中预装。此外,我们可能还安装了其他包以增强系统功能。

我们有时可能想列出系统上已安装的包。本文将学习如何列出系统上已安装的包。我们将使用 Ubuntu 终端窗口执行命令。我们可以使用关键字快捷方式,即 **Ctrl+Alt+T** 启动终端。

Ubuntu 包管理

包管理是 Linux 系统的重要方面之一。包管理工具和包格式因发行版而异,但几乎所有发行版都应用两种工具集之一。

RPM 打包工具和打包格式,如 **yum** 和 **rpm**,在基于 Red Hat Enterprise Linux 的发行版(如 Rocky Linux 和 RHEL 本身)中很常见。另一个大家族,由 Ubuntu、Debian 和相关发行版使用,使用 .deb 格式和 dpkg 和 apt 等工具。

已经创建了更多包管理器与核心 dpkg 和 apt 工具并行运行:例如,snap 提供了更多的沙盒和可移植性,而从 macOS 迁移而来的 Homebrew 提供了命令行工具,这些工具可以由单个用户安装,以避免与系统包冲突。

使用 apt 命令列出已安装的包

**apt** 命令是 Ubuntu 中内置的包管理器,它帮助我们从 Ubuntu 系统安装、更新和卸载包。此命令可用于显示系统上已安装的包列表。要运行 apt 命令,我们需要打开终端窗口并执行以下命令


Ubuntu Packages

上述命令将列出系统上已安装的所有包和作为依赖项安装的包。

结果显示了包的名称、已安装的版本和架构。

我们可以运行以下命令查看包是否已安装

我们可以输入以下命令检查特定包的详细信息

使用 dpkg 命令列出已安装的包

dpkg 命令用于在 Debian 操作系统及其衍生产品中安装、构建和卸载包。Dpkg-query 可用于列出系统中所有已安装的包。

我们需要在命令行窗口中键入以下命令以列出系统上所有已安装的包

结果显示了包的名称、已安装的版本和架构。

我们可以运行以下命令查看包是否已安装

列出已安装的 Snap 包

dpkg-query 和 apt 命令不会列出所有作为 snaps 安装的包。我们可以使用 snap 命令单独列出这些包。

我们需要在命令行窗口中键入以下命令以列出系统上所有作为 snaps 安装的包


Ubuntu Packages

Debian 包管理工具简介

Ubuntu/Debian 生态系统包含一些不同的包管理工具,用于管理系统中的软件。几乎所有这些包都是相互关联的,并且在相似的包数据库上工作。其中一些工具试图提供高级接口,而另一些实用程序则侧重于提供低级功能。

Apt

可能 apt 命令是包工具 apt 套件中最常使用的成员。它的主要目标是专注于由发行版打包团队管理的远程存储库,并对现有包执行任务。

通常,apt 套件通过将远程存储库中的详细信息拉取到本地系统上管理的缓存中来工作。Apt 用于刷新本地缓存。此外,它还用于更改包状态。这意味着通过系统安装或卸载包。apt 命令通常将用于更新本地缓存和对活动系统进行更改

**重要提示:**在以前的 Ubuntu 版本中,apt 命令被称为 apt-get 命令。它已更新,但出于向后兼容性或习惯,我们仍然可以将其称为 apt-get 命令。

apt-cache

apt-cache 是 apt 套件的另一个重要成员。此实用程序使用本地缓存查询现有包的详细信息及其功能。

例如,任何时候我们想找到一个特定的工具或包来执行某个任务时,apt-cache 都是一个很好的起点。此外,它还可以描述通过某个过程将定位的包的确切版本。反向依赖项和依赖项详细信息是 apt-cache 有用的另一个地方。

Dpkg

虽然其他工具专注于处理存储库中管理的包,但 dpkg 命令也可以用于处理 .deb 包。实际上,dpkg 工具负责几乎所有上述命令的幕后实现;apt 提供额外的内务管理,dpkg 与包本身协作。

与 apt 不同,dpkg 命令不能自动解决依赖关系。它的主要方面是能够直接与 .deb 包交互,分离包,并搜索有关其设计的其他信息。但是,它可以收集系统中已安装包的一些详细信息,我们不应将其用作主要的包管理器。

更新包缓存和系统

Ubuntu 和 Debian 包管理工具帮助保持我们系统上可用包列表的最新状态。此外,它们还提供几种方法来更新我们系统上已安装的包。

更新本地包缓存

对于包信息,我们的打包工具所依赖的远程存储库会不断更新。但是,几乎所有 Linux 包管理工具都是出于许多历史原因而创建的,直接处理此信息的本地缓存。该缓存需要定期刷新。

在执行其他包命令之前,更新所有会话的本地缓存是一个好习惯。这将确保我们正在处理可用软件的最新信息。如果我们正在处理过时的包信息,一些安装命令将中止。

我们可以运行以下 apt 命令以及子命令(即 update)来更新本地缓存


Ubuntu Packages

上述命令将显示我们正在跟踪的存储库中可用包的更新列表。

更新数据包

Apt 区分两种不同的更新过程。第一个更新过程可用于升级不需要移除组件的组件。

当我们不希望在任何情况下删除任何已安装的包时,这非常重要。但是,一些更新涉及替换系统组件或删除冲突文件。此过程将避免任何需要删除包的更新。


Ubuntu Packages

第二个过程将更新所有包,甚至那些需要删除包的包。通常,这是必要的,因为包的修改需要依赖项。

通常在升级过程中被删除的包将被功能等价物替换。因此,通常是安全的。但是,最好密切关注要删除的包,以防一些必要的组件被标记为删除。

我们需要输入以下命令来执行此操作。


Ubuntu Packages

此命令将更新我们系统上的所有包。

下载和安装包

查找包

下载和安装包时,第一步是在我们的发行版存储库中找到我们正在寻找的包。查找包是一项将指向包缓存以获取详细信息的任务。为此,我们需要运行 **apt-cache search** 命令。

注意:请记住,在查找包之前,我们应该使用 sudo apt update 命令确保本地缓存已更新。

它不需要 sudo 权限,因为此过程只查询详细信息。任何执行的搜索过程都将检查包名称和包的完整描述。

使用存储库安装包

我们可以执行 **apt** 命令以及 **install** 参数,以通过存储库安装任何包和必要的依赖项。对于此命令,参数应该是包的名称或名称,因为它们在存储库中已标记。

我们还可以一次安装多个包,它们由空格分隔。

如果请求的包需要额外的依赖项,这些依赖项将打印到标准输出,并且将提示我们确认该过程。在这种情况下,我们可以通过单击 **"Y"** 按钮继续,或通过单击 **"N"** 按钮取消。

从存储库安装特定包版本

如果我们要安装特定版本的包,我们可以使用 **=** 指定要定位的版本,如下所示

执行包操作试运行

我们有时想在提交运行命令之前检查过程的副作用。apt 命令允许我们添加 **-s** 标志来“模拟”一个过程。

例如,要查看如果我们选择安装任何包将做什么,我们可以使用以下语法

它将让我们检查所有依赖项以及如果我们删除 **-s** 标志将出现的系统修改。它的一个优点是,我们可以在不使用 sudo 的情况下检查通常需要 root 权限的过程的结果。

我们将获得有关要安装的包及其版本的所有详细信息,而无需完成实际过程。此外,它也适用于其他过程,例如执行系统升级。命令如下

此命令默认情况下会要求用户确认多个过程。它包括需要额外依赖项的安装和包升级。要绕过这些升级并默认接受任何这些提示,我们可以在执行这些操作时传递 **-y** 标志

它将安装包和依赖项,而无需进一步询问用户。它也可以用于升级过程


Ubuntu Packages

修复损坏的包和依赖项

有时,由于依赖项或其他问题,安装过程可能无法成功完成。可能发生这种情况的一个常见问题是使用不解决依赖项的 dpkg 安装 .deb 包。Apt 可以通过向其传递 **-f** 命令来尝试解决此问题。


Ubuntu Packages

它将找到未满足的依赖项并尝试安装它们以修复依赖项树。如果我们的安装过程抱怨依赖项问题,这应该是我们尝试解决它的第一步。如果无法通过这种方式解决问题,并且我们安装了任何第三方包,我们应该删除它并找到一个更积极维护的新版本。

使用存储库下载包

在某些情况下,不安装包而使用存储库下载包可能很有用。我们可以通过执行 apt 命令以及 **download** 参数来完成此操作。由于它只是下载文件而不影响实际系统,因此需要 sudo 权限

上述命令会将指定包下载到当前目录。

安装 .deb 包

一些供应商提供 .deb 包的原始文件,我们可以在系统上安装这些文件。尽管如此,几乎所有发行版都建议从其组织的存储库安装应用程序。

为此,我们可以使用 dpkg 命令。Dpkg 主要用于处理许多单个包。它不尝试通过存储库执行安装,而是查找当前目录或指定路径中的 .deb 包

注意:此工具不处理依赖项。这意味着当存在未满足的依赖项时,安装过程将失败。

但是,它会标记所需的依赖项,因此如果所有依赖项都在存储库中可用,我们可以在之后输入以下命令来满足它们

它将安装未满足的依赖项,例如那些用 dpkg 标记的依赖项。

删除包和文件

在本节中,我们将解释如何删除包和可能被某些包操作遗留的文件。

卸载包

我们可以使用 **apt remove** 命令来删除已安装的包。它将删除此包在系统中安装的几乎所有文件。apt remove 命令会保留一些配置文件,以便如果我们需要在以后重新安装软件,我们的配置将可用。这很有用,因为它意味着如果我们不小心删除了一个包,我们自定义的配置文件不会被删除。

我们需要提供要卸载的包名来完成此操作

除了配置文件外,该包将被删除。

卸载包和所有相关配置文件

如果我们想从系统中卸载一个包和所有相关文件(例如配置文件),我们可以使用 apt purge 命令。与上面提到的 **remove** 命令不同,purge 命令会删除所有内容。如果我们不想存储配置文件,或者我们遇到问题并想从头开始,这会很有帮助。

注意:一旦我们的配置文件被删除,我们就无法找回它们。

如果我们需要重新安装该包,则将应用默认配置。

我们还可以运行 **autoremove** 命令来自动删除已安装但不再需要的特定包


Ubuntu Packages
下一主题Cisco Webex Ubuntu