[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
signature.asc
Description: PGP signature