1 |
Hi there, |
2 |
i've been using my host online to compile updates for like the past |
3 |
year or so... My host is currently configured so that its world file |
4 |
is the combination of all my PCs at home's world. So the host has x11 |
5 |
installed and lots of other completely useless stuff for a remote |
6 |
host! I decided to start a small project, but i wanted your opinion |
7 |
before doing so... also, i dont want to reinvent the wheel so if |
8 |
anyone thinks of a better way to do this or if there is one already in |
9 |
use... let me know! |
10 |
|
11 |
I'm using a host (or binpkg cruncher) to make all emerges as the host |
12 |
is approximately 10 times faster than my fastest PC here (they are |
13 |
very old). Even when distcc is setup perfectly, the host still wins |
14 |
the competition, by far. So i make binpks on the host and propagate |
15 |
them to the PCs at home where i emerge using the -k option. (a few |
16 |
rare packages will still have to be re-emerged, but that's normal) |
17 |
|
18 |
To facilitate reading: sum(worlds) == all PCs worlds combined |
19 |
Also, this works only if both host and pc would create the same binpkg |
20 |
(having the same make.conf options mostly, same stuff setup in |
21 |
/etc/portage, etc...) |
22 |
|
23 |
Right now, here's the base of the process to get one PC updated |
24 |
(without my unison world): |
25 |
host> emerge --sync |
26 |
host> emerge -uDN sum(worlds) [builds binpkgs] |
27 |
<sync host's portage with PC's portage> |
28 |
PC> emerge -uDN -k world |
29 |
----- |
30 |
|
31 |
Here's the process ( a bit more complicated ) using unionfs: |
32 |
host> emerge --sync |
33 |
host> emerge -uDN world |
34 |
<start unionfs over the whole root and chroot in union mount point> |
35 |
host> emerge -uDN -k sum(worlds) |
36 |
<exit chroot> |
37 |
host> rsync -ah --progress /path/to/rootunionfs/usr/portage/packages/* |
38 |
/usr/portage/packages/ |
39 |
host> rm -Rvf /path/to/rootunionfs |
40 |
<sync and emerge on PC as with previous method> |
41 |
---- |
42 |
|
43 |
You'll notice the emerge run on host, inside the union uses the -k |
44 |
option, this is to help the host and avoid recompiling dependency it |
45 |
had compiled in the past but had not really installed. This way, it |
46 |
quickly installs all dependencies in the unionfs, compiles them if |
47 |
necessary and builds the binpkg for every emerge. |
48 |
|
49 |
This process will take longer that my current process, but should help |
50 |
maintain a clean host. It could even be possible, if i dont suffer |
51 |
from disk space constraint, to keep the unionfs and just remount it |
52 |
correctly for the next emerge, but this could lead to some issues (ie |
53 |
if i emerge something outside the unionfs at some point, etc...). |
54 |
|
55 |
What do you think? Should i start working on this? Or is there |
56 |
anything better out there? |
57 |
|
58 |
Thanks, Simon |