Hi,
On 20/05/2023 12:05, Zelphir Kaltstahl wrote:
Hello Guix users!
Recently I had an issue when I did a `guix pull`, so I tried `guix pull
--no-substitutes`. My understanding is, that substitutes are platform
specific pre-built binaries, which one can download from the guix
servers, instead of building them oneself. (Please correct me, if this
is wrong.) So I thought, that most time would be spent compiling things
and hopefully compiling many things in parallel as much as possible, to
speed up the whole process. However, guix seemed stuck at some "build
phase". I waited for like 2h or so, but it was still at that build
phase. Is this normal? How long does it usually take to run with no
substitutes? I guess it also depends on what one has in ones profile, so
here is my output of `guix pacakge -i`:
It will take a lot longer to download and build, rather than use
substitutions.
Each package is built one after another, Guix doesn't build them in
parallel AFAIK. If one of the packages in a transaction doesn't build
then the transaction will fail unless you provide the `--keep-going` switch.
Sounds like one of the packages failed to build - so none of the
packages were updated.
It should tell you right in the output which one is failing and give you
a log.
How long it takes a package to compile depends on the size of the
package, the capabilities of your system and how much of your system
you've allowed Guix to use. I find the options for guix build --max-jobs
very useful.
It's pretty variable how long things take: at one extreme Chromium takes
over 10 hours to compile on my poor laptop!
When a build fails the easiest way to see what is happening is to view
the log and go into the environment to see what's happening:
$ guix build --no-substitutes --keep-failed <package>
The section on 'Debugging Build Failures' is particularly useful [0]
I generally do what you suggest and build the smallest subset of
packages myself if there is no other choice (no substitute) - otherwise
I'm just wasting resources - though building Chromium once was fun!
Best of luck,
Futurile
[0] https://guix.gnu.org/en/manual/en/guix.html#Debugging-Build-Failures