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

Исходное сообщение
"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared object) "

Отправлено redduck , 05-Июн-06 00:27 
Здраствуйте.
Обновил FreeBSD с 5.4 до 6.0

Появилась ошибка:
/libexec/ld-elf.so.1: Shared object "libmysqlclient.so.14" not found

Установил порты COMPAT4x и COMPAT5x
Все равно непомогает!

Если удалить порт mysql41-client и тут же его установить то программы (netams, sams) запускаются и работают нормально, но если перезагрузить то опять выскакивает эта ошибка.
Помогите разобраться!

файл /etc/make.conf
CPUTYPE?=pentium3
NO_ACPI=true
NO_USB=true
NO_PROFILE=true
NO_BLUETOOTH=true
NO_GAMES=true
NO_PF=true
NO_LPR=true
BOOTWAIT=0
DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R
COMPAT1X=no
COMPAT20=no
COMPAT21=no
COMPAT22=no
COMPAT4x=yes
COMPAT5x=yes
PERL_VER=5.8.8
PERL_VERSION=5.8.8

Обновлялся:
cd /usr/src
make buildworld
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC
reboot
shutdown now
cd /usr/src/
mergemaster -p
make installworld
mergemaster
exit


Содержание

Сообщения в этом обсуждении
"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено newser , 05-Июн-06 09:19 
>Если удалить порт mysql41-client и тут же его установить то программы (netams,
>sams) запускаются и работают нормально, но если перезагрузить то опять выскакивает
>эта ошибка.

А собственно netams и sams пересобрать не пробовали?


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Skif , 05-Июн-06 09:45 
>Здраствуйте.
>Обновил FreeBSD с 5.4 до 6.0
>
>Появилась ошибка:
>/libexec/ld-elf.so.1: Shared object "libmysqlclient.so.14" not found
>
>Установил порты COMPAT4x и COMPAT5x
>Все равно непомогает!
>
>Если удалить порт mysql41-client и тут же его установить то программы (netams,
>sams) запускаются и работают нормально, но если перезагрузить то опять выскакивает
>эта ошибка.

А порты не пробовал накатить после перезда.

>
>файл /etc/make.conf
>CPUTYPE?=pentium3
>NO_ACPI=true
>NO_USB=true
>NO_PROFILE=true
>NO_BLUETOOTH=true
>NO_GAMES=true
>NO_PF=true
>NO_LPR=true
>BOOTWAIT=0
>DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R
>COMPAT1X=no
>COMPAT20=no
>COMPAT21=no
>COMPAT22=no
>COMPAT4x=yes
>COMPAT5x=yes
>PERL_VER=5.8.8
>PERL_VERSION=5.8.8
>
>Обновлялся:
>cd /usr/src
>make buildworld
>make buildkernel KERNCONF=GENERIC
>make installkernel KERNCONF=GENERIC
>reboot
>shutdown now

Смысла не пойму. зачем? достаточно было boot -s. Не всегда все службы стопорятся.
>cd /usr/src/
>mergemaster -p
>make installworld
>mergemaster
>exit

Честно говоря лень, но все же прочитал еще раз UPDATING

        To upgrade in-place from 5.x-stable or higher to 6.x-stable
        -----------------------------------------------------------
        <make sure you have good level 0 dumps>
        make buildworld                                 [9]
        make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
                                                        [1]
        <reboot in single user>                         [3]
        mergemaster -p                                  [5]
        make installworld
        mergemaster -i                                  [4]
        <reboot>

Найдите различия.


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено redduck , 05-Июн-06 10:37 
Посмотрел, различий не нашел.
Конечно вместо двух строк.
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC
можно писать
make kernel KERNCONF=GENERIC
и не перзагружаться а сразу shutdown now
Но принципиальной разницы нет.

Всем спасибо.
я вроде нашел где кроется проблема.
Сравнивал системные файлы с другим серваком, на котором изначально устанавливалась FreeBSD 6.0, подозрение вызвало то что в /etc/rc.d/ отсутствовал файл ldconfig_compat! Скопировал файл, перезагружаю работает!
Сейчас инфу собираю про ldconfig и ldconfig_compat


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Skif , 05-Июн-06 10:51 

>Всем спасибо.
>я вроде нашел где кроется проблема.
>Сравнивал системные файлы с другим серваком, на котором изначально устанавливалась FreeBSD 6.0,
>подозрение вызвало то что в /etc/rc.d/ отсутствовал файл ldconfig_compat! Скопировал файл,
>перезагружаю работает!
>Сейчас инфу собираю про ldconfig и ldconfig_compat
>Посмотрел, различий не нашел.
>Конечно вместо двух строк.
>make buildkernel KERNCONF=GENERIC
>make installkernel KERNCONF=GENERIC
>можно писать
>make kernel KERNCONF=GENERIC
>и не перзагружаться а сразу shutdown now
>Но принципиальной разницы нет.
>
Невнимательно смотрели

        mergemaster -p                                  [5]
        make installworld
        mergemaster -i                                  [4]

Внимательно почитайте про ключи mergemaster. Это раз
Их привели именно в такой последовательности отнюдь не зря - это два.
Одна из самых распространненных ошибок при прыжке - забыть ключ -i или использовать его перед make installworld вместе с ключем -p


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено redduck , 05-Июн-06 11:38 
>Невнимательно смотрели
>
>        mergemaster -p  
>          
>          
>         [5]
>        make installworld
>        mergemaster -i  
>          
>          
>         [4]
>
>Внимательно почитайте про ключи mergemaster. Это раз
>Их привели именно в такой последовательности отнюдь не зря - это два.
>
>Одна из самых распространненных ошибок при прыжке - забыть ключ -i или
>использовать его перед make installworld вместе с ключем -p

Наоборот очень внимательно смотрел, вот man mergemaster
     -i          Automatically install any files that do not exist in the des-
                 tination directory.
А мне нафиг не надо автоматически инсталировать все файлы, это даже вредно сразу многие сервисы отвалятся, так как автоматически поменяются /etc/master.passwd, /etc/group,/etc/hosts и другие придется долго возиться что бы восстановить все конфигурационные файлы, а в ручном режиме смотришь и говоришь установить новую версию файла или оставить старую или слить два файла в один, а потом удалить ненужные строки. По моему так проще чем восстанавливать потом из архива и все равно удалять лишние строчки.


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено lavr , 05-Июн-06 11:44 
>>Невнимательно смотрели
>>
>>        mergemaster -p  
>>          
>>          
>>         [5]
>>        make installworld
>>        mergemaster -i  
>>          
>>          
>>         [4]
>>
>>Внимательно почитайте про ключи mergemaster. Это раз
>>Их привели именно в такой последовательности отнюдь не зря - это два.
>>
>>Одна из самых распространненных ошибок при прыжке - забыть ключ -i или
>>использовать его перед make installworld вместе с ключем -p
>
>Наоборот очень внимательно смотрел, вот man mergemaster
>     -i      
>   Automatically install any files that do not exist
>in the des-
>            
>     tination directory.
>А мне нафиг не надо автоматически инсталировать все файлы, это даже вредно
>сразу многие сервисы отвалятся, так как автоматически поменяются /etc/master.passwd, /etc/group,/etc/hosts и
>другие придется долго возиться что бы восстановить все конфигурационные файлы, а
>в ручном режиме смотришь и говоришь установить новую версию файла или
>оставить старую или слить два файла в один, а потом удалить
>ненужные строки. По моему так проще чем восстанавливать потом из архива
>и все равно удалять лишние строчки.

вы обновляли 5.4 до 6.0, объясните тогда пАчему вам нужно ДВА КОМПАТА: 4.x и 5.x?!

после обновления 5.4 -> 6.0 в /libexec и в /usr/libexec и /usr/lib образуется каша
из актуальных 6.0 библиотек и старых 5.4.

5.4 вы ставили с НУЛЯ или обновляли?


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено redduck , 05-Июн-06 14:34 
Два компата мне не нужны, просто так получилось что я искал причину почему у меня вылазит ошибка, и вот сначала ставил компат4х а когда не помогла попытался исправить с помощью компата5х, а 5.4 ставил с нуля.

"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено lavr , 05-Июн-06 15:06 
>Два компата мне не нужны, просто так получилось что я искал причину
>почему у меня вылазит ошибка, и вот сначала ставил компат4х а
>когда не помогла попытался исправить с помощью компата5х, а 5.4 ставил
>с нуля.

советую забить на старые сборки и СРОЧНО все пересобрать из портов, особенно ВСЕ что
было собрано с ТРЕДАМИ.

Достаточно безболезненно прыгать было по веткам: 3.x -> 4.x, 4.x -> 5.x

4.x -> 6.x и 5.x -> 6.x довольно неприятно, лучше не заниматься этим спортом на
БОЕВЫХ серверах.
Считается что безболезненно прыгать ВНУТРИ ветки(branch) с релиза на релиз, НО
с ВЕТКИ на ВЕТКИ всегда есть подводные камни. Хоть 5'ую ветку и нельзя назвать
показательной, но даже внутри нее переходы 5.2.1 -> 5.3 и 5.3 -> 5.4 могли мало-мало
попортить нервы.


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Skif , 05-Июн-06 15:32 

>4.x -> 6.x и 5.x -> 6.x довольно неприятно, лучше не заниматься этим спортом на

lavr, поделись рецептом, как прыгать на прямую, в обход 5-ки на 6-ую ветку. Мои эксперименты  никчему хорошему не привели. Приходится прыгать минимум до 5.3 первоначально, а только потом на 6-ку.

>БОЕВЫХ серверах.
> Считается что безболезненно прыгать ВНУТРИ ветки(branch) с релиза на релиз, НО
>
>с ВЕТКИ на ВЕТКИ всегда есть подводные камни. Хоть 5'ую ветку и
>нельзя назвать
>показательной, но даже внутри нее переходы 5.2.1 -> 5.3 и 5.3 -> 5.4 могли мало-мало
>попортить нервы.


Ну поповоду остального немного не соглашусь. Если правильно подойти то можно прыгать. К примеру у меня так несколько удаленных серверов прыгало. Просто внимательно надо смотреть что меняется, а что нет. И сначала на локальном тазике с таким же софтом.
Единственное исключение - 4-ая ветка, когда катил до 6-ки, непомню точно что, но заставила какаязто гадость накатываться именно до 5-ки или 6-ки. Там жестко в синг уходить надо. И нужно возле кмпа быть либо проситть саппорт удаленный проделать ряд операций.

Насчет каши да, либ остается в поряде, но не столь глобально, лишние вычистить не проблема тем более, что базовый набор не такой большой :).


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено lavr , 05-Июн-06 15:47 
>
>>4.x -> 6.x и 5.x -> 6.x довольно неприятно, лучше не заниматься этим спортом на
>
>lavr, поделись рецептом, как прыгать на прямую, в обход 5-ки на 6-ую
>ветку. Мои эксперименты  никчему хорошему не привели. Приходится прыгать минимум
>до 5.3 первоначально, а только потом на 6-ку.

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

>>БОЕВЫХ серверах.
>> Считается что безболезненно прыгать ВНУТРИ ветки(branch) с релиза на релиз, НО
>>
>>с ВЕТКИ на ВЕТКИ всегда есть подводные камни. Хоть 5'ую ветку и
>>нельзя назвать
>>показательной, но даже внутри нее переходы 5.2.1 -> 5.3 и 5.3 -> 5.4 могли мало-мало
>>попортить нервы.
>
>
>Ну поповоду остального немного не соглашусь. Если правильно подойти то можно прыгать.

ну да, да, но очень сильно зависит от того ЧТО и КАК СОБИРАЛОСЬ.

>К примеру у меня так несколько удаленных серверов прыгало. Просто внимательно
>надо смотреть что меняется, а что нет. И сначала на локальном
>тазике с таким же софтом.

полностью согласен

>Единственное исключение - 4-ая ветка, когда катил до 6-ки, непомню точно что,
>но заставила какаязто гадость накатываться именно до 5-ки или 6-ки. Там
>жестко в синг уходить надо. И нужно возле кмпа быть либо
>проситть саппорт удаленный проделать ряд операций.

да, если не ошибаюсь - смена местоположения ядра и что-то еще, тоже не помню...
те у принципе можно 4.x -> 6.0 если оно рядом под рукой, удаленно лучше не делать.

>Насчет каши да, либ остается в поряде, но не столь глобально, лишние
>вычистить не проблема тем более, что базовый набор не такой большой
>:).

ну да, на все требуется время, опыт и экперименты.

Натрахавшись с 2.x -> 3.x -> 4.x - я просто завязал делать такие апгрейды и писать
руководства по апгрейдам с ветки на ветку. Даже когда практически ВСЕ расписано на
листочке и делаешь не первый раз - много ЛИШНИХ сил, нервов и главное времени уходит.
Для себя выяснил что проще поднимать сбоку.


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Skif , 05-Июн-06 15:49 
> Для себя выяснил что проще поднимать сбоку.

;)


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Skif , 05-Июн-06 11:47 

>
>Наоборот очень внимательно смотрел, вот man mergemaster
>     -i      
>   Automatically install any files that do not exist
>in the des-
>            
>     tination directory.
>А мне нафиг не надо автоматически инсталировать все файлы, это даже вредно
>сразу многие сервисы отвалятся, так как автоматически поменяются /etc/master.passwd, /etc/group,/etc/hosts и

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

:)
Не поленитесь и посмотрите различия в /etc на 5-й ветке и на 6-й. Особо обратите внимание на /etc/rc.d



"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено redduck , 05-Июн-06 17:02 
Вопрос тогда, как разгребать кашу /usr/lib/ /usr/libexec
насколько безопастно удалить /usr/lib/* и скопировать библиотеки с сервера на котором изначально устанавливалось FreeBSD 6.0

"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено lavr , 05-Июн-06 17:07 
>Вопрос тогда, как разгребать кашу /usr/lib/ /usr/libexec
>насколько безопастно удалить /usr/lib/* и скопировать библиотеки с сервера на котором изначально
>устанавливалось FreeBSD 6.0

если вы удалите /usr/lib/* - система рухнет. есть утилиты mtree, diff - что мешает
ими воспользоваться?


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено redduck , 05-Июн-06 17:32 
>>Вопрос тогда, как разгребать кашу /usr/lib/ /usr/libexec
>>насколько безопастно удалить /usr/lib/* и скопировать библиотеки с сервера на котором изначально
>>устанавливалось FreeBSD 6.0
>
>если вы удалите /usr/lib/* - система рухнет. есть утилиты mtree, diff -
>что мешает
>ими воспользоваться?
Да конечно, буду стараться сделать правильно, но вот как система рухнет если скажем я подключусь локально в single mode, /usr/lib/* с FreeBSD 6.0 будут уже скопированы в /tmp
ls -lo /usr/lib | grep schg
-r--r--r--  1 root  wheel  schg  112972 Jun  4 21:28 libc_r.so.6
-r--r--r--  1 root  wheel  schg  148304 Jun  4 21:28 libpthread.so.2
-r--r--r--  1 root  wheel  schg   74252 Jun  4 21:28 libthr.so.2

Только эти библиотеки имеют флаг schg и их менять не надо они уже от 6.0
Но я не настаиваю, конечно буду думать, спрашивать, опять думать и так семь раз!



"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено lavr , 05-Июн-06 17:42 
>>>Вопрос тогда, как разгребать кашу /usr/lib/ /usr/libexec
>>>насколько безопастно удалить /usr/lib/* и скопировать библиотеки с сервера на котором изначально
>>>устанавливалось FreeBSD 6.0
>>
>>если вы удалите /usr/lib/* - система рухнет. есть утилиты mtree, diff -
>>что мешает
>>ими воспользоваться?
>Да конечно, буду стараться сделать правильно, но вот как система рухнет если
>скажем я подключусь локально в single mode, /usr/lib/* с FreeBSD 6.0
>будут уже скопированы в /tmp
>ls -lo /usr/lib | grep schg
>-r--r--r--  1 root  wheel  schg  112972 Jun  
>4 21:28 libc_r.so.6
>-r--r--r--  1 root  wheel  schg  148304 Jun  
>4 21:28 libpthread.so.2
>-r--r--r--  1 root  wheel  schg   74252 Jun
> 4 21:28 libthr.so.2
>
>Только эти библиотеки имеют флаг schg и их менять не надо они
>уже от 6.0
>Но я не настаиваю, конечно буду думать, спрашивать, опять думать и так
>семь раз!

вы снова НЕ ПОНЯЛИ:

- ЗАЧЕМ использовать маску "*"

в чем проблемы сделать ls -la /usr/lib (libexec) на машинах:
- чистая 6.0
- апгрейд с 5.4 -> 6.0

и посмотреть ЧТО нужно просто удалить на последней (5.4->6.0)


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено redduck , 05-Июн-06 19:00 
>вы снова НЕ ПОНЯЛИ:
>
>- ЗАЧЕМ использовать маску "*"
>
>в чем проблемы сделать ls -la /usr/lib (libexec) на машинах:
>- чистая 6.0
>- апгрейд с 5.4 -> 6.0
>
>и посмотреть ЧТО нужно просто удалить на последней (5.4->6.0)
Спасибо за ответ!
Только я понял, просто лень знаете ли, думал одной командой удалить, другой вставить, раз и я в дамках.

"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено lavr , 05-Июн-06 19:39 
>>вы снова НЕ ПОНЯЛИ:
>>
>>- ЗАЧЕМ использовать маску "*"
>>
>>в чем проблемы сделать ls -la /usr/lib (libexec) на машинах:
>>- чистая 6.0
>>- апгрейд с 5.4 -> 6.0
>>
>>и посмотреть ЧТО нужно просто удалить на последней (5.4->6.0)
>Спасибо за ответ!
>Только я понял, просто лень знаете ли, думал одной командой удалить, другой
>вставить, раз и я в дамках.

ну да, начнешь сие делать через copy в mc и система рухнет на libc
расписывать это лень было...


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Puss , 08-Июн-06 16:20 
FreeBSD 6.0
поставил 4.1.7 mysql
конфигурирую pvpgn

в логах ошибка /libexec/ld-elf.so.1: Shared object "libmysqlclient.so.14" not found, required by "conftest"


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено fvl , 09-Июн-06 05:22 
echo compat5x_enable="YES" >> /etc/rc.conf

"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено Jay , 12-Июн-06 12:14 
>Наоборот очень внимательно смотрел, вот man mergemaster
>     -i      
>   Automatically install any files that do not exist
>in the destination directory.
>А мне нафиг не надо автоматически инсталировать все файлы, это даже вредно
>сразу многие сервисы отвалятся, так как автоматически поменяются /etc/master.passwd, /etc/group,/etc/hosts и
>другие придется долго возиться что бы восстановить все конфигурационные файлы
[skipped]

Значит, читали внимательно, но не поняли сути :)
Ключ -i автоматически устанавливает файлы, которых нет в каталоге назначения (/etc). Но это не критично, без этого ключа mergemaster просто будет спрашивать, устанавливать новый файл или нет.
Перечисленные же вами файлы при указании этого ключа не будут заменены без запроса. Уж поверьте мне, я использую этот ключ при каждом апгрейде и никаких проблем он мне не создавал.

А относительно старых библиоткек - читайте внимательно /usr/src/UPDATING.
Чтобы удалить файлы, не используемые текущей сборкой, нужно выполнить make delete-old. Аналогично, чтобы удалить не используемые текущей сборкой библиотеки, выполняется make delete-old-libs (если мне память не изменяет).

Кстати, внимательное прочтение файлов /usr/src/UPDATING и /usr/ports/UPDATING позволяет избежать подобных проблем, поскольку все критические изменения там документированы. А в качестве бонуса часто приведен и наиболее универсальный способ решения возможной проблемы.

Такое соблюдение нехитрых правил позволило мне совершенно безболезненно проапгрейдиться с 5.4 до 6.0 в свое время. Потом постепенно были пересобраны все порты и к 6.1 система уже работала без старых версий библиотек.

--
Jay


"Обновил FreeBSD с 5.4 до 6.0 (/libexec/ld-elf.so.1: Shared o..."
Отправлено марлис , 14-Июл-06 09:42 
>Посмотрел, различий не нашел.
>Конечно вместо двух строк.
>make buildkernel KERNCONF=GENERIC
>make installkernel KERNCONF=GENERIC
>можно писать
>make kernel KERNCONF=GENERIC
>и не перзагружаться а сразу shutdown now
>Но принципиальной разницы нет.
>
>Всем спасибо.
>я вроде нашел где кроется проблема.
>Сравнивал системные файлы с другим серваком, на котором изначально устанавливалась FreeBSD 6.0,
>подозрение вызвало то что в /etc/rc.d/ отсутствовал файл ldconfig_compat! Скопировал файл,
>перезагружаю работает!
>Сейчас инфу собираю про ldconfig и ldconfig_compat

у меня фрибсд 5.4
проблема такая же ldconfig_compat отсутствует а откуда его взять?