[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debdelta and Streaming Package Installation for dpkg/APT

Hash: SHA1

Dear Ishan, and also in CC Michael and debian-dpkg,

here is a reply to a message you sent me long ago; this message also
referenced a message in debian-dpkg [1], so I am CC-ing them as well.

The message, in short, was:

Il 06/01/2011 14:55, Ishan Jayawardena ha scritto:
> I came across the idea of streaming package installation[2] for
> dpkg/APT in Debian's wiki page for last year's summer of code. I
> found it interesting. I wrote to the debian-dpkg list about my
> interest and got two replies from them. In the replies, there was a
> mention about exploring the possibilities of using debdeltas in the
> installation process to make it faster.

Yes, there is a way (and it is actually not very difficult, at least
on the 'debdelta' side).

Let me summarize. When 'debdelta-upgrade' (or 'debpatch') recreates a
deb, one step is reassembling the data.tar part inside it; this part
moreover is compressed (gzip, bzip2 or lately lzma). This
'reassembling and compressing' takes time (both for CPU and for HD),
and is moreover quite useless, since, in short time, 'apt' will call
'dpkg -i' that  decompresses and reopens the data.tar in the deb.

It is then reasonable to collapse this two parts, and this would
possibly speed up the upgrade a bit.

Here is my idea. When  'debdelta-upgrade' is called in upgrading a
package 'foobar' it currently creates 'foobar_2.deb'. By an
appropriate cmdline switch, instead of creating a 'foobar_2.deb' , it
would directly save all of its file to the filesystem, and it would
add an extension to all the file names, making sure that no file name
would conflict (=overwrite) with a preexisting file on the filesystem
; then it would create a file 'foobar_2.deb_unpacked' , that would be
just a text file similar to the usual control file, but specifying
also the extension used, and possibly the list of unpacked files.

I could change debdelta to accomplish that, it would not be a huge change.

Someone should help instead in changing 'dpkg' so that it would be
able to install starting from 'foobar_2.deb_unpacked'. And change APT
so that it would interact with 'debdelta' to create the
'foobar_2.deb_unpacked' files, and pass them to dpkg .

Note that the above idea overlaps a lot with [2].


ps: for sake of brevity and clarity, I am skipping a lot of details: I
preferred to give the whole picture first.

[1] http://lists.debian.org/debian-dpkg/2011/01/msg00008.html
[2] http://wiki.debian.org/SummerOfCode2010/StreamingPackageInstall

Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


Reply to: