为什么更新会强制用户下载完整的缓存包

为什么更新会强制用户下载完整的缓存包

大多数情况下,当我更新系统时,更新管理器会从列表中下载整个软件包。即使软件包只更改了几行。我的意思是,对于一个只有 2KB 行更改的 4MB 软件包,更新管理器会下载整个 4MB。对于我的连接,这很糟糕,因为它需要很长时间(请记住,我大多数时候下载 10KB 到 50KB)。由于有几个大软件包,我们可能会谈论 100MB 软件包中分散的 2KB 更改,即使我已经在 24 小时前下载了它们,我也必须从头开始下载。

那么,为什么缓存管理器需要再次下载完整的包,而所有更改的只是一小部分。更重要的是,有没有办法可以让它验证源包以查看更改的内容并安全地仅下载修改的部分?

我要补充的是,这是apt-getaptitude还有synaptic。它们都以相同的方式工作,当软件包的 50 行发生变化时,我必须下载整个软件包。有没有更有效的更新方式、配置、参数?

答案1

恐怕这不是基于 Debian 的系统的功能。STATUS_ACCESS_DENIED 关于完整性检查是正确的。gpg 密钥存储在存储库中。发布文件存储在存储库中并经过签名。这些发布文件包含各种软件包文件的校验和,其中包含软件包列表。每个软件包描述都包含每个组件的校验和。

Debian 已经努力apt-get通过使用软件包差异来减少所需的带宽,但它们似乎并没有减少执行所需的带宽apt-get upgrade(仅apt-get update(不是软件包本身,仅是软件包文件)。我听说 Ubuntu 不支持这一点。有关描述,请参阅http://www.debian-administration.org/articles/439

您可能对 Exherbo 或 Funtoo 感兴趣。请参阅https://unix.stackexchange.com/questions/36357/git-based-package-manager-installer-for-linux。创建 Debian 项目时还没有 Git。它对单个对象进行签名并保存一系列校验和以确保完整性。

相关内容