Yes, your words about "dependency" and "flexibility" are valid, but this is also the most straightforward way to sync multiple machines at once. If you do need to emerge a package when the laptop is away from home then just --sync and it builds a portage tree at the "missing mountpoint" (if that makes sense).

I'll consider that, but seriously, I've tried many ways, including rsyncd, to sync portage on my computers and I've settled for unison. Really, I like it for its simplicity of use and maintenance and the fact that my host only has the ssh port open. Sync'ing portage is not a problem, i'll explore different ways along the way. Dont try to convince me of other ways, this one is working (and I don't mind whatever downsides).

Great! I'm glad you're happy with this. You're NFS exporting a sub-directory of /usr/portage, then, in order to share the built packages?

As said, no. I'm using a separate copy on each host, which is sync'ed manually between those hosts. It may sound awful, but it actually syncs my /home directory, as well as my /root dir (where I keep important system stuff, like dev drivers source). The sync'ing is not very long and once done, each computer is completely independant and contains all my stuff i need. Which creates redundancy.

I had tried NFS before, and failed, but I was not very interested and the first few obstacles made me drop it. It was before I tried gentoo and started my own personal 'renaissance' and learned so much. I'll try it again soon, but it's not my priority for now.

I assume compilation errors. My usage is that I can turn distcc off for the duration of the compile when I see something like this, and not bother investigating it further, but I think the most likely cause is that a library is needed for compilation that is not present on the distcc server. Portage accepts the compile-time dependency because it is filled on the distcc client, the machine on which you've run emerge, but when that particular bit is sent off to the distcc server then that machine doesn't have the lib needed.

Well, this is the whole problem. You were right about the compilation error. And if it *may* happen, then a full emerge -e will take days (considering system has 143 pkgs and world has 499 pkgs to build). Turning it off, emerge the package, turn it on, resume emerge once in a while is really against my idea of automatism! I might make a script that checks for binpkgs after emerge returns, and if no pkg was created, then disable distcc for that one, re-enable automatically... maybe prepare a report to send to the ebuild maintainer, to let him know of the issue and all relevant details.

I would imagine that, assuming the above belief is correct, then the workaround would be to `emerge -o` the package on the other machines on your LAN (or the fastest machine, if you are using only that to emerge) before distcc'ing it. This is slightly inelegant.

Clearly less and less transparent... i'd say cloudy. Seriously at this point, i'd just drop distcc completely. But I don't think I'll have to go that far.

If you mostly have the same packages on all machines then hopefully you shouldn't encounter this scenario too often, although I'd also think that different USE flags could affect it.

I'm also somewhat suspicious of different architectures - you wouldn't try compiling for ARM or MIPS on an x86 PC, but I'm not sure how compiling on an Athlon for a Pentium 3 or 4 affects things. Finally you should make sure all machines are using the same versions of gcc and glibc (also binutils? what else?).

Same everything on every machine, i'll double check glibc and binutils too.

Thanks Stroller, I'm really starting to see how I can manage my mini IT lab now!
Simon

Reply via email to