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 + 优先级配置 = 让软件永远不更新
相关推荐
古译汉书2 小时前
RTOS:ISR与互斥量的关系
运维·服务器·stm32·嵌入式硬件
feng68_2 小时前
Keepalived基础实现
运维·服务器·keepalived
暴力求解2 小时前
Linux---基础IO详解
linux·运维·服务器
林姜泽樾2 小时前
linux入门第二章,linux命令基础、ls、home目录
linux
半桔3 小时前
【MySQL数据库】SQL 查询封神之路:步步拆解核心操作,手把手帮你解锁高阶玩法
linux·数据库·sql·mysql·adb·oracle
猫头虎3 小时前
[精选] 2025最新MySQL和PostgreSQL区别、迁移、安全、适用场景全解析
运维·数据库·mysql·安全·postgresql·云原生·容器
心本无晴.3 小时前
RAG检索优化:文本分块策略如何大幅提升检索准确度
java·linux·服务器
生活很暖很治愈3 小时前
Linux——线程互斥,互斥锁
linux·运维·服务器
小李独爱秋3 小时前
模拟面试:说一下数据库主从不同步的原因。
运维·服务器·mysql·面试·职场和发展·性能优化