URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 40145
[ Назад ]

Исходное сообщение
"Конфликт библиотек при установке из портов "

Отправлено Dmitry , 04-Фев-04 14:43 
Здравствуйте!
Возникла неприятная проблема, не знаю как решить. После установки некой программы из портов, обновилась библиотека gettext. После чего начал жутко тормозить сендмыл и перестал запускаться mc.При попытке пересобрать mc, компилятор кричит, что нужна старая версия библиотеки, а поставить он ее не может, так как стоит уже новая.
Подскажите, как выходить из таких ситуаций?
И вообще получается, что обновив какую-то библиотеку, нужно пересобирать все установленные программы?

Заранее спасибо!

Дмитрий


Содержание

Сообщения в этом обсуждении
"Конфликт библиотек при установке из портов "
Отправлено lavr , 04-Фев-04 16:00 
>Здравствуйте!
>Возникла неприятная проблема, не знаю как решить. После установки некой программы из
>портов, обновилась библиотека gettext. После чего начал жутко тормозить сендмыл и
>перестал запускаться mc.При попытке пересобрать mc, компилятор кричит, что нужна старая
>версия библиотеки, а поставить он ее не может, так как стоит
>уже новая.
>Подскажите, как выходить из таких ситуаций?
>И вообще получается, что обновив какую-то библиотеку, нужно пересобирать все установленные программы?
>
>
>Заранее спасибо!
>
>Дмитрий

более свежие версии динамических библиотек обычно включают в себя функции
старых, посему, после установки более свежей версии ДИНАМИЧЕСКОЙ библиотеки, можно сделать следующее (допустим проверить как собран mc):


[unix1]~ > whereis midc
midc: /usr/local/bin/midc /usr/local/man/man1/midc.1.gz
[unix1]~ > ldd /usr/local/bin/midc
/usr/local/bin/midc:
        libslang.so.1 => /usr/local/lib/libslang.so.1 (0x180da000)
        libncurses.so.5 => /usr/lib/libncurses.so.5 (0x18139000)
        libintl.so.1 => /usr/local/lib/libintl.so.1 (0x1817b000)
        libglib12.so.3 => /usr/local/lib/libglib12.so.3 (0x1817f000)
        libc.so.4 => /usr/lib/libc.so.4 (0x181a1000)
        libm.so.2 => /usr/lib/libm.so.2 (0x1823c000)
[unix1]~ >

если выше какая-то библиотека НЕ БУДЕТ найдена, но мы точно знаем что есть
более свежая, то берем имя отсутствующей библиотеки из верхнего output
и делаем линк новой на старое имя, затем снова ldd и потом пробуем
запустить приложение.

По-поводу сборки - ничего сложного, достаточно поправить либо configure,
либо Makefile на предмет проверки библиотеки и линковки.


"Конфликт библиотек при установке из портов "
Отправлено Dmitry , 04-Фев-04 16:02 
динамических библиотек обычно включают в себя функции
>старых, посему, после установки более свежей версии ДИНАМИЧЕСКОЙ библиотеки, можно сделать следующее

Спасибо! Все получилось! Хотя, действительно, решение было довольно очевидное!