APT软件包管理从入门到精通

适用于 Kali、Ubuntu、Debian 等所有 Debian 系发行版


一、什么是 APT?

APT(Advanced Package Tool) 是 Debian、Ubuntu、Kali Linux 等发行版的核心软件包管理工具集,负责:

  • 软件安装、卸载、更新、升级
  • 依赖自动解决
  • 软件源管理
  • 包版本锁定、状态标记
  • 系统整体更新

我们平时用的:
aptapt-getapt-cacheapt-markapt-key 等,全都属于 APT 工具家族


二、APT 核心结构与工作流程

1. APT 由哪些部分组成?

  • 前端命令aptapt-get(用户直接使用)
  • 查询工具apt-cache
  • 包状态工具apt-mark
  • 密钥管理apt-key
  • 配置/etc/apt/
  • 软件源/etc/apt/sources.list + /etc/apt/sources.list.d/
  • 底层dpkg(真正解包、安装、写入系统)

2. APT 工作流程

  1. apt update:从源服务器拉取最新包列表到本地
  2. apt install:查本地列表 → 下载包 → 调用 dpkg 安装
  3. 自动处理依赖:缺什么装什么
  4. 记录包状态:手动/自动/锁定

三、最常用命令:apt(现代统一前端)

apt 是官方推荐的日常使用命令 ,整合了 apt-get + apt-cache 的常用功能,输出更清晰、更好记。

1. 更新软件源(必须先做)

bash 复制代码
sudo apt update

只更新包信息,不升级任何软件。

2. 安装软件

bash 复制代码
sudo apt install 包名
# 示例
sudo apt install burpsuite nmap wireshark

3. 卸载软件

bash 复制代码
# 普通卸载(保留配置)
sudo apt remove 包名

# 彻底删除(连配置一起删)
sudo apt purge 包名

4. 系统升级

bash 复制代码
# 升级可更新的包
sudo apt upgrade

# 更彻底的系统升级(会增删包, Kali 推荐)
sudo apt full-upgrade

5. 搜索包

bash 复制代码
apt search 关键词

6. 查看包信息

bash 复制代码
apt show 包名

7. 清理无用包

bash 复制代码
sudo apt autoremove

四、APT 家族所有工具完整清单

1. apt-get(传统稳定版,脚本首选)

适合写自动化脚本,输出格式稳定。

bash 复制代码
sudo apt-get update
sudo apt-get install -y 包名
sudo apt-get remove 包名
sudo apt-get autoremove
sudo apt-get dist-upgrade

2. apt-cache(查询专用)

只查信息,不修改系统。

bash 复制代码
apt-cache search 关键词
apt-cache show 包名
apt-cache depends 包名    # 查看依赖
apt-cache rdepends 包名  # 查看谁依赖它
apt-cache policy 包名    # 查看版本、源、优先级

3. apt-mark(包状态标记)

可以让一个软件包永远不更新。

bash 复制代码
# 锁定包,禁止更新/卸载
sudo apt-mark hold 包名

# 解除锁定
sudo apt-mark unhold 包名

# 查看所有被锁定的包
apt-mark showhold

# 标记为手动安装(防止被 autoremove 删掉)
sudo apt-mark manual 包名

# 标记为自动安装(可被自动清理)
sudo apt-mark auto 包名

4. apt-key(软件源 GPG 密钥管理)

bash 复制代码
sudo apt-key add 密钥文件
apt-key list

5. apt-config(查看/设置 APT 配置)

bash 复制代码
apt-config dump

6. dpkg(底层安装工具)

APT 底层调用它。

bash 复制代码
dpkg -i 安装包.deb
dpkg -l          # 列出所有已安装包
dpkg -L 包名     # 查看安装路径
dpkg -s 包名     # 查看状态

五、APT 配置与软件源

1. 主配置文件

复制代码
/etc/apt/sources.list

Kali 官方源示例:

复制代码
deb http://http.kali.org/kali kali-rolling main non-free contrib

2. 额外源目录

复制代码
/etc/apt/sources.list.d/

3. 更改源后必须执行

bash 复制代码
sudo apt update

六、apt vs apt-get 到底用哪个?

场景 推荐命令
日常使用、终端手动 apt
写脚本、自动化 apt-get
查询信息 apt / apt-cache
锁定版本 apt-mark

简单记:手动用 apt,脚本用 apt-get


小结

  • APT = Debian 系全套包管理系统
  • apt = 现代日常命令
  • apt-get = 脚本稳定命令
  • apt-cache = 查询
  • apt-mark = 锁定版本、标记状态
  • dpkg = 底层安装
  • hold + 优先级配置 = 让软件永远不更新
相关推荐
无巧不成书02182 分钟前
基于WSL 2的Docker远程开发全栈实战指南
运维·docker·容器·docker desktop·wsl 2·vs code远程开发·容器化开发
一个天蝎座 白勺 程序猿5 分钟前
踩坑生产后整理:KingbaseES表空间管理、auto_createtblspcdir参数深度解析与运维最佳实践
运维·数据库·kingbasees
赵庆明老师6 分钟前
Linux Docker打包
linux·运维·docker
Eloudy7 分钟前
docker pull ubuntu:22.04 失败的解决记录
运维·docker·容器
Strange_Head13 分钟前
《Linux系统编程篇》Linux Socket 网络编程03(Linux 进程间通信(IPC))——基础篇
linux·网络·单片机
Strange_Head18 分钟前
《Linux系统网络协议》从 TCP 到 HTTP:理解 Web 通信的第一步——网络篇
linux·网络·网络协议
爱吃生蚝的于勒28 分钟前
【Linux】重中之重!TCP协议
linux·运维·服务器·网络·学习·tcp/ip
楼田莉子29 分钟前
Linux网络:TCP协议
linux·运维·服务器·网络·tcp/ip
qq_2351321731 分钟前
五金制造行业ERP系统多少钱?易呈erp五金行业版功能模块详解与成功案例分享
大数据·运维·人工智能·制造·智能制造
Datawhale35 分钟前
Claude AI 全套课程,如何从零开始构建并自动化各种项目!
运维·人工智能·自动化