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

Keeping .debs lying around, 'version history' for dpkg



Hiya,

The following, slightly poorly structured, related ideas have been
swishing around in my head for a while, so I thought I'd stick them
here so they're in the archives, and see if anyone has any comments:


Suggestion
----------

When dpkg installs a new deb it (optionally, default off) saves a copy
of the .deb it has just installed somewhere.

I think this should be a dpkg feature, since I would like it to apply
to all debs, not just ones downloaded with apt.

So dpkg -i would before installing a package, copy the whole .deb file
to a holding area, where it would lie along with all previous versions
recently installed.  This means that if, for example, the postgres
maintainer made a catastrophic packaging error with a new version, it
is as simple as anything to immediately revert to the older one.

The actual .deb holding area could be enhanced not to store the whole
.deb for every previous version, but merely one full version and
xdeltas (as we have often suggested).

This would make it much easier to implement the often requested
feature of only downloading an xdelta (or using rsync) since the old
versions of the debs would still be around.

It would also make it much easier to 'clone' one system onto a new machine.

Suggestion
----------

dpkg should keep thorough logs of package upgrade/downgrade cycles so
that you can establish which set of packages was running at a given
time. (Compare bug #53376)

This has long seemed to me to be a missing feature of dpkg. It would
be invaluable in my experience as a systems administrator to be able
to say "Well, it all worked last wednesday, what versions were we
using then?".  It would also make it much easier for bug reporters to
submit useful bugs about interactions between particular versions.

Suggestion
----------

Combining the two above facilities, it should be possible to give dpkg
(or some helper tool) a 'CVS-esque' versioning ability to "revert to
set of packages which were installed last wednesday".

More sophisiticatedly, using the "pick a consistent set of packages"
logic currently built into apt, it might be possible to say "revert
the postgres packages to last wednesday, along with the minimal set of
packages required to satisfy any dependencies".



This last ability I think would be /very/ useful for systems administrators.

-- 
Jules Bean                          |        Any sufficiently advanced 
jules@debian.org                    |  technology is indistinguishable
jules@jellybean.co.uk               |               from a perl script



Reply to: