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

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


一、什么是 APT?

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

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

我们平时用的:
apt、apt-get、apt-cache、apt-mark、apt-key 等,全都属于 APT 工具家族。


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

1. APT 由哪些部分组成?

  • 前端命令 :apt、apt-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 + 优先级配置 = 让软件永远不更新
相关推荐
科技研学社10 分钟前
中小服装工装厂自动化改造:产线节拍平衡与工位减负实施方案
运维·自动化
极光通讯13 分钟前
服务器内存替代料选型方法论:主料号缺货时如何找到Pin-to-Pin兼容型号
运维·服务器
草根大哥14 分钟前
08-横向扩容与突发高并发:加机器到底买到了什么
运维·webrtc·srt·横向扩容·whip·自建cdn
人生百态,人生如梦28 分钟前
Ubuntu在低版本下使用ccswitch+claudecode(CCSwitch+Docker+Claude)连调教程
linux·ubuntu·docker·claudecode·ccswitch
oicola33 分钟前
【运维】CI/CD是什么,合格的规范应该怎么设置
运维·ci/cd
Dachui_112235 分钟前
内网穿透如何限制访问地区?ZeroNews Geo Location 区域访问控制实践
运维·网络安全·内网穿透·访问控制·远程办公·api安全·ip白名单
byte轻骑兵1 小时前
【BlueZ】hciconfig 工具:蓝牙适配器管理实操 + 源码实现基础
linux·bluez·电脑蓝牙·嵌入式蓝牙
SKH.1 小时前
Linux驱动-系统移植
linux·服务器
根目录下的猫1 小时前
虚拟机复制过来运行时:“虚拟机使用的此版本,VMware Workstation 不支持的硬件版本。”错误解决办法,亲测可用
linux·运维·服务器·后端
梦帮科技1 小时前
【3.0】上线与运维:节点监控、水龙头、区块浏览器与安全清单
运维·安全·web安全·金融·区块链·密码学·安全架构