LINUX.ORG.RU

Даунгрейд glibc (2.22 -> 2.21)

 ,


0

1

Не могу сделать даунгрейд glibc c 2.22 до 2.21. Собирается, но возникает ошибка во время установки.

>>> Completed installing glibc-2.21-r1 into /var/tmp/portage/sys-libs/glibc-2.21-r1/image/

making executable: usr/lib64/libc.so
making executable: usr/lib64/libpthread.so
ecompressdir: bzip2 -9 /usr/share/doc
ecompressdir: bzip2 -9 /usr/share/man
ecompressdir: bzip2 -9 /usr/share/info
 * checking 1416 files for package collisions
1000 files checked ...
>>> Merging sys-libs/glibc-2.21-r1 to /
 * Defaulting /etc/host.conf:multi to on
cal: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_COLLATE) / sizeof (_nl_value_type_LC_COLLATE[0]))' failed.
/usr/portage/sys-libs/glibc/files/eblits/pkg_preinst.eblit: line 24: 32677 Aborted                 ./ld-*.so --library-path . ${x} > /dev/null
 * ERROR: sys-libs/glibc-2.21-r1::gentoo failed (preinst phase):
 *   simple run test (/usr/bin/cal) failed
 * 
 * Call stack:
 *           ebuild.sh, line   93:  Called pkg_preinst
 *         environment, line 2934:  Called eblit-run 'pkg_preinst'
 *         environment, line 1034:  Called eblit-glibc-pkg_preinst
 *   pkg_preinst.eblit, line   54:  Called glibc_sanity_check
 *   pkg_preinst.eblit, line   33:  Called die
 * The specific snippet of code:
 *   		./ld-*.so --library-path . ${x} > /dev/null \
 *   			|| die "simple run test (${x}) failed"
 * 
 * If you need support, post the output of `emerge --info '=sys-libs/glibc-2.21-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-libs/glibc-2.21-r1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.21-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.21-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-libs/glibc-2.21-r1/image/lib64'
 * S: '/var/tmp/portage/sys-libs/glibc-2.21-r1/work/glibc-2.21'
!!! FAILED preinst: 1

Ответ на: комментарий от anonymous

Размаскировать нужно. Если хочешь, добавь

=sys-libs/glibc-2.22 **
в package.keywords

trupanka ()

В этом штука glibc - этот пакет нельзя просто так откатить - потому его нужно всегда с осторожностью обновлять.

Можно восстановить из backup, если он есть. Если его нет - то восстановить старую версию из stage3 (какая там есть ближайшая), а потом обновить до 2.21, если это будет более старая.

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

Согласен. Но в данном случае помогло просто изменить локаль на «C», и собрать glibc. Видимо, в 2.22 что-то изменили в localedef. Некоторые программы еще не собираются. У меня проблемы были с csound, ну и проверки в

eblit-run 'pkg_preinst'
, которые не давали собрать 2.21. Не знаю только, нужно ли пересобирать @system, если у меня все было собрало с 2.22.

trupanka ()
Ответ на: комментарий от trupanka

желательно, они динаически линкуются с прошлым glibc

deity ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.