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 и т.д.