公众号旧文

为什么Linux在装软件之前,要apt update?

作者:胖子阅读 —

很多人天天 apt,但并不知道 apt 背后在干嘛。 一、什么是 apt?

apt 全称是:Advanced Package Tool(高级包管理工具) 它是 Debian / Ubuntu 系(包括很多服务器系统)用来: 安装软件升级软件删除软件管理依赖关系 的工具。 你可以把它理解成: Linux 的“应用商店 + 安装器 + 依赖管理器” 比如:apt install nginx本质就是: 去软件源找 nginx下载自动把依赖一起装好安装到系统 二、apt 的核心机制(重点) 容易误解的一点是: apt 不是直接联网查软件的,而是依赖一个本地缓存的“软件列表数据库”。 这个数据库存放在:/var/lib/apt/lists/里面记录的是: 有哪些软件每个软件的版本下载地址在哪依赖什么包 三、apt update 在干嘛? apt update = 更新“软件目录索引”,不是更新软件本身 它做的事情是: 读取软件源配置:/etc/apt/sources.list/etc/apt/sources.list.d/去这些源(服务器)下载最新的“软件列表”更新本地缓存:/var/lib/apt/lists/四、为什么必须先 apt update? 核心原因就一句话: 你本地的“软件目录”可能已经过期了。 如果你不 update,就会出现: 1️⃣ 找不到软件E: Unable to locate package xxx因为本地列表里没有这个包。 2️⃣ 版本错误 / 依赖冲突Depends: xxx but it is not installable因为:你看到的是旧版本信息服务器已经更新了依赖关系 3️⃣ 下载失败(404)404 Not Found原因:你本地记录的下载地址已经失效服务器上的包已经更新/删除 五、一个很形象的比喻 你可以这么理解: apt update 👉 更新“菜单”apt install 👉 点菜软件源 👉 餐厅厨房 如果你不 update,就相当于你拿着 去年的菜单点菜 结果: 菜没了(404)配料变了(依赖错误)厨房不认(版本冲突) 六、那 apt upgrade 又是什么? 很多人混淆:命令作用apt update更新软件列表(元数据)apt upgrade升级已安装的软件update ≠ 升级软件```七、什么时候必须 update? 不是每次都绝对必须,但**强烈建议**在这些情况执行: ✔️ 必须 update 的场景刚新装系统很久没用 apt(比如几天/几周)软件源刚改过报错(404 / not found / 依赖问题) ❌ 可以不 update 的情况刚刚已经 update 过同一个脚本里连续安装多个包 八、总结(最核心三句话)```apt 是 Linux 的软件包管理工具 apt update 是更新“软件索引数据库” 不 update 就相当于用过期信息安装软件

你可能感兴趣的其他文章:人类为什么没有进化出生殖隔离?尿液无菌,为什么小便后还要洗手?当《荷塘月色》都被判定为AI,我们还该相信AIGC检测吗?为什么我敢随便Kill进程?——幂等与可重入,普通人也能用上的工程哲学