help-guix
[Top][All Lists]
Advanced

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

Re: Offloading builds asynchronously for use by low-powered machines (or


From: Efraim Flashner
Subject: Re: Offloading builds asynchronously for use by low-powered machines (or: can you get a home config derivation without building its packages?)
Date: Thu, 26 Dec 2024 16:33:17 +0200

On Tue, Dec 24, 2024 at 02:38:59PM -0500, Jonathan Frederickson wrote:
> Hi - I've been using Guix on a couple slower aarch64 machines for a while. 
> One of the recurring pain points with doing so has been that very often, when 
> I go to build my home environment after a fresh 'guix pull', most of the 
> packages in it do not yet have substitutes built.
> 
> I do also have a couple more powerful aarch64 machines available, so build 
> offloading is an option. However, one of the machines I use most frequently 
> is a small laptop (the MNT Pocket Reform), which is meant to be very 
> portable. Even on my more powerful machines, building everything in my home 
> environment when no (or very few) substitutes are available may take multiple 
> hours or sometimes days, and build offloading being synchronous means the 
> machine needs to maintain a constant connection to the build servers during a 
> build. This is very inconvenient for a portable machine!
> 
> What I would *like* to be able to do is to trigger a build on another more 
> powerful machine asynchronously, and then later come back and build my home 
> environment using the substitutes from that build. The Guix Build Coordinator 
> seems like it may serve my needs fairly well based on the description in this 
> blog post: 
> https://guix.gnu.org/en/blog/2021/building-derivations-how-complicated-can-it-be/
> 
> ...but in contrast to building a specific package with 'guix build', it 
> doesn't look like I'm able to get the derivation path for a home 
> configuration without first building the packages! Running 'guix build -d -f 
> /path/to/home/config' attempts to build the packages in my home configuration 
> if they're not yet built, rather than returning a derivation that I could 
> submit to the build coordinator.
> 
> I admit that I don't fully grok derivations yet; is this inevitable for 
> derivations, or is it just a limitation of 'guix build' and is there actually 
> a way to get at the home configuration derivation prior to building its 
> packages?
> 
> Thanks,
> - jfred

I have a pinebook pro and I also have a couple of other aarch64
machines, and here's what I do:

`guix pull` on my pinebook pro, `guix home build --no-grafts ... -d` and
`guix system build --no-grafts -d` to get the derivations

Then I'll do `guix copy --to=my-x86_64-machine /gnu/store/...-drv` of
the two derivations

Then from there I'll build them since I already have offloading setup.

I'll either get substitutes from my main machine, or from there I'll do
`guix copy --to=pinebookpro $(guix build /gnu/store/...-drv)`, and
that'll automatically copy the packages to my pinebook pro once it's
finished building everything.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]