LINUX.ORG.RU

Gentoo, ошибка при сборке трудоёмкого пакета, можно ли продолжить с момента сбоя?

 ,


0

1

Например qtwebengine у меня собирается 16 часов, 10 часов он отсобирался, но какая то печаль привела к зависанию. Можно ли как заставить portage собирать из директории /var/tmp/portage с момента остановки? Или второй вариант, я дособеру руками make -j6, но как потом объяснить системе, что пакет собран и установлен?

★★★★★
Ответ на: комментарий от Dumppper001

Именно в этом случае он и полезен. Когда ты многократно отлаживаешь и перезапускаешь валящуюся сборку пакета.

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

Ну так на фига это? По сто раз перезапускать... Двух раз по мне вот так достаточно... Сфейлилось -> подшаманил > исправил -> запустил -> все

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

И так не пользуюсь (если и пользуюсь все таки то очень редко)

Но зачем вот это развозить

Когда ты многократно отлаживаешь и перезапускаешь валящуюся сборку пакета.

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

Двух раз по мне вот так достаточно… Сфейлилось -> подшаманил > исправил -> запустил -> все

Мне недавно пришлось 4 раза подряд GCC пересобирать. Это была боль, учитывая что на попытку моему ноуту надо около 12 часов. Правда мне бы не помог ccache даже если бы я его использовал. Он не работает при сборке GCC.

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

Ааааа… Типа когда какую нибудь программу делаешь, совершенствуешь ее и постоянно пересобираешь… Ну это как пример

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

Сфейлилось -> подшаманил > исправил -> запустил -> все

И даже в этом сценарии ccache сэкономит время второй пересборки. Просто некоторые свои ebuild пишут и отлаживают, а некоторые нет.

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

А мне пришлось собирать спидерманку целых 8 или 10 раз, а проблема была оказывается и в make

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

Ага. Там же несколько стадий, он там сам собой сам себя собирает несколько раз. И ccache там вполне логично отфильтрован в ebuild, дабы в ноги не стрелять и сумятицу на вносить.

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

Там же несколько стадий, он там сам собой сам себя собирает несколько раз.

Офигеть… А нахрена? А я то думаю почему gcc собирается 4 с лишним часа

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

Офигеть… А нахрена? А я то думаю почему gcc собирается 4 с лишним часа

Я могу наврать сейчас, но это связано с тонкостями бутстрапа, типа как барон Мюнкгаузен себя за волосы из болота вытаскивал. Сначала системный gcc собирает бутстрапный новый gcc, в минимальной версии, потом это свежесобранный gcc собирает сам себя ещё раз самим собой уже в полной версии, а затем уже полный ещё раз пересобирает сам себя и сравнивает результаты сборок, они должны быть идентичны.

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

Нет. В дереве portage. Не знаю, где оно сейчас по умолчанию лежит в новых системах.

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

Офигеть… Ну конечно это здорово что все у них там отлажено, но все как то сложно

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

GCC пересобирать

можно собирать gcc без бутстрапа, это 2-3 раза быстрее

пишу по памяти, так как я предатель:

$ cat /etc/portage/env/gcc-disable-bootstrap.conf
EXTRA_ECONF=--disable-bootstrap
GCC_MAKE_TARGET=all

$ cat /etc/portage/package.env
...
sys-devel/gcc gcc-disable-bootstrap.conf
...
anonymous
()
Ответ на: комментарий от Jameson

Сначала системный gcc собирает бутстрапный новый gcc

Я был уверен что бутстрапная версия GCC идёт в пакете вместе с исходниками. Чтобы можно было собрать его даже если в системе нет компилятора.

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

Есть такое, да. Поэтому он у меня глобально то включен, то выключен... А вообще конечно его правильно через FEATURES=«ccache» перед командой emerge или ebuild ... merge явно включать когда сборку конкретного пакета отлаживаешь.

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

И что тогда будет происходить? Он будет просто собираться системным компилятором? Есть какие то подводные если так делать?

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

ЕМНИП нет, не идёт, в системе уже должен быть какой либо компилятор способный собрать его бутстрап.

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

Круто, продолжило с точки сбоя! Благодарю.

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

Да, он будет собираться значительно быстрее системным компилятором сразу, без бутстрапа и проверок. В большинстве случаев это ОК, но «потеря гарантии». Лично я никуда не тороплюсь, компилятор это ключевая вещь, и я хочу быть уверен в том что он точно работоспособен и не косячит.

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

У тебя давно эта система значит. Ну или ты сам положил его туда. Достаточно давно дерево мигрировало из /usr/portage/ в /var/db/repos/gentoo/ по умолчанию.

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

Я хз насчет этого,.. Вот у меня например реп лежит в /var/db/repos/репозиторий/так называемая категория/*.ebuild

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

Будет собирать сразу окончательный вариант (stage3), без предварительных stage1, stage2. Уже установленный gcc считается как stage2 и сразу собирается stage3.

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

Если включено PGO, то в 4 стадии

Разве? Вроде собирается статистика при сборке stage2 и по собранной статистике собирается stage3 c pgo.

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

Разве? Вроде собирается статистика при сборке stage2 и по собранной статистике собирается stage3 c pgo.

там stage1, profile, train и feedback

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

Сфейлилось -> подшаманил > исправил

Иногда в одну итерацию не укладываешься. Мой рекорд когда я чинил как-то boost был раз 15 наверное, пока я выстрадал валидный патч.

Но да, рядовому пользователю глобально включенный ccache обычно бесполезен от слова совсем

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

Если у тебя старая система(установлена давно, а не в смысле не обновлялась тыщу лет) - мигрировать предлагается вручную, по умолчанию при сборке portage детектит старые пути и врубает режим совместимости, чтоб ничего не сломать.

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

У вас устаревшая система. Портаж нынче переехал в /var

Сам был удивлен.

utanho ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.