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

Re: Bundling .debs (in a .deb?)



Silly question -- if I'm bundling multiple .debs up inside another
.deb, which is the better place to put them:

- in /tmp inside data.tar.gz, where they'll land in /tmp on the target
  and be removed by the postinstall

- inside control.tar.gz, where they'll be unpacked into
  /var/lib/dpkg/tmp.* but then automatically removed later by
  dpkg-deb.

Any opinions?  Generically, I guess this question is "where do I put
large temporary blobs that are only used during installation?"  I
haven't (yet) found any guidance on this in debian policy or
elsewhere.

Steve


On Thu, Jan 09, 2003 at 02:29:44PM -0800, Steve Traugott wrote:
> Hi All,
> 
> Does anyone know of any existing tool which bundles a .deb package,
> and its prerequisite packages, and its related debconf db deltas, into
> a single archive?  The resulting archive might be a tar.gz, zip, or
> even another .deb...  
> 
> It might be useful to think of this in terms of encapsulating the
> results of a given 'apt-get install foo' or 'apt-get upgrade', so that
> the same actions can be "replayed" later on similar machines.  (For
> reasons why you might want the same actions replayed on other machines
> rather than whatever apt-get decides to do at some later point in
> time, see http://www.infrastructures.org/papers/turing/turing.html.
> Specifically, the technique described in section 7.3.1.1 just now blew
> up on our machines when woody upgraded -- the available packages all
> changed.  We're running apt-proxy, but have multiple locations, and
> the problem of keeping the apt-proxy caches consistent between
> locations makes the machine builds too fragile, too dependent on
> environment.)
> 
> I'm in the middle of writing a bundling tool right now, but don't want
> to re-invent the wheel.  You'd use it like this:
> 
> 	apt-mkdeb install foo 
> 	[ ... answer debconf questions, if any ... ]
> 
> ...this would create a 'foo-deb.deb' in the current directory.
> This .deb contains all of the .deb's that would have been
> installed by 'apt-get install foo' on the same machine.  It also
> contains the debconf db values that would have been set during
> installation.  
> 
> To replay on other machines, just install foo-deb.deb on them.
> The postinstall script unpacks the debs and configures them,
> unattended.
> 
> One thing I'm having doubts about -- the correct storage and execution
> of debconf values.  I'm thinking about debconf-show to extract them
> from the first machine and debconf-communicate to set them on
> subsequent target machines.  I don't want to just diff config.dat,
> because I don't want to assume debconf db format or location.  Is
> there a better way?
> 
> Any votes for a better name than 'apt-mkdeb'?  Any preferences for how
> that 'foo-deb.deb' file should really be named, considering the fact
> that it's particular to a machine and a point in time?  Maybe
> 'foo-HOSTNAME-EPOCH.deb'?
> 
> Steve
> -- 
> Steve Traugott 
> Speaker Coordinator, Silicon Valley Linux Users Group
> http://www.svlug.org
> --
> UNIX/Linux Infrastructure Architect, TerraLuna LLC
> stevegt@TerraLuna.Org   
> http://www.stevegt.com
> 
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 

-- 
Stephen G. Traugott 
UNIX/Linux Infrastructure Architect, TerraLuna LLC
stevegt@TerraLuna.Org   
http://www.stevegt.com



Reply to: