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

anyone using unionfs yet? merging package states needs some tools



So I've just started playing with unionfs as a way of dealing with the
many different projects I've got on my laptop.

I keep a root fs for each "thing" that I'm doing. I use unionfs to
minimize disc space... I can have one main fs (or one per debian
issue) and lots of directorys keeping updates for each project.

So:

  /src/main-fs

  /projects/my-web-server/fs
                         /mntpoint

  /projects/rss-reader/fs
                      /mntpoint

  /projects/scheme-compiler/fs
                           /mntpoint

To work on the scheme-compiler I can do:

  $ sudo mount -t unionfs \
       -o dirs=/projects/scheme-compiler/fs:/src/main-fs \
         none /projects/scheme-compiler/mntpoint
  $ sudo chroot /projects/scheme-compiler/mntpoint
 

I can keep all the depends for the scheme compiler (maybe a particular
version of gcc or something) defined in the scheme-compiler fs but
retain the common stuff.

This works *really* well and I'll be writing it up for onlamp soon. I
think it will be useful for a lot of people.


One big problem that I've hit on though is package merging. Sometimes
I find a package that should be installed in my common debian fs. If
one umounts all the unionfs' and then chroot's back into the main-fs
then one can install more common stuff... but when you add the union
back on the union's package state will obviously take precedence. The
code is still installed but you can't see the package with:

  dpkg -l

What this needs is pakage state file merging so that you can merge the
changes in the main-fs package state back into all your unions. 

It is possible like this:

  diff -u /src/main-fs/var/lib/dpkg/status \
      /projects/scheme-compile fs/var/lib/dpkg/status \
   | grep -e '^-[^-]' > /tmp/changes

but clearly you have to manually review the changes before appending
them to the union's dpkg/status.


dpkg can merge package availability files but is there a debian tool
out there already that can auto merge package status files? If there
is this would be sooo much easier.


Nic



Reply to: