Ubuntu – Why does Updating force the user to download complete cache packages

package-managementupdate-manager

Most of the time when I update my system, Update Manager downloads whole packages from the list. Even if the package only changes in a few lines. What I mean is, for a 4MB package that has only for example 2KB lines changed, Update Manager downloads the whole 4MB. With my connection this is horrible since it takes very long (Remember I download between 10KB to 50KB most of the time). Since there are several big packages, we could be talking between 2KB changes separated in 100MB of packages that I would have to download from scratch even though I had already downloaded them 24 hours ago for example.

So why does a Cache Manager need to download the complete package again when all that has changed is one small part. More importantly, is there a way that I can tell it to verify the source package to see what has changed and securely download only the modified part?

I will add that this is apt-get, aptitude and synaptic also. All of them work the same way and when a 50 line of the package changes, I have to download the whole thing. Is there a more efficient way of updating, a configuration, a parameter?

Best Answer

I'm afraid this isn't a feature of a Debian-based system. STATUS_ACCESS_DENIED is correct about integrity checking. gpg keys are stored for repositories. Release files are stored in repositories and are signed. Those release files contain checksums for the various Package files, which contain lists of packages. Each package description contains checksums for each component as a whole.

Debian has done work to reduce the bandwidth required for apt-get by using package diffs, but they don't seem to reduce the bandwidth required to do an apt-get upgrade, only apt-get update (not the packages themselves, only the Package files). I've been told that Ubuntu doesn't support this. For a description see http://www.debian-administration.org/articles/439

You may be interested in the Exherbo or Funtoo. See https://unix.stackexchange.com/questions/36357/git-based-package-manager-installer-for-linux. Git wasn't around when the debian project was created. It signs individual objects and keeps a chain of checksums to ensure integrity.