help-guix
[Top][All Lists]
Advanced

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

Re: Avoiding rebuilds (e.g. of mariadb, the entire Rust chain, etc.)?


From: zimoun
Subject: Re: Avoiding rebuilds (e.g. of mariadb, the entire Rust chain, etc.)?
Date: Wed, 29 Dec 2021 10:12:27 +0100

Hi,

On Mon, 27 Dec 2021 at 09:23, David Lecompte via <help-guix@gnu.org> wrote:
> Le dimanche 26 décembre 2021 à 23:41 -0600, Matthew Brooks a écrit :
>> Is there any way to avoid rebuilding stuff like mariadb, the entire
>> Rust chain, etc. unless one of those packages *actually* changes? It
>> seems like every few days every single package needs to rebuild for
>> some reason, including many packages that spend unbelievably long
>> times running tests that will never actually be of use to me, so I'm
>> usually only able to update every couple of weeks since so much
>> constantly needs to be rebuilt and everything takes so long.
>> 
>
> I don't have a solution, just similar experience but with a different
> setup.
>
> I use Guix on Trisquel on my X200, I have substitues enabled, my
> installed packages are glibc-locales, fontconfig, font-adobe-source-
> han-sans, gajim, gajim-omemo, gajim-openpgp, nheko, syncthing,
> darktable,  and ungoogled-chromium.
>
> Often, "guix pull" and "guix package update" take between 1h and 2h.
> This is not due to the download time. Apparently, even with substitues,
> some CPU-heavy work is needed.

Maybe I miss something with your requirements.  To avoid such
disagreements, I do 3 things:

 1) enable ’channel-with-substitutes-available’ [1]

 2) split profiles: essentials under ~/.guix-profile (nss-certs, git,
 recutils, glibc-locales, tree, etc.); emacs under
 ~/.config/guix/profiles/emacs, python under
 ~/.config/guix/profiles/python, etc.  All the profiles managed using
 manifest.scm [2]

 3) run “guix weather -m manifest.scm” before updating


Basically, most of the time, I do not need the very last version and I
can wait that the build farm has it.  The only annoyance is security
fixes and substitutes not ready yet.  In this case, in the meantime, I
run the package with “guix shell -C” which is a weak mitigation or “guix
system vm” if I am in paranoid mode. :-)


1: <https://guix.gnu.org/manual/devel/en/guix.html#Channels-with-Substitutes>
2: 
<https://guix.gnu.org/cookbook/en/guix-cookbook.html#Guix-Profiles-in-Practice>


Cheers,
simon



reply via email to

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