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 + 优先级配置 = 让软件永远不更新
相关推荐
ltl17 小时前
eBPF 可观测性全景:bcc、bpftrace、libbpf 的工程路径
linux
2401_8685347817 小时前
数仓开发落地手册
linux·运维
正在走向自律18 小时前
使用atop工具监控Linux系统指标
linux·运维·php·实时监控·atop分析内存
果果燕20 小时前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
yyy(十一月限定版)20 小时前
017【入门】最小栈
linux·运维·服务器
不负岁月无痕21 小时前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试
2401_894915531 天前
GEO 源码部署如何实现精准地域分发?核心配置参数深度讲解
java·运维·服务器·后端·开源
Zguigo1 天前
第25-26讲:计算机操作系统存储管理——分页机制、页表与快表(TLB)
linux·windows·笔记
常乐か1 天前
VMware Workstation Pro 17 搭建 Ubuntu 24.04 完整指南
linux·运维·ubuntu
2401_858286111 天前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池