LINUX.ORG.RU

тотальный segfail в Gentoo после обновления Glibc с 2.14 до 2.17

 , , ошибка сегментации


0

1

Здравствуйте.

Два года не делал -uDN world. Пару недель назад поверхностно обновил любимые программы. Потом поставил google-crhome. Он не запустился, потому что у меня Glibc 2.14. Обновил до 2.17 и система убилась. Ошибки такие же, как здесь: http://www.gossamer-threads.com/lists/gentoo/user/282393?do=post_view_threaded Что я имею сейчас? Gentoo полностью парализована. Питон не работает (я пробовал переключаться через eselect - все Питоны сломаны), соответственно emerge и revdep-rebuild не работает, не запускаются все программы (вылетают с ошибкой: «ошибка сегментации»), Иксы не грузятся. Я почитал иноязычные форумы. Можно поставить бинарный Питон. А что я буду делать дальше? Как потом разрешить тотальный segfailing? Откатиться до старого Glibc или пытаться пытаться компилировать новый, или ставить бинарный Glibc - не факт, что это все поможет, судя по форумам.

Вот в этой теме решалась такая же проблема http://forums.gentoo.org/viewtopic-t-920108.html Автор перепробовал все, но ничего не помогло. В результате он сделал вот что: «Wouldn’t be easier just save /etc/, /var/lib/portage/world and unpack fresh stage3 on cleaned partitions, then move /etc and /var/lib/portage/world to their places and make emerge -NuDave @world? »

Через месяц она написал, что «So I did as I wrote – cleaned partitions except boot, unpacked fresh stage3 and returned old /etc and /var/lib/portage/world, then did recompile kernel with modules and emerge -NuDaveb @world. And it works. I checked all my memory with memtest86+ and it didn’t find any errors on two passes.»

Стоит ли мне сделать то же самое? Есть здесь какие-нибудь нюансы?

не готов ты для генты, потому на вопрос

Стоит ли мне сделать то же самое?

отвечу «нет!»
ставь убунту.

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

Два года не обновлять rolling-release — это нужно быть знатным ССЗБ.

Тебе надо получить рабочий gcc, binutils, python, и после этого пересобрать весь мир.

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

Наверно, да... Но я уже 4 года сижу на Генте. Я привык к ней. Все эти годы в качестве wm использую Fluxbox. Убунта для меня слишком избыточна.

pelleasnn
() автор топика

как ты вообще сюда пишешь?

это не то что выстрел в ногу, ты себе голову отстрелил...

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

Читаете про параметр '--root' у emerge, далее грузитесь с LiveCD Gentoo, можно SystemRescueCD, монтируете файловую систему Gentoo, монтируете в нужной последовательности прочие разделы и собираете рабочий toolchain (binutils, gcc, glibc, make, automake). После делаете chroot и пересобираете систему под новый glibc, начиная с system.

kostik87 ★★★★★
()

Если вообще жопа и в штатной системе ничего не работает, то можешь попробовать:

Грузишься с live-системы, распаковываешь где-то свежий stage3.

Делаешь chroot в распакованный stage3. Там у тебя будет рабочий компилятор, утилиты и portage.

Монтируешь основной корень, например, в /mnt/main_root

Устанавливаешь нужные пакеты в корень, указав в переменной ROOT путь к корню. Что-то типа:

ROOT=/mnt/main_root emerge -av1 glibc gcc binutils
И так и с другими пакетами, пока не получишь минимально рабочую систему.

Правда, надо ещё подумать, как корректно сделать unmerge пакетов в ROOT, я ещё такой способ не пробовал.

Сделай перед экспериментами снапшот root'а!

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

какая разница, какое у тебя ядро?

тебе нужен рабочий gcc, python, binutils (как минимум), если ты гентушник, то ты должен знать, как это сделать, иначе по тебе плачет вендаубунта.

ещё я думаю, что у тебя профиль не переключен.

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

собираете рабочий toolchain (binutils, gcc, glibc, make, automake)

Оно корректно сделает merge? В смысле, почистит старые ненужные файлы от предыдущих версий или просто перезапишет при установке пакетов?

Учитывает ли emerge $ROOT/var/lib/portage/?

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

я не вижу в этом смысла - гента и так простая как хз что, но он даже её сломать умудрился.
стоит де ему оставаться на ней без желания хотя бы азы вкуривать? я думаю, нет.
если он не возьмётся за голову, то от вашей помощи только вред - через недельку прибежит без очередной, благополучно отстреленной по глупости, ноги.
он может, конечно, взять отсюда http://tinderbox.dev.gentoo.org/default/linux/ нужные рабочие бинарные пакеты и распаковав в корень возродить систему, но, повторюсь, я не считаю это нужным.

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

стыдно

Честно говоря, не знаю... Никогда это не делал и никогда не сталкивался с такими проблемами. Профили я пробовал переключать - тоже выдает ошибки.

pelleasnn
() автор топика

проще заново поставить гентощку

Harald ★★★★★
()

Два года не делал -uDN world

Дебиан не гента, гента не дебиан.

iVS ★★★★★
()

тотальный segfail

Гениальная формулировка

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

Rolling-release подразумевает регулярное обновление. Но это не обязывает совершать ежедневное обновление. Раз в неделю или раз в месяц — вполне ок.

А чем тебя компиляция напрягает? Как будто emerge -avuDN world сложнее, чем aptitude safe-upgrade. Посмотрел обновляемые пакеты, жмакнул «Y» и оно себе собирается в фоне, не мешая работе (если ты потратил пару минут и настроил раз и навсегда приоритеты и количество jobs для make).

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

Заменил Portage, как написано в хэндбуке, но emerge по-прежнему не работает. Может быть, надо то же самое сделать с Питоном? Заменить все содержимое Site-package?

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

(если ты потратил пару минут и настроил раз и навсегда приоритеты и количество jobs для make).

Всего-то ?

Похоже мы всё выяснили, то что описал ОП это нормальное состояние для Gentoo, просто он ещё не привык к trolling-release.

Интересно посмотреть где же в документации Gentoo упоминается неделя или месяц.

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

Rolling-release подразумевает регулярное обновление.

Интересно посмотреть где же в документации Gentoo упоминается неделя или месяц.

Считай это тестом на IQ.

Chaser_Andrey ★★★★★
()

Два года не делал -uDN world

ладно, я больше про арчеболь шутить не буду.

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

Добра тебе ^_^

Развивай эрудицию и мышление, и однажды поймешь, зачем в rolling-release регулярные обновление, и что значит слово «пример» (в контексте «где же в документации Gentoo упоминается неделя или месяц»).

А пока до этого лучше тебе не пользоваться Gentoo, не осилишь.

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

в rolling-release регулярные обновление

rolling-release - это просто вечный релиз, всего лишь, и частота обновлений никакого отношения к этой модели не имеет

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

спасибо большое)

«Монтируешь основной корень, например, в /mnt/main_root Устанавливаешь нужные пакеты в корень, указав в переменной ROOT путь к корню. Что-то типа: ROOT=/mnt/main_root emerge -av1 glibc gcc binutils И так и с другими пакетами, пока не получишь минимально рабочую систему»

Это вроде бы мне понятно. Пакеты установятся в сломанную Генту. Что означает единичка?

А вот дальше

Правда, надо ещё подумать, как корректно сделать unmerge пакетов в ROOT, я ещё такой способ не пробовал. Сделай перед экспериментами снапшот root'а!

Напишите подробнее, пожалуйста. Что значит unmerge в ROOT? Как сделать снапшот?

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

разницы между бинарными и сорс дистрами не видишь, разницы между обычными релизами и роллингом не понимаешь...отдыхай, малыш.
тебе надо голову купить, потом научиться ей пользоваться, а уж потом только спорить с кем либо.
обновить можно всё - но чем дольше сорс-роллинг не обновлялся, тем меньше шансов обновить штатными средствами без финтов ушами.
но ты слишком глуп и самоуверен чтобы осилить это.

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

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

Как видишь, в генте обновление раз в два года — не слишком оптимальная частота для её темпа развития.

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

три строки мусора и одна - по делу:

обновить можно всё - но чем дольше сорс-роллинг не обновлялся, тем меньше шансов обновить штатными средствами без финтов ушами

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

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

прекращай флудить впустую и пиши по делу

anonymous
()

Там много чего поменялось за это время. Недостаток пакетной системы генты, да и всех алгоритмов обновлений характерен такими сложностями. Для начала бы обновил дельтой за квартал-полгода...

swwwfactory ★★
()
Ответ на: спасибо большое) от pelleasnn

Что означает единичка?

То же, что и --oneshot, а именно пакет не добавится в world, а будет лишь пересобран/обновлен. Всё это описано в man emerge.

Что значит unmerge в ROOT?

Я уже уточнил в kostik87. Это значит, что при обновлении пакета старый корректно будет удален, и после него не останется мусорных файлов (кроме конфигов, /var и ещё некоторых). Так что можешь просто обновлять нужные пакеты и разруливать зависимости, если будет необходимо.

Как сделать снапшот?

Как я понимаю, LVM у тебя нет, так что лучше сделать копию настоящего рута из-под livecd/liveusb. Как делать резервную копию раздела — инфы очень дохрена в инете.

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

ты явно не понимаешь разницы между бинарным и сорс дистром

Почему обновление возможно с версии на версию во FreeBSD как бинарно (в случае релизов), так и через обновление и перекомпиляцию сорцов, а в линуксе нужно заново всё переустанавливать с CD/DVD?

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

потому что ты туповатый ламер, хоть и ковыряешься в свой бсде много лет

anonymous
()

Качаешь stage3 и аккуратно, делая бекапы, выборочно подменяешь файлы до состояния рабочего emerge. Далее, думаю, разберешься. По крайней меря я когда-то именно так делал.

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

Как я понимаю, LVM у тебя нет, так что лучше сделать копию настоящего рута из-под livecd/liveusb. Как делать резервную копию раздела — инфы очень дохрена в инете.

Я так понял, что в самом простом случае, это можно сделать с помощью tar? Архивировать не нужно /dev, /proc, /sys и некоторые другие. Беда в том, что у меня на жестком диске очень мало свободного места, архив не поместится скорее всего. Правда, есть внешний хард 1 тб, но его я не хочу использовать для бэкапа. Может, рискнуть без бэкапа? Вообще насколько велик риск, что система ещё больше поломается?)

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

Моё скромное мнение:

Потому что:

  • В Gentoo нет на каждый чих бинарных пакетов, только для самых громоздких (вроде браузеров некоторых, или офисных пакетов). Хотя portage поддерживает бинарные пакеты, за ними можно обратиться в overlay calculate.
  • В Gentoo есть система профилей, после завершения миграции на новые старые могут дропать. Соотвественно, могут быть проблемы при миграции через несколько профилей.
  • В библиотеках функции могут объявлять deprecated, и через пару релизов удалять. За это время софт должен в дереве обновиться до пофикшеных версий. В старых ебилдах скорее всего нет инфы о неподдерживаемых будущих версиях библиотек. Вследствие этого portage обновит либу и часть софта отвалится. Если же регулярно sync'ать дерево ебилдов, то там будут ебилды обновляться, как и их зависимости.
  • Также в библиотеках может появляться новый функционал, который отсуствует в старых версиях или меняться поведение существующих функций (привет, glibc!). Результаты те же — часть софта может оказаться неработоспособной. Как новые функции могут влиять на работу софта? Если софт чуть новее, динамически определяет версию утилит и либ, и начинает юзать те или иные функции. Со старой работало, с новой отваливается, потому что софт старый с неисправленными багами, которые не проявлялись на старой системе.
  • Вышеупомянутые факторы могут оказывать лавинообразный эффект, если ломается/изменяется что-то системное и широкоиспользуемое.
  • Кого особо заботит судьба версий старого софта, ебилды которого вообще удаляют из дерева?
  • Отдельные косяки или недосмотр ебилдописателей.
  • Ну и нет такого понятия, как оттестированные срезы целого дерева ебилдов с разрывом в годы.

//где я ошибся — ткните носом

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