Ubuntu QA:
BlogBrainstormPackage status
Log in
Ubuntu QA
The Ubuntu community has contributed 21986 ideas, 135057 comments, 2615221 votes
Idea sandbox Idea sandbox
Popular ideas Popular ideas
Ideas in development Ideas in development
Implemented ideas Implemented ideas
Idea #2886: Incremental apt updates

bug This idea is a duplicate of Idea #13: Delta (patch based) updates.
Written by masterpi the 3 Mar 08 at 22:05. Category: System. Related project: Nothing/Others. Status: New
Rationale
At the moment, updates with apt are done by downloading the entire new package, removing the old package, and installing the entire new package. It seems to me to be a waste for huge packages like games to download and overwrite all of the files even if they haven't changed. It is mitigated to an extent by dividing up packages into -media -bin, etc., but that only works if the package is designed well. Would it be a large resource hit to stop considering packages as discrete units but instead consider files. This would also eliminate the sometimes confusing (especially for new users) -bin, etc. packages from the system as well. The concept of a package could become more as an aggregation of files, each of which have revisions. This would be down the road a bit I realize, and it would make providing discrete .debs harder; but for now at least work could be done on downloading or installing only changed files.

184
votes
closed
Solution #1: Auto-generated solution of idea #2886
Written by masterpi the 3 Mar 08 at 22:05.
Ubuntu Brainstorm was updated in January 2009. Since the idea #2886 was submitted before this update, its rationale and solution are not separated. Please vote accordingly, and if you have the necessary rights, please separate the rationale from the solution. Thanks!
0
votes
closed
Solution #2: Create a diff engine
Written by TonyGeezy the 19 Jan 09 at 09:12.
The server already has all debs on it anyway, not just the latest versions. An engine could be created to compare your existing package version to the latest one, create a diff, and send it off. I'm not sure if this means you have to locally cache all packages, or if there could be a simple way to compare files inside packages and create diffs for those to patch your installed files.

Propose your solution

Attachments
No attachments.


Duplicates


Comments
sawjew2 wrote on the 4 Mar 08 at 07:39
This is what the conary package management system in Foresight and Rpath does. It seems like an excellent idea to me.

squid0 wrote on the 4 Mar 08 at 08:26
Great idea, especially for those of us with limited internet availability.

skerit wrote on the 4 Mar 08 at 11:41
It does sound like a great improvement, but isn't this changing the core ways of apt-get? Shouldn't Debian handle something like this as it would only create more incompatible repositories...

Kjella wrote on the 4 Mar 08 at 15:26
Working on a file basis is probably not that good an idea, since you want to run prescripts and postscripts and remove redundant files and whatnot, and would be a major change. However, you could do this simpler and make diff packages. Like you start with two packages and make a binary diff (either on the package as a whole or the files inside) then use the apt cache (alternatively the installed system, but that's trickier) to patch your own package.

Repo side:
foo3.2.5 - foo3.2.4 = binary diff
Send diff

Client side:
foo3.2.4 + diff = foo3.2.5
Install 3.2.5

Fallback options:
If server or client don't support diffs, install full package. If client doesn't have a previous package (or no diff is available for that version), install full package.

This could be done without meddling with any core apt-get code, diffs would patch signature so it'd all be just an advanced preprocessor to make a bog standard package.

jan1 wrote on the 4 Mar 08 at 20:23
Aren't you talking about so called "delta updates"?

Mårten Woxberg wrote on the 4 Mar 08 at 21:18
Yes he is...

This was the 13th idea posted...
http://brainstorm.ubuntu.com/idea/13/

masterpi wrote on the 10 Mar 08 at 15:38
Oops, didn't see that. I searched for "apt" to find duplicates, thinking any discussion would involve that, but that idea doesn't say it specifically. :/

I actually have Foresight installed, because of this feature, though it's quite buggy at the moment.


Post your comment