LINUX.ORG.RU

Сборка пакета съедает всю RAM

 ,


0

3

Всем доброго дня! В вопросе сборки пакетов из исходников пока новичок. Два дня пытаюсь собрать на арче LibreWolf из AUR. проблема в том, что через час сборки вся оперативка (16Гб) «съедается» под ноль и терминал вылетает с сообщением, что ядро линукс завершило процесс из-за нехватки памяти. Попытки найти информацию в сети пока безрезультатны.


Это нормально, браузеры требуют очень много оперативы для сборки, особенно с lto. Чем больше потоков, тем больше будет есть компилятор, тебе нужно уменьшить их количество.

Merionet
()

Выключи сборку с lto (и pgo). Rust+lto - это похуже чем майнинг крипты. Как? Не знаю, у меня - gentoo.

anonymous
()
Ответ на: комментарий от Merionet

Ну я примерно в этом направлении двигался. В процессе сборки htop показывал все четыре потока у проца на 100%. Попробовал добавить в сам PKGBUILD в секцию build export MOZ_PARALLEL_BUILD=2. Но при сборке после этого наблюдал все-равно все четыре потока загруженных. Очевидно, чего-то не понимаю

ext2
() автор топика
Ответ на: комментарий от Merionet

Чем больше потоков, тем больше будет есть компилятор, тебе нужно уменьшить их количество.

При линковке с lto не поможет, линковщик - один (процесс), и он весь статический блоб от rust пытается запихать в память.

anonymous
()
Ответ на: комментарий от ext2

Глянь в пкгбилде # options for ci / weaker build systems Если фейлит на этапе линковки, обычно это в конце сборки происходит, выключи лто. Интересно, какие-такие патчи тебе понадобились, что ты рискнул собрать целый браузер?

Merionet
()
Ответ на: комментарий от MoldAndLimeHoney

Рассматривается. Это был практический интерес. Но видимо пока моих компетенций не хватает

ext2
() автор топика
Ответ на: комментарий от Merionet

Thin не очень много жрёт, обычно его юзают.

firefox/librewolf по умолчаню собирается c -flto=thin, и при линковке выжирает 16+ гигов (проверял, когда собирал 130+/-2 версит). Это один процесс, вне зависимости от количества потоков.

anonymous
()

Это норма, подруби zram, если по дурости свап не настроил.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от vbr

Думаю, это ориентировано если не на -j1, то на какое-то число, которое они посчитали «стандартным» для юзеров, типа -j4, скорее всего. А ТС, видимо, с -j16 запускал, вот и не хватило.

CrX ★★★★★
()

Добавь свап. Можно еще 16 гигов.

usermod
()

Два дня пытаюсь собрать на арче LibreWolf из AUR

Как выше уже отметили, AUR это не только сорцы, но и бинарные пакеты. В данном случае librewolf-bin.
Тем более, ты «пока новичок».

Так же, есть несколько неофициальных реп (например, Chaotic-aur), которые собирают пакеты из исходников и выкладывают уже бинарники.

krasnh ★★★★★
()
Последнее исправление: krasnh (всего исправлений: 3)

Очень странно, по идее оно должно было пойти свопаться, если в память не влезло.

ya-betmen ★★★★★
()
Ответ на: комментарий от nicholas_ru

Я о такой не слышал потому что

O_o

Ну в общем-то это форк Firefox, с небольшими изменениями с целью сделать его несколько более «свободным» по умолчанию. Вроде самый известный форк лисицы…

Собирается так же, как и собственно Firefox.

Вообще мало какой софт требует таких ресурсов и времени для сборки. Помимо браузеров это, наверное, только LibreOffice из того, что не какое-то совсем нишевое. Ну может ещё DE какие, про них не знаю.

Тебе правильно говорят. Подкючи swap.Сначала создай, а потом подключи командой swapon.

А это уже не мне ;)

А так, свап — это, конечно, вариант, но для начала всё же хотелось бы подробностей о том, как собирается. По идее, сборка где-то 10–12 ГБ в пике хавает, так что должно хватать. Но возможно, всё дело в каком-нибудь -j16. Если уменьшить количество jobs, потребление памяти тоже должно значительно уменьшиться.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от vbr

16 должно хватать, но 4 прям точно уже мало. Или инструкции устаревшие, или это с -j1 (ну может с -j4) и без pgo/lto.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от nicholas_ru

Можно и без zram, с zswap. У меня 4 гига, просто потому что могу. На деле обычно около 1 используется.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Вроде самый известный форк лисицы…

А не PaleMoon? :)

dataman ★★★★★
()

Вот поэтому я и ушёл на 32 гига. А чтобы оперативка не занималась, поищи makepkg.conf в /etc/ и посмотри, чтобы в сборочных флагах не стоял путь сборки в /tmp/ или /tmp/makepkg

Tyse_EX
()
Ответ на: комментарий от Tyse_EX

Вот поэтому я и ушёл на 32 гига

А я подумываю о 64ГБ уже…

З.Ы.: что-то пошло не так в этом мире…

AlexVR ★★★★★
()

Можно попробовать поменять линкер на gold и т.п. и ещё там есть доп. флаги чтобы отключить маппинг в RAM. Будет медленнее собирать, но меньше жрать RAM. Хотя, может и линкер крешнуиься, гугли в общем.

anonymous
()
Ответ на: комментарий от anonymous

Ну так тем более, нахрен тогда его собирать из исходников.

anonymous
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.