On Wednesday, 28 March 2018 16:14:49 BST [email protected] wrote:
> On 03/28/2018 01:32 AM, Peter Humphrey wrote:
[...]
> > I have a similar system, but Atom N270. I wouldn't want to compile much on
> > it, and certainly not GCC. I NFS-export its $PORTDIR to this much more
> > powerful box, do the emerging here and then just install packages on the
> > Atom. Still not exactly fast, but incomparably better.
>
> I should have done it as well, it is a bit too late I have only
> 45-packages left to compile out of 710.
> Is it better use NFS or distcc?
> Do you have a good link how to do it with: "NFS-export $PORTDIR"
I think NFS may be simpler to operate, but that may be because I'm more
familiar with it. You just need something like this in the Atom's /etc/
exports: /usr/portage
192.168.1.5(rw,no_subtree_check,anonuid=250,anongid=250,no_wdelay)
That IP address is the big beast host, and of course 250 is the portage user.
I don't know of a guide on the web, but basically, the method is to construct
a 32-bit chroot on your host system and install a mirror of your Atom system
in it. Copy your Atom's /etc/portage directory into the chroot and adjust
things like --jobs to suit the chroot host, but make sure all the USE flags
are the same as on the Atom. It'll take an hour or two to build the system,
but you only have to do it once, and of course it'll be done at the speed of
your host machine. You don't need to keep running etc-update or equivalent;
just build the binaries.
My chroot is /mnt/atom and this script starts it ready to chroot into:
$ cat /etc/init.d/atom
#!/sbin/openrc-run
depend() {
need localmount
need bootmisc
}
start() {
ebegin "Mounting 32-bit chroot dirs under /mnt/atom"
mount -t proc /proc /mnt/atom/proc
mount --rbind /dev /mnt/atom/dev
mount --rbind /sys /mnt/atom/sys
mount -t tmpfs tmpfs -o noatime,nosuid,nodev,noexec,mode=1777 /mnt/atom/tmp
mount -t tmpfs tmpfs -o noatime,uid=portage,gid=portage,mode=0775
/mnt/atom/var/tmp/portage
mount -t nfs -o vers=3 192.168.1.2:/usr/portage /mnt/atom/usr/portage
rm -f /mnt/atom/etc/mtab
cp /etc/mtab.atom /mnt/atom/etc/mtab
eend $? "Error mounting 32-bit chroot directories"
}
stop() {
ebegin "Unmounting 32-bit /mnt/atom chroot dirs"
rm /mnt/atom/etc/mtab
ln -s /proc/self/mounts /mnt/atom/etc/mtab
umount -R /mnt/atom
mount /mnt/atom
}
You may prefer not to bother with tmpfs, but I have 32GB RAM on my host, so
it's efficient here. That IP address is the Atom machine.
No doubt someone more skilled than me at bash scripting could improve on my
script; suggestions welcome.
After updating the chroot you can emerge -k or -K on your Atom machine, after
syncing which will now be the most time-consuming part of the operation.
Let me know if anything isn't clear.
Thanks to Neil Bothwick, who showed me how to do this several years ago.
--
Regards
Peter