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 <[email protected]> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
signature.asc
Description: PGP signature
