На FreeBSD 4.5 поставлены tcl8.4 и python2.3_1, оба выдают ошибку:
/usr/libexec/ld-elf.so.1: /usr/local/lib/libtcl84.so.1: Undefined symbol "nl_langinfo"
/usr/libexec/ld-elf.so.1: python: Undefined symbol "nl_langinfo"соотв. Что означает это и как с ним (этим) бороться?
> На FreeBSD 4.5 поставлены tcl8.4 и python2.3_1, оба выдают ошибку:
>
>/usr/libexec/ld-elf.so.1: /usr/local/lib/libtcl84.so.1: Undefined symbol "nl_langinfo"
>/usr/libexec/ld-elf.so.1: python: Undefined symbol "nl_langinfo"
>
>соотв. Что означает это и как с ним (этим) бороться?соответственно:
# man nl_langinfo
>соответственно:
>
># man nl_langinfoтеперь я знаю, что это такое, но от этого мне ни холодно, ни жарко. Это у меня локаль выходит ненастроенный?
>>соответственно:
>>
>># man nl_langinfo
>
>теперь я знаю, что это такое, но от этого мне ни холодно,
>ни жарко. Это у меня локаль выходит ненастроенный?голова нужна не только чтобы жевать... ;)
>голова нужна не только чтобы жевать... ;)
Я вернулся домой, пожевал головой, сел за комп и обнаружил, что на моей FreeBSD 4.5 нет мана на nl_langinfo.
Далее я нашел в хендбуке про настройку локаля, после этого фря начала ругаться по-русски, причем в xterm это вылилось в абракадабрики (это уже др. история про фонты), но самое интересное, что вместе с python & tcl начал ненаходить nl_langinfo еще и mc.
Отсюда я сделал вывод, что в данных прогах остутствует соотв. локаль, к-рый запрашивает elf-loader. Вопросы:
1). я прав?
2). что делать?
Что же такое с nl_langinfo? lavr или очень хорошо знает, как мне помочь, но жлобится, или вообще нифига не знает и по-этому кидается мутно-бессмысленными сообщениями (не обижайся).
Кто-то может сказать что-нибуть конкретное по такой проблеме?
> Что же такое с nl_langinfo? lavr или очень хорошо знает,
>как мне помочь, но жлобится, или вообще нифига не знает и
>по-этому кидается мутно-бессмысленными сообщениями (не обижайся).
> Кто-то может сказать что-нибуть конкретное по такой проблеме?# uname -a
# env
???как ставил софт которые сообщает об ошибке?
># uname -a
># env
>???
>
>как ставил софт которые сообщает об ошибке?Пишу в птн ночью, надеюсь на скорый ответ.
На FreeBSD 4.5 вообще не импл. ф-ция nl_langinfo() в libc (о чем сказано в мане).
Ставил tcl и python выше указанных версий простым pkg_add. Мой pkg_add поддерж. пакаджи версии 1.0, т.е. +CONTENT::@conflict в 1.1 не поддерж. и выдается сообщ. об ошибке ==> приходиться следить за конфликтами самому и ручками untgz - удалить директивы @conficts - tgz - pkg_add.
Как я понял, эти проги хотят динамически слинковаться с nl_langinfo(), о чем просят ld_elf, он не находит и крышка. Но меня смущает тот факт, что когда я выставил русскую локаль, mc начал тоже незапускаться по той же причине, т.е. или мои предыдущие рассужд. ложны, или он запрашивает линковку в завис. от текущего локаля (так бывает?).
Насчет окружения, то я выставил LANG ru_RU.KOI8-R, MM_CHARSET KOI8-R, вобщем все один в один как в хендбуке::"13.5 Localizing FreeBSD to Specific Languages" <lang-setup.html> + по "13.3 Using Localization" <using-localization.html>.
Если вся проблема в отсутсвии нл_лагинфо в системе, то как его туда впаять без апгрейдов к 4.6 min (по ману, именно с этой версии она появилась)
Где же вы все, Лавр и ко? см. предыдущее сообщ.: предложите патч для 4.5, чтобы не апгрейтиться до 4.6min (это очень сложно). По идее, нужна лишь nl_langinfo(), причем можно или заменить модуль, в к-ром она находиться (ВОПРОС: КАКОЙ), или добавить к исходнику код заглушки (СНОВА ВОПРОС: куда и как рекомпилить по минимуму?).
!!! Я залез на ближайшую FreeBSD 4.7, взял одтуда
/usr/lib/libc.so.3
/usr/lib/libc.aи записал себе в соотв. места. Теперь tcl нормально работает, по python по-прежнему ругается теми же нехорошими словами.
1). Что делать?
2). Как посмотреть список динамических импортов Питона (python)?
> !!! Я залез на ближайшую FreeBSD 4.7, взял одтуда
>/usr/lib/libc.so.3
>/usr/lib/libc.alibc - основная библиотека системы, можно сказать что это практически
половина системы, и чтобы совершать с ней некие операции - нужно иметь
голову на плечах.> и записал себе в соотв. места. Теперь tcl нормально работает, по
>python по-прежнему ругается теми же нехорошими словами.
> 1). Что делать?Чтобы что-то делать, надо знать и понимать матчасть, соответственно,
в packages релиза 4.5, пакеты ПРОСТО НЕ МОГУТ БЫТЬ СОБРАНЫ ПОД ДРУГОЙ
РЕЛИЗ. Что означает абсолютно бессмысленный подход к установке пакетов
взятых из релиза > 4.5 и установка их на свою систему. Что вобщем-то
можно сделать, но для этого необходимо понимать ЧТО и КАК.
Для работы модулей от предыдущих релизов, необходимо пересобрать
систему с поддержкой формата a.out (если нужна поддержка старого non-elf
формата) и с совместимостью предыдущих релизов (будут собраны необходимые
библиотеки):grep COMPAT /etc/defaults/make.conf и вроде из портов можно доставить
нужные библиотеки: /usr/ports/misc> 2). Как посмотреть список динамических импортов Питона (python)?
man ldd
man ld
man ar
man ccизучать процесс компиляции и сборки