Проблема с модулями perl

Доброго времени суток, дорогие друзья!
Прошу помощи с обновлением мира. В подробности вдаваться не буду, но многие, наверняка, сталкивались с проблемами при обновлении perl, будь он не ладен. После долгих плясок вокруг него, он будет стерт и затем кое-что было подтянуто по зависимостям. На данный момент проблема в том, что у меня не собирается модуль dev-perl/libintl-perl.

Падает вот с такими словами: /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.4/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lintl
(тут вот полный лог сборки: http://pastebin.com/bg7vEz2c)

Вот тут вот emerge --info: http://pastebin.com/WYNegWy0

Из самих libintl у меня установлено только virtual/libintl, а dev-libs/libintl не устанавливается из-за конфликтов с glibc...

Помогите разобраться, пожалуйста.

Перл, как и питон, либц и

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

Вот я уже тут рассказывал, как надо делать - поищите...

SysA написал(а): Перл, как и

SysA написал(а):
Перл, как и питон, либц и гцц, очень специфические штучки для Генту и их надо обновлять отдельно и очень осторожно! Особенно если это не простой минорный баг-фикс.

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

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

:wq
--
Live free or die

.

Последний раз, когда я сталкивался с… сюрпризами в процессе обновления перла был первым эпизодом мажорного обновления и было это почти десять лет тому назад.

Дайте угадаю: Ваши неприятности связаны с тем, что Вы зацепили хвост потребности в perl-cleaner'е?

ЗЫ: Так система была недообновлена?

:wq
--
Live free or die

Изначально у меня был

Изначально у меня был конфликт версий перла. Я как раз-таки запустила perl-cleaner, он что-то там пересобрал и обновил, но обновить мир это не помогло. После этого я уже грохнула его полностью и стала тянуть по зависимостям. При этом установила флаг -perl, чтобы его прилетало меньше.

/

perl-cleaner -a?

:wq
--
Live free or die

Не помогает

Не помогает

.

swetlana написал(а):
Не помогает

Понятно.
Вопрос был про другой этап.

Про сейчас: вообще portage работоспособен?
Например emerge -1 app-text/dos2unix отрабатывает без ошибок?

:wq
--
Live free or die

Да, portage прекрасно

Да, portage прекрасно работает.

/

swetlana написал(а):
Да, portage прекрасно работает.

И portage ни о чём не предупреждает?

Не далее как сего дня при обновлении внезапно встретил ошибку линковки.
В достаточной степени подобную:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.4/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lintl
collect2: error: ld returned 1 exit status

Прочитал сообщения portage, по предложенному запустил:

emerge @preserved-rebuild

И нет ошибки.

:wq
--
Live free or die

swetlana

swetlana написал(а):
...что-то там пересобрал и обновил...

Это круто! :)

Предлагаю Вам более осмысленную (и теоретически правильную) схему обновлений:

0. eix-sync - синхронизация. (Предполагается, что все в /etc/portage/* настроено, но можно это сделать и после синхронизации.

1. emerge -uN --nodeps portage - если обновился/изменился сам портаж.
2. Обновление тулчейна:
2.1. emerge -1 --nodeps linux-headers glibc - если обновился/изменился linux-headers или glibc. Кстати, желательно иметь версию linux-headers такую же как и у ядра - подробности в литературе и/или в Интернете ;).
2.2. emerge -uN --nodeps binutils - если обновился/изменился binutils
2.3.а. eselect binutils list - проверить настройку и
2.3.б. eselect binutils set [LastVersion] - выставить самый свежий, если он не тот
2.3.в. . /etc/profile - обновить среду, если были какие-либо изменения с binutils. Обращаю внимание, что точка в начале - это часть команды! ;)
2.4.а. emerge -uN --nodeps gcc - если обновился/изменился gcc
2.4.б. gcc-config -l - проверить текущую версию и переключить на нужную при необходимости
2.4.б. . /etc/profile - обновить среду, если были какие-либо изменения с gcc. Обращаю внимание, что точка в начале - это опять часть команды! ;)
2.5. emerge -1 --nodeps glibc binutils gcc если обновился/изменился хотя бы один из пакетов тулчейна.
3. если надо изменить/обновить ядро, то это надо делать только после обновления тулчейна (п.2), а также рекомендуется перекомпилировать ядро, если обновился тулчейн.
4. Пляски вокруг PERL'а:
4.1. emerge -1 --nodeps perl perl-cleaner - если обновился/изменился PERL, т.е. именно тут Вы и сделали свою самую главную ошибку! :)
4.2. perl-cleaner --reallyall - всегда(!) надо подчищать за PERL'ом, тут могут быть блокирующие PERL'овые пакеты - можете их смело удалять - они потом подтянутся по зависимостям, если надо.
5. Теперь пляски со змеей:
5.1.а. emerge -1 python - если только давно не обновлялись и все запущено, обычно постаточно
5.1.б. emerge -uN $(qlist -IC python) - обновить змеиное царство
5.2. python-updater - и подчистить за ним
6. emerge -uN $(qlist -IC portage) - Обновить игрушки портажа и можно продолжать почти в классической манере:
7. emerge -uDN --with-bdeps=y --keep-going=y @system - добиться завершения без ошибок
8. emerge -uDN --with-bdeps=y --keep-going=y @world - аналогично
9. emerge --depclean -a - подчистить за собой, но тут надо быть осторожной и внимательно прочитать весь список перед тем, как подтвердить удаление. Иногда система хочет удалить что-то важное, поэтому можно прервать процесс и перекомпилировать нужный пакет. Если совсем не знаете, что делать - лучше (безопаснее) этот шаг пропустить.
10. revdep-rebuild -i - продолжить чистку. Этот шаг вполне безопасен и желательно добиться его нормального завершения без ошибок.
11. eclean-dist - финальная чистка. Иногда тут выдается полезная информация об устаревших пакетах и/или доп.зависимостях. Тут уж по обстоятельствам - можно удалять или перекомпилировать проблемные пакеты. Вполне безопасно (с точки зрения портажа, но не с точки зрения информационной безопасности :) ) опять ничего не делать, если не понимаешь...

P.S. Разумеется, все команды выше можно предварительно прогнать с доп.параметрами -p -v на предмет посмотреть, что будет... ;)

Удачи!

Предлагаю Вам более

Предлагаю Вам более осмысленную (и теоретически правильную) схему обновлений:

Обратите внимание, что данная фраза была адресована к работе утилиты perl-cleaner, а не к моему подходу к обновлениям системы.

Благодарю за рекомендации, но проблемы у меня возникли только с перлом.

4. Пляски вокруг PERL'а:
4.1. emerge -1 --nodeps perl perl-cleaner - если обновился/изменился PERL, т.е. именно тут Вы и сделали свою самую главную ошибку! :)
4.2. perl-cleaner --reallyall - всегда(!) надо подчищать за PERL'ом, тут могут быть блокирующие PERL'овые пакеты - можете их смело удалять - они потом подтянутся по зависимостям, если надо.

В моем случае, мне пришлось полностью удалить пакеты перла и устанавливать их по зависимостям. Сейчас же мне указанные рекомендации, к сожалению, уже не помогают.

Вот для того, чтобы такой

Вот для того, чтобы такой ситуации не возникало и нужна вышеописанная процедура! :D

Предполагаю, что Вы не уделили серъезного внимания недавним обновлениям глибС и гцц, и совершенно напрасно!

Также надо всегда читать eselect news read (там и недавние изменения с питоном были, кстати), но Вы, видимо, выше этого...

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

P.S. Почему-то у меня на 500+ серверах проблем с обновлениями не возникло... :) Но это так, к слову... для иллюстрации...

Благодарю за беспокойство, но

Благодарю за беспокойство, но выше предположение не верно. Так что, пожалуй, я останусь на этом дистрибутиве.

Да ладно, не вопрос!.. :)

Да ладно, не вопрос! :)

Удачи тыкаться дальше...

Обратите внимание на азы логики:

swetlana написал(а):
...
Обратите внимание, что данная фраза была адресована к работе утилиты perl-cleaner, а не к моему подходу к обновлениям системы.
...
Благодарю за рекомендации, но проблемы у меня возникли только с перлом.
...
В моем случае, мне пришлось полностью удалить пакеты перла и устанавливать их по зависимостям. Сейчас же мне указанные рекомендации, к сожалению, уже не помогают.

Обратите внимание на азы логики: после чего-то не означает вследствие чего-то...

Просто многое уже поломано. Если портаж и тулчейн еще жив - все-таки попробуйте пройти мою процедуру - по-крайней мере Вы ничего не потеряете, а шанс восстановиться еще есть. Только там, по-обстоятельствам, возможно нужно будет по-чаще использовать '-1' вместо '-u'. Мне уже не раз удавалось восстанавливать Генту-системы и в худшем состоянии.

И таки-да - Генту очень не любит скрипт-кидди!.. :) и рано или поздно все равно где-то что-то обломится.

Как тут подозревают выше,

Как тут подозревают выше, недообновленная ситема? Вероятно, нужно разруливать конфликты. perl-ceaner?

perl-cleaner я пробовала

perl-cleaner я пробовала использовать в первую очередь. он мне ничем не помог.

Возможно perl-cleaner и

Возможно perl-cleaner и повредил. Как уже упоминал кто-то из предыдущих ораторов, я также уже давно не сталкивался с проблемами при обновлении perl. Да, где-то месяц назад emerge выругался на то, что зависимости тянут две версии perl, но проверив что именно тянет вторую версию, я обнаружил какой-то пакет из XOrg, удалил этот пакет и запустил emerge. На этот раз всё прошло без каких бы то ни было проблем, и даже новая версия того удалённого пакета встала на место. Иногда возникают проблемы с перловыми модулями установленными как bdeps, но и с ними долго возится не приходится.

В общем, перловые проблемы не всегда связаны с самим перлом.

Чем больше юзерфрендли, тем сложнее юзать.

в чем проблема конфликта с

в чем проблема конфликта с glibc? решите его.

А что, есть реальный пример

А что, есть реальный пример конфликта перла или его модуля с glibc? Тогда надо его сюда, подивиться и повосхищаться.

Чем больше юзерфрендли, тем сложнее юзать.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".