sudo apt update刷新“有哪些包、什么版本”的清单,不升级任何软件。
约 1249 字大约 4 分钟
2026-05-14
apt 是 Debian/Ubuntu 上最常打交道的命令之一。它的命令不多,但有几个关键区别——update 和 upgrade 不是一回事、remove 和 purge 删的东西不一样——分不清就会“以为升级了其实没升”或者“删了软件配置还在”。
掌握 apt 的 update / upgrade / install / remove / search,重点分清 update 与 upgrade、remove 与 purge 的区别。
sudo apt update刷新“有哪些包、什么版本”的清单,不升级任何软件。
sudo apt upgrade把已安装的包升到索引里的新版本,要先 update。
sudo apt install 包名安装软件包并自动处理依赖。
apt show 包名看版本、依赖、大小、描述,装之前先了解。
这两个名字像,干的事完全不同:
apt update —— 更新软件包索引。它只是去软件源刷新“现在有哪些包、各是什么版本”这份清单,不动你机器上任何已装软件。apt upgrade —— 根据最新的索引,把已安装的软件升级到新版本。所以标准的升级流程是两步连用:
sudo apt update # 先刷新清单
sudo apt upgrade # 再按清单升级只 update 不 upgrade,软件一个没升;不 update 直接 upgrade,apt 拿的还是旧清单,可能升不到最新版,或者报“包找不到”。
apt install nginx 装的不只是 nginx——它会读取 nginx 的依赖关系,把需要的库一并装上。这就是包管理器的价值。几个实用变体:
sudo apt install nginx # 装最新版
sudo apt install nginx=1.24.0-1 # 装指定版本
sudo apt install --no-install-recommends nginx # 不装“推荐”但非必需的包
apt show nginx # 装之前先看看它是什么、多大、依赖什么卸载也有两个层次:
| 命令 | 删什么 | 留什么 |
|---|---|---|
apt remove 包 | 软件本身 | 保留配置文件(/etc 下的) |
apt purge 包 | 软件 + 配置文件 | 基本不留 |
remove 留配置,是为了你将来重装时配置还在。但如果你就是想彻底清掉(比如配置已经搞乱了想重来),用 purge。卸载后还有一类残留——当初作为依赖被装、现在没人用了的包:
sudo apt autoremove # 清理不再被依赖的包apt install / upgrade / remove 执行前,apt 会列出它打算做的全部改动:要装哪些、要删哪些、要升级哪些、占多少空间,然后停下来问 Y/n。
不要无脑回车。尤其留意输出里的 The following packages will be REMOVED——有时候你只想装一个小工具,apt 却因为依赖冲突要顺带删掉一堆东西,这时候就该停下来想想。这个确认提示是 apt 给你的最后一道关卡。
apt 操作改的是整台机器,看清再确认
apt 的安装、升级、卸载都需要 sudo,改的是全系统共享的软件环境,不是你个人目录。两个高频翻车点:① apt upgrade 在生产环境可能升级正在用的关键服务,挑低峰期、知道怎么回滚再做;② 看到 apt 提示要 REMOVE 一堆包时,先停下来弄清为什么,别直接 Y。apt full-upgrade(会为了升级而删包)比 upgrade 更激进,更要谨慎。
| 误区 | 更稳妥的做法 |
|---|---|
以为 apt update 会升级软件 | update 只刷新索引,apt upgrade 才升级软件 |
直接 apt upgrade 不先 update | 先 update 拿最新索引,否则可能升不到新版或报错 |
apt remove 后以为配置也没了 | remove 保留配置,要连配置删用 apt purge |
apt install/upgrade 提示直接回车 | 看清要装 / 删 / 升级哪些,尤其留意 REMOVED 列表 |
版权归属:Shuo Liu