apt 常用命令
软件源更新
| 命令 | 说明 |
|---|---|
sudo apt update | 更新软件源索引 |
sudo apt upgrade | 升级所有已安装包 |
sudo apt full-upgrade | 升级包并自动处理依赖变更 |
sudo apt dist-upgrade | 同 full-upgrade |
安装与卸载
| 命令 | 说明 |
|---|---|
sudo apt install 包名 | 安装软件包 |
sudo apt install 包名=版本号 | 安装指定版本 |
sudo apt install ./包名.deb | 安装本地 .deb 文件 |
sudo apt reinstall 包名 | 重新安装 |
sudo apt remove 包名 | 卸载软件包(保留配置) |
sudo apt purge 包名 | 卸载并删除配置文件 |
sudo apt autoremove | 删除不再需要的依赖 |
搜索与查询
| 命令 | 说明 |
|---|---|
apt search 关键词 | 搜索软件包 |
apt show 包名 | 显示包详细信息 |
apt list --installed | 列出已安装的包 |
apt list --upgradable | 列出可升级的包 |
apt depends 包名 | 查看依赖关系 |
apt rdepends 包名 | 查看被哪些包依赖 |
dpkg -L 包名 | 列出包安装的所有文件 |
dpkg -S /path/to/file | 查看文件属于哪个包 |
缓存清理
| 命令 | 说明 |
|---|---|
sudo apt clean | 清除所有下载缓存 |
sudo apt autoclean | 仅清除过期缓存 |
sudo apt autoremove --purge | 删除依赖并清除配置 |
版本锁定
| 命令 | 说明 |
|---|---|
sudo apt-mark hold 包名 | 锁定包版本(禁止升级) |
sudo apt-mark unhold 包名 | 取消锁定 |
apt-mark showhold | 查看已锁定的包 |
修复
| 命令 | 说明 |
|---|---|
sudo apt --fix-broken install | 修复依赖 |
sudo dpkg --configure -a | 重新配置未完成的包 |
软件源管理
| 命令 | 说明 |
|---|---|
sudo add-apt-repository ppa:xxx/yyy | 添加 PPA |
sudo add-apt-repository --remove ppa:xxx/yyy | 移除 PPA |
cat /etc/apt/sources.list.d/ubuntu.sources | 查看已配置的源 |
grep -rh "^deb " /etc/apt/sources.list.d/ | 列出所有源 |
第三方软件源签名(apt-key 已移除)
APT 3.1 已彻底移除 apt-key,全局密钥环不再受信任。添加第三方源时,应把密钥单独存放到 /etc/apt/keyrings/,并在源条目里用 Signed-By 显式指向它。
# 1. 下载密钥并转换为二进制 keyring(去除 ASCII 装甲)
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://example.com/repo.gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/example.gpg
sudo chmod 0644 /etc/apt/keyrings/example.gpg推荐使用 deb822 格式(.sources 文件),用 Signed-By 绑定密钥:
# /etc/apt/sources.list.d/example.sources
Types: deb
URIs: https://example.com/apt
Suites: noble
Components: main
Signed-By: /etc/apt/keyrings/example.gpg若使用传统单行格式(.list 文件),则在选项中写 signed-by=:
# /etc/apt/sources.list.d/example.list
deb [arch=amd64 signed-by=/etc/apt/keyrings/example.gpg] https://example.com/apt noble mainTip
每个源都用各自的 keyring 仅签名自己的仓库,避免某第三方密钥被用于伪造官方包,比旧的全局 apt-key 安全得多。
模拟与下载
| 命令 | 说明 |
|---|---|
apt install -s 包名 | 模拟安装(不实际执行) |
apt download 包名 | 下载但不安装 |
实用技巧
| 命令 | 说明 |
|---|---|
apt changelog 包名 | 查看包的变更日志 |
apt policy 包名 | 查看包在哪个源中 |
grep ^Package /var/lib/apt/lists/仓库名*_Packages | sort -u | 列出某仓库提供的所有包 |
Last updated on