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

Re: Modern Debian packaging system for DevOps: does it exist?



On Thu, 14 May 2015 15:45:01 +0200
Vincent Bernat <bernat@debian.org> wrote:

>  ❦ 14 mai 2015 14:02 +0100, Neil Williams <codehelp@debian.org> :
> 
> >>  1. Gitlab;
> >>  2. Isolated build environment inside Docker containers (where we
> >>     usually do `git clone && mk-build-deps && debuild`);
> >>  3. Aptly;
> >>  4. Self-written Python scripts linking all these components;
> >
> > What is the reason for docker vs chroot, LVM snapshot or VM?
> 
> It's hype! ;-)

So can be ignored. Good. The remaining options are LVM snapshot,
disposable chroot or a disposable VM. Those can be implemented in any
number of ways but it needs to be a fresh, clean, predictable start to
each build.
 
> More seriously, but this needs some additional work, it should be
> easier to manage persistent build dependencies. The first time you
> build a package, it retrieves and install all deps. The second time,
> the build environment is already here.

That's a (serious) bug, not a feature.

Either you want clean build environments or you are prepared to build
in dirty ones, in which case there's little point using a container at
all.

A package cache is different, that's what pbuilder uses - that avoids
the risk of stale packages being installed, not being updated and
breaking the build. Either do it by uninstalling at the end of the
build or by using a disposable container (LVM snapshot or pbuilder
chroot). At all costs, avoid the false appeal of a dirty container
which gets you none of the advantages and all of the problems of
building on a developer box with no container at all.

Were you thinking of a package cache or a dirty container?

Any build system which allows for dependencies of a previous build to
exist at the start of the next build is irretrievably broken and unfit
for purpose. All you can allow to exist at the start of the build is
build-essential.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

Attachment: pgp5RsGZW6ARg.pgp
Description: OpenPGP digital signature


Reply to: