Ustawienie równoległego budowania derywacji Guix — 1
ŹRÓDŁO Skoro mój system kompiluje paczki jednowątkowo, to powinien również być ustawiony na równoległą budowę wielu derywacji Guix.
ŹRÓDŁO
--max-jobs=n
-M n
Pozwala na maksymalnie n równoległych budów. Domyślną wartością jest 1. Ustawienie 0 znaczy, że żadne budowy nie będą wykonywane lokalnie; zamiast tego, usługa zleci zdalne budowy lub po prostu zgłosi niepowodzenie.
Licza procesów budowy powinna być równa liczbie dostępnych procesorów. Ustalenie tej liczby procesorów powinno odbywać się w trakcie uruchamiania usługi Guix, ponieważ budowa tej usługi może odbywać się na innej maszynie. Istnieje też scenariusz uruchamiania tej samej usługi na różnych maszynach, na przykład z nośnika instalacyjnego.
ŹRÓDŁO
Implementacja polega na edycji procedury guix
w module (sovereign systems)
.
Do uzyskania liczby procesorów najlepiej użyć polecenia nproc
zainstalowanego przez coreutils
.
(define (guix configuration)
(gnu:services:base:guix-configuration
(inherit configuration)
(authorized-keys sovereign:channels:default-authorized-guix-keys)
(substitute-urls sovereign:channels:default-substitute-urls)
(channels sovereign:channels:default-channels)
(discover? #t)
(extra-options (list "--cores=1"
"--gc-keep-derivations=yes"
"--gc-keep-outputs=yes"))))
Jeśli dobrze rozumiem implementację konfiguracji usługi Guix, do osiągnięcia zamierzonego celu wystarczy dodać ciąg --max-jobs=$(nproc)
.
(define (guix configuration)
(gnu:services:base:guix-configuration
(inherit configuration)
(authorized-keys sovereign:channels:default-authorized-guix-keys)
(substitute-urls sovereign:channels:default-substitute-urls)
(channels sovereign:channels:default-channels)
(discover? #t)
(extra-options (list "--cores=1"
"--gc-keep-derivations=yes"
"--gc-keep-outputs=yes"
"--max-jobs=$(nproc)"))))
DO ZROBIENIA Niestety nie mam racji i tracę zdolność interakcji z usługą Guix, ponieważ obecny zestaw opcji całkowicie blokuje jej rozruch. Muszę ponownie uruchomić system z poprzedniej generacji i wycofać tę zmianę.