Arch Linux AUR package build

Ускоряем сборку пакетов из AUR в Arch Linux и Manjaro

Каждый пользователь дистрибутива Arch Linux (как и Manjaro) замечал, что по умолчанию пакеты из AUR собираются в один поток, тем самым не задействуя весь потенциал процессора. Чтобы задействовать при сборке AUR пакетов все ядра ЦП, распараллелив процесс сборки, выполним следующие несколько нехитрых шагов.

Редактируем файл /etc/makepkg.conf

sudo nano /etc/makepkg.conf

В секции “ARCHITECTURE, COMPILE FLAGS” находим строку с параметром “MAKEFLAGS” и приводим её к следующему виду. Конструкция “-j$(nproc)” автоматически установит количество потоков компиляции в соответствии с количеством ядер центрального процессора.

MAKEFLAGS="-j$(nproc)"

В секции “COMPRESSION DEFAULTS” находим параметр “COMPRESSXZ“. Он отвечает за количество потоков, которыми будет сжиматься файл пакета (этап “Сжатие пакета…“). Меняем его на это значение:

COMPRESSXZ=(xz -c -z - --threads=N)

где “N” – количество ядер процессора в системе, например –threads=4

Сохраняем изменения в файле и закрываем его (CTRL+ O -> ENTER, CTRL+X). Теперь пакеты из AUR будут собираться в многопоточном режиме, полностью загружая процессор во время сборки.

Рекомендую перед первой сборкой в многопоточном режиме проверить температуру ЦП в условиях полной загрузки!

Так как теперь при сборке makepkg будет загружать процессор на 100%, лучше заранее проверить максимальную температуру процессора под полной нагрузкой. В общем случае она не должна превышать 70℃. Сделать это можно, например, с помощью консольной утилиты stress.

После внесения этих изменений скорость сборки пакетов из AUR заметно выросла, так же как и нагрев CPU в процессе. Данный способ ускоряет компиляцию пакетов вне зависимости от используемого AUR helper’a, будь то yay, pacaur, yaourt и т.д.