apt-get 是什么
apt-get 是 Debian 系包管理的稳定接口,脚本与定时任务里首选它:输出格式不容易变,选项语义稳定。它保留了底层命令的完整能力,-y 免交互、--no-install-recommends 精简依赖、-f 修依赖破损、--dry-run 预演变更。需要交互提示的日常操作,才更适合用更上层的 apt。
基本信息
| 适用平台 | Debian、Ubuntu 及其衍生版 |
|---|---|
| 命令语法 | apt-get [选项] install | remove | purge | update | dist-upgrade |
| 常用选项 | -y 自动确认 / --no-install-recommends 不装推荐依赖 / -f 修复破损依赖 / --dry-run 只预演 / --only-upgrade 只升级不安装 |
| 与 apt 的区别 | apt 面向交互,apt-get 面向脚本,两者读写同一套包索引 |
典型使用场景
- 自动化安装:脚本里用 -y 保证流程不被确认提示阻塞
- 精简镜像:加 --no-install-recommends 少装无关依赖
- 修复依赖破损:用 -f install 处理半配置状态
- 变更预演:--dry-run 先看会动哪些包
- 锁定版本:安装指定版本以便复现环境
常用示例
常用示例
apt-get update && apt-get -y install --no-install-recommends nginx
apt-get -y -f install # 修复依赖破损
apt-get --dry-run install nginx # 预演,不改动系统
apt-get -y autoremove # 清理不再被依赖的自动安装包
apt-cache policy nginx # 查看可用版本与来源
apt-get install nginx=1.24.0-1ubuntu1 # 安装指定版本常用命令
| 命令 | 作用 | 提示 |
|---|---|---|
| update | 刷新软件包索引 | 只更新索引,不升级任何包 |
| install | 安装软件包 | 配合 -y 免交互 |
| remove | 卸载但保留配置文件 | 与 purge 的区别在这里 |
| purge | 卸载并删除配置文件 | 配置不可恢复,慎用 |
| autoremove | 清理自动安装的孤儿包 | 先看预演清单 |
| dist-upgrade | 允许连带增删包完成升级 | 风险高,生产要评估 |
提示无法获得锁时,先找出还在运行的包管理进程并等它结束;直接删锁文件会让包数据库状态与实际不符。
autoremove 可能删掉手工装过、当前已无依赖关系的库,先看 --dry-run 的清单再执行。
apt-get 与 apt 共用同一套索引与状态文件,混用不会互相破坏;但脚本里统一用 apt-get,可以避开随版本变化的展示格式。
先刷新索引再安装是更稳的节奏,无人值守脚本要把确认参数与并发锁定考虑进去,否则任务会卡在交互或等待锁上。升级要区分「只更新已安装的包」与「连带处理依赖变更」两种口径:前者变更面小,后者可能引入大范围调整,生产窗口要分开安排。