Kali Linux apt 包管理器使用详解
Kali 的仓库体系
Kali Linux 维护三种仓库,对应不同更新节奏:
| 仓库 | 说明 | 适用场景 |
|---|---|---|
| kali-rolling | 持续更新,跟随上游变化 | 默认日常使用 |
| kali-last-snapshot | 每半年固定版本(如 2025.2) | 需要稳定版本号的场景 |
| kali-dev | 开发版,测试新包 | Kali 贡献者 |
默认配置是 kali-rolling,在 /etc/apt/sources.list.d/kali.list 中指定。
基础命令
刷新包列表
sudo apt update
搜索包
# 搜索关键词
apt search nmap
# 查看包详情
apt show nmap
安装包
sudo apt install -y nmap
# -y 自动确认,适合脚本中
批量安装
sudo apt install -y nmap metasploit-framework wireshark burpsuite
升级所有已安装包
sudo apt full-upgrade -y
full-upgrade(不是 upgrade)会在必要时移除不再需要的包。这是 Debian 系发行版的标准升级命令。
卸载包
sudo apt remove nmap # 只删包
sudo apt purge nmap # 删包 + 清理配置文件
清理缓存
sudo apt autoremove # 删不再需要的依赖
sudo apt clean # 清 /var/cache/apt 下的 .deb 文件
高级用法
固定版本(防升级)
某些工具升新版会出问题,可以用 apt-mark hold 锁住版本:
sudo apt-mark hold nmap
# 检查 hold 列表:apt-mark showhold
# 解锁:sudo apt-mark unhold nmap
从 .deb 文件安装
sudo dpkg -i package.deb
# 如果缺依赖:sudo apt --fix-broken install -y
aptitude(交互式前端)
aptitude # 进入 TUI 界面,用方向键导航
aptitude 在处理依赖冲突时比 apt 更智能,但默认没装:sudo apt install aptitude。
常见问题
E: 无法获得锁 /var/lib/dpkg/lock-frontend
另一个 apt 进程正在运行(可能是后台自动更新):
# 等待或者杀掉
sudo kill $(pgrep apt)
sudo dpkg --configure -a # 修复可能损坏的 dpkg 状态
E: 仓库公钥过期
sudo apt-key adv --recv-keys <过期的key ID>
# 或者更新整个密钥环
sudo apt-key update
sudo apt update
某些 32 位包找不到
Kali 自 2023 年起默认不再支持 i386 32 位架构。需要手动开启:
sudo dpkg --add-architecture i386
sudo apt update
但注意:开启后会多下载大量包,且部分 32 位安全工具可能无法正常运行。