apt-getapt-cache 是 Debian/Ubuntu 系统中两个核心的底层包管理工具,它们都基于 dpkg,但用途不同。

特性

apt-get

apt-cache

主要用途

安装、升级、删除软件包

查询软件包信息(不修改系统)

是否改变系统

✅ 是(会安装/删除包)

❌ 否(只读查询)

典型命令

install, remove, upgrade, autoremove

search, show, policy, depends

类比

“执行器” —— 干活的

“查询器” —— 查信息的

apt 命令,它结合了 apt-getapt-cache 的常用功能,并提供更好看的输出。

功能

apt-get / apt-cache

apt(推荐交互式使用)

安装包

sudo apt-get install pkg

sudo apt install pkg

搜索包

apt-cache search pkg

apt search pkg

查看信息

apt-cache show pkg

apt show pkg

查看策略

apt-cache policy pkg

apt policy pkg

更新列表

sudo apt-get update

sudo apt update

常见的apt命令

查看已安装的包

# 这会列出所有已安装的软件包,包括名称、版本和架构。
apt list --installed |grep nginx

dpkg -l |grep nginx

# 检查某个包是否确切安装
dpkg -s nginx

# 列出所有包含 "nginx" 的包(不管是否安装)
apt-cache search nginx

apt-get 命令

管理已安装的软件包,对系统进行更改

# 安装一个包
sudo apt-get install nginx

# 卸载包(保留配置文件)
sudo apt-get remove nginx

# 彻底卸载包(包括配置文件)
sudo apt-get purge nginx

# 更新软件包列表(必须先运行才能获取最新信息)
sudo apt-get update

# 升级所有可升级的包
sudo apt-get upgrade

# 自动删除无用的依赖包
sudo apt-get autoremove

apt-cache命令

从本地的包索引中查询可用软件包的信息,不会修改系统

# 搜索软件包(名称或描述中包含关键字)
apt-cache search nginx

# 显示某个包的详细信息(版本、依赖、描述等)
apt-cache show nginx

# 查看包的版本和安装优先级
apt-cache policy nginx
# 输出示例:
#   Installed: (none)
#   Candidate: 1.18.0-6ubuntu14.4
#   Version table:
#      1.18.0-6ubuntu14.4 500
#         500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages

#该软件包在所有已配置的软件源中存在的各个版本,以及这些版本来自哪个发行版(release)、组件(如 main, universe)和镜像站点。
apt-cache madison nginx
# 输出示例
# nginx | 1.18.0-6ubuntu14.4 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
# nginx | 1.18.0-6ubuntu14.4 | http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
# nginx | 1.18.0-0ubuntu1    | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
# 输出格式是固定的列对齐格式,便于人工阅读,但不适合脚本解析(建议用 apt-cache policy 替代用于脚本)


# 查看包的依赖关系
apt-cache depends nginx

# 反向依赖:查看哪些包依赖于某个包
apt-cache rdepends nginx