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

Исходное сообщение
"Помогите обновить glibc"

Отправлено strim , 24-Фев-05 21:20 
У меня проблема я хочу поставить samba 3 на ASPLinux 7.3 а она  требует glibc 2.3 и выше, у меня есть  glibc-2.3.2-27.9.1asp.i386.rpm из ASPLinux 9.0 хочу обновить коммандой rpm -U glibc-2.3.2-27.9.1asp.i386.rpm , не чего не выходит выводит
    glibc-common = 2.3.2-27.9.1asp нужен для glibc-2.3.2-27.9.1asp
        glibc > 2.2.5 конфликтует с glibc-common-2.2.5-37asp
        glibc = 2.2.5 нужен для glibc-devel-2.2.5-37asp
Я обновляю glibc-common беру его из ASPLinux 9.0 а он мне выводит

    glibc < 2.3.2 конфликтует с glibc-common-2.3.2-27.9.1asp
        glibc-common = 2.2.5-37asp нужен для glibc-2.2.5-37asp
Удалить страй glibc , для установки нового не могу там только зависимостей.
Как мне обновить glibc???


Содержание

Сообщения в этом обсуждении
"Помогите обновить glibc"
Отправлено XMan , 24-Фев-05 21:33 
А задать сразу все обновляемые пакеты rpm-у слабо ? :)

"Помогите обновить glibc"
Отправлено Костя , 02-Мрт-05 14:52 
Приходят на ум два решения.

1)Если Samba 3 компилируется с установленной версией glibc,лучше скомпилировать из исходников.
2)Если нет,расскажу,как я обновлял glibc.
У меня тоже ASPLinux 9.0,но у меня есть одна "испытательная" установка на одном из разделов.Там я испытывал обновление glibc на версию 2.3.4.
На rpm полагаться в этом деле рискованно,поэтому я скомпилировал из исходников:следуя инструкциям из INSTALL & README,я сделал ./configure --enable-add-ons=linuxthreads,libidn --prefix=/usr --without-__thread.Последняя опция необходимо для нормальной компиляции этой версии.

Потом,конечно, make
               make-check
               make install
После выполнения последней команды система перестает работать и выдает что-то вроде: relocation error: /lib/tls/libc.so.6: __dl_startup... in file ld-linux.so.2: version GLIBC_PRIVATE not included with ...
После этого невозможно даже перезагрузиться нормальным образом.
Я сделал reset и загрузился с загрузочной дискеты(они должны быть в наличии для подобных ситуаций).Смонтировал мой раздел с ASPLinuxом --
mount /dev/hda3 /mnt/имя точки монтирования.Захожу в раздел /lib/tls --
там находятся предыдущая версия glibc(libc-2.3.2.so) и символическая ссылка на нее -- libc.so.6.Именно они не устраивают систему после установки обновленной версии.Итак:все файлы в этой папке надо обновить на
аналоги версии 2.3.4(в моем случае) и обновить ссылки.Соответственно,rm libc* libm* libpthread* ....Потом cp ../libc-2.3.4.so libc-2.3.4 и т.д.;ln -s libc-2.3.4.so libc.so.6 и т.д.соответственно.(Эти более новые файлы находятся в /lib).То же самое я проделал в папке /lib/i686.
Обновив файлы в этих двух папках,выходим из точки монтирования,размонтируем и перезагружаемся нормальным образом.
Впрочем,некоторые программы,говорят,перестают работать после обновления glibc.У меня пока все работает.
Желаю успеха!


"Помогите обновить glibc"
Отправлено Костя , 03-Мрт-05 09:44 
>Приходят на ум два решения.
>
>1)Если Samba 3 компилируется с установленной версией glibc,лучше скомпилировать из исходников.
>2)Если нет,расскажу,как я обновлял glibc.
>У меня тоже ASPLinux 9.0,но у меня есть одна "испытательная" установка на
>одном из разделов.Там я испытывал обновление glibc на версию 2.3.4.
>На rpm полагаться в этом деле рискованно,поэтому я скомпилировал из исходников:следуя инструкциям
>из INSTALL & README(они находятся в корневом каталоге исходного кода),я сделал ./configure --enable-add-ons=linuxthreads,libidn --prefix=/usr --without-__thread.Последняя опция необходимо
>для нормальной компиляции версии 2.3.4 с linuxthreads(а без них вообще ничего не компилируется!).
>
>Потом,конечно, make
>            
>   make check
>            
>   make install
>После выполнения последней команды система перестает работать и выдает что-то вроде: relocation
>error: /lib/tls/libc.so.6: __dl_startup... in file ld-linux.so.2: version GLIBC_PRIVATE not included with
>...
>После этого невозможно даже перезагрузиться нормальным образом.
>Я сделал reset и загрузился с загрузочной дискеты(они должны быть в наличии
>для подобных ситуаций).Смонтировал мой раздел с ASPLinuxом --
>mount /dev/hda3 /mnt/имя точки монтирования.Захожу в раздел /lib/tls --
>там находятся предыдущая версия glibc(libc-2.3.2.so) и символическая ссылка на нее -- libc.so.6.Именно
>они не устраивают систему после установки обновленной версии.Итак:все файлы в этой
>папке надо обновить на
>аналоги версии 2.3.4(в моем случае) и обновить ссылки.Соответственно,rm libc* libm* libpthread* ....Потом
>cp ../libc-2.3.4.so libc-2.3.4.so и т.д.;ln -s libc-2.3.4.so libc.so.6 и т.д.соответственно.(Эти более
>новые файлы находятся в /lib).То же самое я проделал в папке
>/lib/i686.
>Обновив файлы в этих двух папках,выходим из точки монтирования,размонтируем и перезагружаемся нормальным
>образом.
>Впрочем,некоторые программы,говорят,перестают работать после обновления glibc.У меня пока все работает.
>Желаю успеха!
PS.Я тут смотрел свою установку ASPLinux 7.3 и понял,что там нет таких папок -- /lib/tls,/lib/i686.Что ж,тем лучше.Однако,сообщения типа "relocation error" могут появиться,если где-то возникнет конфликт версий после обновления glibc.В этом случае система,как сообщалось выше,виснет намертво -- помогает лишь нажатие кнопки RESET(на системном блоке рядом с кнопкой ВКЛ/ВЫКЛ).А потом можно только загрузиться с дискеты и смонтировать / раздел и  т.д.,см. выше.Не уверен,правда,что обновление с версии 2.2.5 на 3.х.х пройдет так же гладко,как у меня с 2.3.2 на 2.3.4.Но попробовать стоит!В крайнем случае,можно все переустановить,дополнительный опыт,так сказать...



"Помогите обновить glibc"
Отправлено Костя , 03-Мрт-05 10:04 
И еще,на счет зависимостей,на которые жалуется rpm.Не всегда все так плохо.Программы могут нормально работать с новой версией!С другой стороны,при любом способе обновления glibc следует учитывать,что в системе не могут мирно сосуществовать две разных версии системной библиотеки(или я очень сильно ошибаюсь,тогда прошу меня поправить).Программа ld не допустит этого,как видно из описанного мною опыта.Можно,правда,переместить старые libc-2.2.5.so и т.д. файлы куда-то в другое место,потом как-то указать программам,которые от них критически зависят,где их искать...Не могу сказать,как именно добиться такого результата.
Как узнать,от каких библиотек зависит программа?Вот так:ldd /usr/sbin/sendmail(или любая другая).
Не следует бояться компилировать из исходников -- это самое милое дело!Когда программа из дистрибутива не работает(увы!),ее хорошо перекомпилировать из исходников!Как говорят корифеи,в этом дух Linux.