Linux aptitude 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将在 Ubuntu 22.04 Docker 容器中探索 aptitude 包管理器。我们将学习如何安装和更新 aptitude,执行包搜索和信息查询,并使用 aptitude 命令管理包的安装、升级和删除。本实验涵盖了基本的包管理任务,提供了实际示例,以增强你的 Linux 系统管理技能。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/grep -.-> lab-422551{{"Linux aptitude 命令实战示例"}} linux/sudo -.-> lab-422551{{"Linux aptitude 命令实战示例"}} linux/apt -.-> lab-422551{{"Linux aptitude 命令实战示例"}} end

安装和更新 aptitude 包管理器

在这一步中,我们将在 Ubuntu 22.04 Docker 容器中安装并更新 aptitude 包管理器。

首先,让我们更新包索引以确保我们拥有最新的包信息:

sudo apt-get update

示例输出:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Fetched 324 kB in 1s (324 kB/s)
Reading package lists... Done

接下来,让我们安装 aptitude 包管理器:

sudo apt update
sudo apt-get install -y aptitude

示例输出:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  aptitude-common libboost-iostreams1.74.0 libboost-system1.74.0 libcwidget3v5 libept1.5.0 libxapian30
Suggested packages:
  aptitude-doc-en aptitude-doc
The following NEW packages will be installed:
  aptitude aptitude-common libboost-iostreams1.74.0 libboost-system1.74.0 libcwidget3v5 libept1.5.0 libxapian30
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,450 kB of archives.
After this operation, 5,580 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libboost-iostreams1.74.0 amd64 1.74.0-8ubuntu3 [139 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libboost-system1.74.0 amd64 1.74.0-8ubuntu3 [94.7 kB]
...
Fetched 1,450 kB in 1s (1,450 kB/s)
Selecting previously unselected package aptitude-common.
(Reading database ... 18284 files and directories currently installed.)
Preparing to unpack .../aptitude-common_0.8.12-1ubuntu1_all.deb ...
Unpacking aptitude-common (0.8.12-1ubuntu1) ...
Selecting previously unselected package aptitude.
Preparing to unpack .../aptitude_0.8.12-1ubuntu1_amd64.deb ...
Unpacking aptitude (0.8.12-1ubuntu1) ...
Setting up libboost-iostreams1.74.0:amd64 (1.74.0-8ubuntu3) ...
Setting up libboost-system1.74.0:amd64 (1.74.0-8ubuntu3) ...
Setting up libcwidget3v5:amd64 (0.5.17-7build1) ...
Setting up libept1.5.0:amd64 (1.1+nmu3ubuntu2) ...
Setting up libxapian30:amd64 (1.4.18-3ubuntu1) ...
Setting up aptitude-common (0.8.12-1ubuntu1) ...
Setting up aptitude (0.8.12-1ubuntu1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3) ...

现在,让我们验证 aptitude 是否已安装并更新到最新版本:

使用 aptitude 进行包搜索和信息查询

在这一步中,我们将学习如何使用 aptitude 包管理器搜索包并获取其相关信息。

首先,让我们使用 aptitude search 命令搜索一个包。例如,搜索 "nginx" 包:

sudo aptitude search nginx

示例输出:

i   nginx                                                        - 高性能 web 服务器
p   nginx-core                                                   - nginx web 服务器(核心版本)
p   nginx-doc                                                    - nginx 的文档
p   nginx-extras                                                 - nginx web 服务器(扩展版本)
p   nginx-full                                                   - nginx web 服务器(标准版本)
p   nginx-light                                                  - nginx web 服务器(基础版本)

输出显示有几个与 nginx 相关的包可用。前缀 "i" 表示 "nginx" 包当前已安装。

接下来,让我们使用 aptitude show 命令获取 "nginx" 包的详细信息:

sudo aptitude show nginx

示例输出:

Package: nginx
State: installed
Automatically installed: no
Version: 1.18.0-0ubuntu1.2
Priority: optional
Section: web
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 1,518 k
Depends: nginx-core (= 1.18.0-0ubuntu1.2), lsb-base (>= 3.0-10)
Suggests: nginx-doc, www-browser
Description: 高性能 web 服务器
 Nginx 是一个高性能的 web 服务器和反向代理服务器。它以高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。

这提供了关于 "nginx" 包的详细信息,包括其版本、依赖项以及包的描述。

使用 aptitude 安装、升级和删除包

在这一步中,我们将学习如何使用 aptitude 安装、升级和删除包。

首先,让我们使用 aptitude install 命令安装一个新包。我们将安装 "tree" 包,这是一个以树状格式显示目录结构的命令行工具:

sudo aptitude install tree

示例输出:

以下新包将被安装:
  tree
0 个包已升级,1 个新安装,0 个将被删除,0 个未升级。
需要获取 44.2 kB 的归档文件。操作完成后,将额外占用 123 kB 的磁盘空间。
是否继续?[Y/n/?] y
获取:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 tree amd64 1.8.0-1build1 [44.2 kB]
已下载 44.2 kB,耗时 0s (89.3 kB/s)
正在选中未选择的包 tree。
(正在读取数据库 ... 当前已安装 18291 个文件和目录。)
准备解压 .../tree_1.8.0-1build1_amd64.deb ...
正在解压 tree (1.8.0-1build1) ...
正在设置 tree (1.8.0-1build1) ...
正在处理 man-db (2.10.2-1) 的触发器 ...

接下来,让我们使用 aptitude safe-upgrade 命令升级一个包。我们将把 "vim" 包升级到最新版本:

sudo aptitude safe-upgrade vim

示例输出:

以下包将被升级:
  vim vim-common vim-runtime
3 个包已升级,0 个新安装,0 个将被删除,0 个未升级。
需要获取 6,483 kB 的归档文件。操作完成后,不会占用额外的磁盘空间。
是否继续?[Y/n/?] y
获取:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 vim-common amd64 2:8.2.3995-1ubuntu2.1 [2,138 kB]
获取:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 vim-runtime all 2:8.2.3995-1ubuntu2.1 [4,178 kB]
获取:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 vim amd64 2:8.2.3995-1ubuntu2.1 [167 kB]
已下载 6,483 kB,耗时 1s (6,483 kB/s)
(正在读取数据库 ... 当前已安装 18292 个文件和目录。)
准备解压 .../vim-common_2%3a8.2.3995-1ubuntu2.1_amd64.deb ...
正在解压 vim-common (2:8.2.3995-1ubuntu2.1) 覆盖 (2:8.2.3995-1ubuntu2) ...
准备解压 .../vim-runtime_2%3a8.2.3995-1ubuntu2.1_all.deb ...
正在解压 vim-runtime (2:8.2.3995-1ubuntu2.1) 覆盖 (2:8.2.3995-1ubuntu2) ...
准备解压 .../vim_2%3a8.2.3995-1ubuntu2.1_amd64.deb ...
正在解压 vim (2:8.2.3995-1ubuntu2.1) 覆盖 (2:8.2.3995-1ubuntu2) ...
正在设置 vim-common (2:8.2.3995-1ubuntu2.1) ...
正在设置 vim-runtime (2:8.2.3995-1ubuntu2.1) ...
正在设置 vim (2:8.2.3995-1ubuntu2.1) ...
正在处理 man-db (2.10.2-1) 的触发器 ...

最后,让我们使用 aptitude remove 命令删除 "tree" 包:

sudo aptitude remove tree

示例输出:

以下包将被删除:
  tree
0 个包已升级,0 个新安装,1 个将被删除,0 个未升级。
需要获取 0 B 的归档文件。操作完成后,将释放 123 kB 的磁盘空间。
是否继续?[Y/n/?] y
(正在读取数据库 ... 当前已安装 18292 个文件和目录。)
正在删除 tree (1.8.0-1build1) ...
正在处理 man-db (2.10.2-1) 的触发器 ...

总结

在本实验中,我们学习了如何在 Ubuntu 22.04 Docker 容器中安装和更新 aptitude 包管理器。我们首先更新了包索引以确保拥有最新的包信息,然后安装了 aptitude 包管理器。我们还探索了如何执行包搜索和信息查询,以及如何使用 aptitude 安装、升级和删除包。

Linux 命令速查表