LINUX.ORG.RU

проблема gcc 5 и readline

 


1

2

Неделю назад мою дурную(дальше будет понятно почему) голову посетила идея перевести систему на gcc5, а заодно пересобрать весь мир, чего не делал ни разу с 2012го года.

Во время пересборки всплыла проблема с readline, 6я версия которого отказывалась собираться с помощью gcc5. В связи с этим я размаскировал readline7_0_rc1, после чего пересобрал все от него зависящее и поставил пересобирать мир. Когда осталось собрать 400 пакетов, sh перестал работать с криками что ему нужно readline.so.6. Перезагрузка привела к тому что я теперь не могу даже залогиниться. Вот пишу из горящего танкадуалбутной венды. Подскажите что делать? Любимую генточку терять и переустанавливать не хочу.

★★★★★

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

это проблема не gcc и не readline, это проблема ncurses, нужно пересобрать обе версии и всё пройдет.

kep
()

С livecd зайти в chroot и там поставить все что нужно?

На крайний случай собрать где-то нужную либу и просто скопировать ее, авось поможет.

PS: зачем вообще слазить со стабильной ветки?

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

дебилоид портаж без спроса (и предупреждения по -vp) сносит одну из ncurses и началось, не работает даже очистить терминал/консоль по Ctrl+L.

kep
()

а пересобрать ncurses не сможешь, потому что поломан gawk :))

лично мне помогло (прочитал на гентуфоруме) скопировать из скачанного stage3 бинарник и пересобрать обе версии ncurses, попробуй, с вероятностью 99% тебя это спасет:

cp usr/bin/gawk /usr/bin/

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

дебилоид портаж без спроса (и предупреждения по -vp) сносит одну из ncurses и началось, не работает даже очистить терминал/консоль по Ctrl+L.

вот похоже что-то такое и приключилось. я пересобирал мир emerge -bke world --keep-going. Когда осталось 400 пакетов из 1400 в мире, то sh приказал должно жить с криками о том что не может найти readline.so.6

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

лично мне помогло (прочитал на гентуфоруме) скопировать из скачанного stage3 бинарник и пересобрать обе версии ncurses, попробуй, с вероятностью 99% тебя это спасет

сейчас попробую

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

PS: зачем вообще слазить со стабильной ветки?

Захотелось обновить систему. Ну и приключений давно не было. Вот нашел приключений больше чем хотел.

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

Вот нашел приключений больше чем хотел.

Дело не в gcc и приключениях, у меня полностью (изначально со stage3) собрана система и ядро 4.5.0 с помощью gcc-5.3.0, всё прекрасно работает, что и ты сделай обязательно.

Это проблема сноса портажом без разрешения пакетов, всего-то делов, я не смотрел открыли багу по этому поводу или нет, я думал это у меня только, а оказывается нет.

kep
()

Отпишись, плиз, по результатам.

Тоже думаю на gcc5 перейти. Но в прошлый раз после --depclean, gcc перехотел сам себя собирать (похоже на проблему именно линковки); видимо что-то в зависимостях gcc5 упущено. Да-да, подтвержаю: gcc5 у меня установлен, но повторно его установить не представляется воможным.

Думаю еще как-нить попробовать.

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

Дело не в gcc и приключениях

Скопировал в /lib64 из stage3 libreadline.so.6 и всё заработало. До этого копировал в /usr/lib64. Так что всё же bash почему-то не пересобрался с новым readline.

ldd на bash и правда показывет libreadline.so.6. Пересобрал bash, стало нормально. revdep-rebuild почему-то не нашел.

Всем спасибо.

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

Тоже думаю на gcc5 перейти. Но в прошлый раз после --depclean, gcc перехотел сам себя собирать (похоже на проблему именно линковки); видимо что-то в зависимостях gcc5 упущено. Да-да, подтвержаю: gcc5 у меня установлен, но повторно его установить не представляется воможным.

gcc 5.3 сам себя отлично пересобирает. Там во всяких других проблемы быват. В том же readline 6.

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

Чтобы не создавать новую тему. Может знаешь как пересобрать только те пакеты, что не пересобирались в ближайшие сутки? А то -bke мне все 1400 пакетов даёт при каждом запуске, хотя я их уже обновил.

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

Может знаешь как пересобрать только те пакеты, что не пересобирались в ближайшие сутки?

А можно узнать зачем именно так?

А то -bke мне все 1400 пакетов даёт при каждом запуске, хотя я их уже обновил.

Ну так -e и говорит от том, что пересобирать нужно пакет и всё, что прямо или косенно с ним связано. Почти весь мир так за собой потянет.

Вообще -bke странная формула. У тебя несколько машин?

Обычный апдейт: -avuND

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

Может знаешь как пересобрать только те пакеты, что не пересобирались в ближайшие сутки?

Кстати, можешь сделать с помощью скрипта опираясь на access time ebuild'ов.

Я именно так не делал, но периодически проганяю --fetch-only на мир, а потом удаляю из distfiles всё, где access time раньше текущей даты.

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

А можно узнать зачем именно так?

Пересобирал же мир с новым gcc, а пересобралась половина, теперь нужно дособрать те пакеты что остались.

Вообще -bke странная формула.

В гентовики советуют делать именно так. -bk конечно не пересобирает то что в прошлой сборке собиралось, но все равно тратит время на установку.

Loki13 ★★★★★
() автор топика

Проблема emerge. В LFS'е я руками на живой системе обновился до readline-7.0-rc1 и bash 4.4.0(1)-rc1 без проблем. А всё потому, что для обычной сборки руками столько зависимостей как для работы emerge нужно далеко не всегда. Больше приключений было с обновлением до glibc 2.23. Там нужно было удалить файл /usr/lib/locale/locale-archive и сгенерировать локаль заново. Без этого начались кракозябры.

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

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

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