Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,Debian 类使用一套名为 Advanced Packaging Tool(APT,请不要把它与 apt 命令混淆)的工具来管理软件包。

最常用的 Debian 类包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。简单来说就是 apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

apt 和 apt-get 的区别

虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。

apt apt-get 含义
apt install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 刷新存储库索引
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序
apt show apt-cache show 显示安装细节
apt download apt-get download 下载软件包(不包含依赖)

apt 还有一些自己的命令:

新的apt命令 命令的功能
apt list 列出包含条件的包(已安装,可升级等)
apt edit-sources 编辑源列表

关于 apt-get

目前还没有任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操作功能。对于低级操作,仍然需要 apt-get。

小结

最后结大家提供两点使用上的建议:

  1. apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项;
  2. apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt.

下载软件包用于离线安装

查看依赖

使用下面的软件可以获取软件包的依赖

1
2
sudo apt update
sudo apt install apt-rdepends

使用软件 apt-rdepends 获取软件包依赖

1
apt-rdepends cmatrix

其实,使用如下命令也可以获取一层依赖文件,找到 Depends 行

1
sudo apt show cmatrix

下载软件包和依赖,而不进行安装

1
sudo apt -d install cmatrix

下载的安装包在路径:/var/cache/apt/archives 目录下。
该方法对于已经安装的软件无法下载。

只下载安装包(不包括依赖)

1
2
# 指定下载目录 /home/jinzhongxu/
sudo apt download cmatrix -d /home/jinzhongxu/

下载软件安装包及其依赖

1
vim download-pack-depends

添加如下内容

1
2
3
4
5
6
7
#!/bin/bash

# 下载安装包及其依赖包
apt-rdepends $* | grep -v Depends | while read pack
do
apt download $pack
done

把该软件拷贝到 /usr/local/bin

1
2
sudo cp download-pack-depends /usr/local/bin/
sudo chmod +x /usr/local/bin/download-pack-depends

使用

1
2
# 下载 curl, wget 等软件包及其依赖
download-pack-depends curl wget

搜索包版本和安装指定版本

下面以安装指定版本的 vscode 为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 列出以 code 开头的包
sudo apt-cache pkgnames code
# 搜索 vscode 的历史版本
sudo apt-cache madison code
# 搜索 vscode 的历史版本和安装版本
sudo apt-cache policy code
# 如果想查询包的版本、检验和、大小、安装大小和类别等信息
sudo apt-cache show code
# 如果想要看更多的依赖信息
sudo apt-cache showpkg code

# 查询历史版本信息
sudo apt-get changelog code


# 列出所有包
sudo apt-cache pkgnames
# 搜索与 code 相关的包,内容较多
sudo apt-cache search code
# 显示cache的总体统计信息
sudo apt-cache stats


# 通配符安装
sudo apt-get install "*name*"

# 安装指定版本的 vscode
sudo apt install code=1.83.1-1696982868


# 硬盘空间告急时可以使用此命令释放一定空间
sudo apt-get clean

参考文献

  1. apt 和 apt-get的区别
  2. Ubuntu apt-get 安装指定版本软件
  3. 包管理之apt-get和apt-cache的基本命令