linux apt是Advanced Package Tool的缩写,是debian及其衍生linux发行版(如ubuntu、deepin等)中默认的包管理工具,主要用于管理系统的软件包,包括安装、卸载、更新、查询等操作,底层依赖dpkg工具来完成软件包的实际安装和卸载工作。

apt的核心作用
apt最核心的价值是简化了linux下的软件管理流程,解决了传统手动安装软件时依赖关系复杂的问题。比如安装一个软件可能需要先安装多个依赖库,手动操作需要逐个查找下载,而apt可以自动识别并安装所有需要的依赖,让用户只需要执行一条命令就能完成整个安装流程。
apt与dpkg的关系
dpkg是debian系统的底层包管理工具,直接负责deb格式软件包的解包、安装、配置和卸载,但是dpkg不会自动处理依赖关系,如果用户安装的软件缺少依赖,dpkg会直接报错停止操作。而apt是在dpkg之上封装的高级工具,它会自动从软件源获取软件包及其依赖信息,先下载所有需要的包,再调用dpkg完成安装,两者的分工如下:
| 工具名称 | 核心功能 | 依赖处理能力 |
|---|---|---|
| dpkg | 直接操作deb软件包,完成安装、卸载、查询等底层操作 | 无,遇到依赖缺失直接报错 |
| apt | 管理软件源、下载软件包、处理依赖关系,调用dpkg完成实际操作 | 自动识别并安装所有依赖包 |
apt的常用命令
更新软件源缓存
软件源是apt获取软件包的地址列表,执行下面的命令可以更新本地的软件源缓存,获取最新的软件包版本和依赖信息:
# 更新软件源缓存,需要root权限 sudo apt update
安装软件包
使用install参数可以安装指定的软件包,apt会自动处理所有依赖:
# 安装nginx服务,自动安装所有依赖 sudo apt install nginx # 安装多个软件包,空格分隔即可 sudo apt install curl wget git
卸载软件包
卸载软件分为两种情况,一种是只卸载软件本身,保留配置文件,另一种是同时删除配置文件:
# 只卸载软件,保留配置文件 sudo apt remove nginx # 卸载软件并删除所有配置文件 sudo apt purge nginx
更新已安装的软件包
如果需要升级系统中所有已安装的软件包到最新版本,可以使用upgrade参数:
# 升级所有可更新的软件包 sudo apt upgrade # 升级时允许删除旧软件包、安装新依赖,更彻底的升级 sudo apt full-upgrade
搜索和查询软件包
如果需要查找某个功能的软件包,或者查看已安装软件包的信息,可以使用下面的命令:
# 搜索名称或描述中包含nginx的软件包 apt search nginx # 查看nginx软件包的详细信息 apt show nginx # 查看已安装的软件包列表 apt list --installed
清理缓存
apt下载的软件包会缓存在本地,占用磁盘空间,可以使用下面的命令清理:
# 清理已经下载但不再可用的软件包缓存 sudo apt autoclean # 清理所有下载的软件包缓存 sudo apt clean # 自动删除不再需要的依赖包 sudo apt autoremove
apt的配置文件与软件源
apt的软件源配置文件位于/etc/apt/sources.list,以及/etc/apt/sources.list.d/目录下的所有.list文件。软件源的格式通常为deb 地址 发行版 组件,比如ubuntu的默认软件源可能包含如下内容:
# 示例软件源配置,实际地址会根据发行版调整 deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
如果需要更换软件源,只需要修改对应的配置文件,保存后执行sudo apt update更新缓存即可生效。
使用apt的注意事项
- 大部分apt命令需要root权限,执行时记得加上sudo前缀,普通用户没有权限修改系统软件包。
- 执行update命令后再安装或升级软件,能保证获取到最新的软件版本信息,避免出现版本不匹配的问题。
- 不要轻易添加未知的第三方软件源,可能会导致软件包冲突,或者引入不安全的软件。
- 如果安装软件时遇到依赖错误,可以先执行
sudo apt -f install命令,让apt自动修复依赖问题。