postifx with USE=ssl broken after ssl upgrade
Есть проблема. Стоял себе постфикс, жил себе потихоньку, как и другие сервисы, завязанные на ssl. Чево-то я установил, nfs-utils кажись, которые потянули за собой новую версию openssl. Уж не помню, какая версия стояла, но постфикс очень хотел либу libssl.so.0.9.7 (пишу по памяти). Таковой либы не стало, вновь запускаемые демоны рушились и все перестало работать. С этой новостью меня и разбудили недовольные бухгалтера.
Логично было плюнуть на это и обновить постфикс. Но вот ХРЕН! из трех доступных версия НИ ОДНА не стала. Емердж скачал, распаковал, откомпилил (в системе уже новая либссл стоит, ессна), и когда собирается делать postinstall действия, вызывает команду postconf (из свежескомпилированного постфикса) для настройки чево-то там, но она оказывается слинкованой с все той же libssl.so.0.9.7, а у меня только libssl.so.0.9.8 и libssl.so -> libssl.so.0.9.8. И еще ЕМНИП libcrypto.so.х.х.х которой тоже нету но есть новее.
Как побороть? Я то сделал симлинк libssl.so.0.9.7 -> libssl.so пока оно работает. и может и будет работать припеваючи. но я НЕ ПОНЯЛ, почему оно слинковано с библиотекой, которой у меня НЕТ?
Буду благодарен за толковые идеи.
- Для комментирования войдите или зарегистрируйтесь
Снеси симлинк, сделай
Снеси симлинк, сделай revdep-rebuild
Не грусти, товарищ! Всё хорошо, beautiful good!
может ты чего-то не понял? я
может ты чего-то не понял? я ПЕРЕСОБИРАЛ постфикс (все три доступных ебилда) с новоустановленным openssl, но они падают на этапе postinst. пока не подсунул симлинк я мог собрать новый. revdep-rebuild пробовал, но что-то не получилось. может не те опции подставлял пробовал так: revdep-rebuild --library libssl ничего не нашло, но не помню, пробовал ли до подсовывания симлинка или после. :(
Просто revdep-rebuild. Твоя
Просто revdep-rebuild. Твоя команда ничего не пересоберет ибо неправильная.
Не грусти, товарищ! Всё хорошо, beautiful good!
ок, попробую
попробую вечером удалить симлинк и revdep-rebuild, когда почта будет не критична к использованию. отпишусь.
В постинсте postfix ssl
В постинсте postfix ssl используется только для генерации сертификатов. Бинарник при этом используется
/usr/bin/openssl
. Проверь ещеldd /usr/bin/openssl
, не должно быть потерянных либ.Не грусти, товарищ! Всё хорошо, beautiful good!
ldd postconf - любопытно
в ldd /usr/bin/openssl все путем
А вот что показал
Вот тут то я и удивился. libcrypto.so.0.9.7 - это то, куда я подсовывал симлик на libcrypto.so. Его я не удалял, удалил только на libssl.so.0.9.7
Круто, да? Слинковано на две версии опенссл, это как же, ........ ...., извиняюсь, понимать?
Я так понимаю, багрепорт писать надо, ага?
что говорит pkg-config
что говорит
pkg-config --modversion openssl
Не грусти, товарищ! Всё хорошо, beautiful good!
0.9.8j
pkg-config --modversion openssl
0.9.8j
а все-таки, revdep-rebuild
а все-таки, revdep-rebuild делал?
Не грусти, товарищ! Всё хорошо, beautiful good!
не помогло
снес постфикс. сделал revdep-rebuild -i
Пересобрало мускуль, nmap, elinks и подобную ерунду (кстати, после обновления ссл не работал wget, слинкованный на libssl :) Пришлось его обновлять. Хорошо что был curl, который продолжал работать после обновления libssl, который и позволил двигаться дальше). Обновил binutils на всякий. И результат все тот же: после сборки postfix (причем вне зависимости от USE-флага ssl или -ssl, на постинталле рушиться. багрепорт отписал.
Так прям сразу и
Так прям сразу и потащил?
Или ты обновлял дерево портов перед установкой nfs-utils?
По моему опыту: обновил дерево - обнови систему и только после этого устанавливай дополнительное ПО (ИМХО уточнение достойное включения в русский перевод хэндбука).
:wq
--
Live free or die
Обновление
Дерево портежей обновляется раз в неделю на сервере. Все нужные уточнения в хендбуке и так уже приведены. Они относятся к ARCH="x86" и "~x86" :)
.
Есть нехорошее подозрение, что ты меня недопонял.
Что не есть хорошо.
Установленное ПО приводится в соответствие с деревом portage также раз в неделю или как?
Мне видится, что установленное на твоём сервере ПО (по бОльшей части) соответствует одному (или нескольким) "старым" срезам, а свежеустановленный nfs-utils - "новому".
Мой опыт говорит, что эти расхождения являются источником сложнолокализуемых и практически неустранимых глюков сборки.
Совет:
# emerge -pvuDN world
После чего
# emerge -uDN world
И лишь завершающим шагом -
revdep-rebuild
.:wq
--
Live free or die
На сервере такого лучше не делать
думаю, тема достойна отдельной дискуссии
Софт опирается на библиотеки. Новый софт может требовать как новых либ, так и довольствоваться старыми. Обычно старых либ хватает (для сервера). И _обычно_ либы не ломают свой API/ABI, а лишь убирают баги (ИМХО).
Речь идет не о десктопе, а о сервере, на который возложены задачи. И делать # emerge -pvuDN world я не собираюсь, пока оно работает. А работать оно будет еще ой как долго.
# emerge -pvuDN world - это для админов-экстремалов, у которых много времени и мало проблем. Потому что этот путь потенциально ведет к увеличению проблем и уменьшению свободного времени.
В том, что тема достойна
В том, что тема достойна отдельной дискуссии - абсолютно согласен.
Но вот в остальном... Вы явно забыли указание "ИМХО" :)
Данная позиция не на пустом месте возникла... И свойственная не только Gentoo.
Помнится, пытался понять почему на FreeBSD clamav после избирательного обновления собирается несколько криво.
Не понял. Зато выяснил, что после приведения среза портов к актуальному проблема не проявляется.
Ранее тоже эмпирически было установлено, что после обновления среза портов устанавливать что-либо (при том, что некоторый набор ПО уже установлен) - развлечение экстремала.
:wq
--
Live free or die