Hi there,
  i've been using my host online to compile updates for like the past
year or so...  My host is currently configured so that its world file
is the combination of all my PCs at home's world.  So the host has x11
installed and lots of other completely useless stuff for a remote
host!  I decided to start a small project, but i wanted your opinion
before doing so... also, i dont want to reinvent the wheel so if
anyone thinks of a better way to do this or if there is one already in
use...  let me know!

I'm using a host (or binpkg cruncher) to make all emerges as the host
is approximately 10 times faster than my fastest PC here (they are
very old).  Even when distcc is setup perfectly, the host still wins
the competition, by far.  So i make binpks on the host and propagate
them to the PCs at home where i emerge using the -k option.  (a few
rare packages will still have to be re-emerged, but that's normal)

To facilitate reading:  sum(worlds)  ==  all PCs worlds combined
Also, this works only if both host and pc would create the same binpkg
(having the same make.conf options mostly, same stuff setup in
/etc/portage, etc...)

Right now, here's the base of the process to get one PC updated
(without my unison world):
host> emerge --sync
host> emerge -uDN sum(worlds)  [builds binpkgs]
<sync host's portage with PC's portage>
PC> emerge -uDN -k world
-----

Here's the process ( a bit more complicated ) using unionfs:
host> emerge --sync
host> emerge -uDN world
<start unionfs over the whole root and chroot in union mount point>
host> emerge -uDN -k sum(worlds)
<exit chroot>
host> rsync -ah --progress /path/to/rootunionfs/usr/portage/packages/*
/usr/portage/packages/
host> rm -Rvf /path/to/rootunionfs
<sync and emerge on PC as with previous method>
----

You'll notice the emerge run on host, inside the union uses the -k
option, this is to help the host and avoid recompiling dependency it
had compiled in the past but had not really installed.  This way, it
quickly installs all dependencies in the unionfs, compiles them if
necessary and builds the binpkg for every emerge.

This process will take longer that my current process, but should help
maintain a clean host.  It could even be possible, if i dont suffer
from disk space constraint, to keep the unionfs and just remount it
correctly for the next emerge, but this could lead to some issues (ie
if i emerge something outside the unionfs at some point, etc...).

What do you think?  Should i start working on this?  Or is there
anything better out there?

Thanks, Simon

Reply via email to