Назад | Перейти на главную страницу

glibc.i686 конфликтует с libc6?

У меня есть 64-битный сервер Redhat Enterprise Linux (версия 6.3), который не позволяет мне устанавливать модуль glibc.i686 для 32-битной совместимости. Когда я пытаюсь yum install glibc.i686 как root, это дает мне длинную строку таких ошибок:

Transaction Check Error:
  file /lib/libc.so.6 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64
  file /lib/libm.so.6 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64
  file /lib/libpthread.so.0 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64

Вот результат rpm -qa grepping для glibc и libc6:

# rpm -qa | grep glibc
glibc-common-2.12-1.80.el6_3.6.x86_64
glibc-2.12-1.80.el6_3.6.x86_64

# rpm -qa | grep libc6
libc6-2.15-1.x86_64

Несмотря на все мои усилия, Google не произвел ничего особо полезного.

Почему эти два пакета конфликтуют и как заставить их хорошо взаимодействовать друг с другом?

РЕДАКТИРОВАТЬ:

Вот результат yum repolist:

# yum repolist
Loaded plugins: product-id, rhnplugin, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
repo id                   repo name                                                   status
rhel-x86_64-server-6      Red Hat Enterprise Linux Server (v. 6 for 64-bit x86_64)    8,824
repolist: 8,824

Здесь нет libc6 пакет в Red Hat Enterprise Linux. Имя пакета для тех же файлов: glibc. Похоже, что кто-то установил на ваш сервер пакет из другого дистрибутива Linux и перекрыл ошибки, которые они могли бы получить при попытке сделать это (которые примерно такие же, как те, которые вы видели здесь).

Это, конечно, переводит вашу базу данных RPM в несогласованное состояние по отношению к фактическому установленному программному обеспечению и может вызвать проблемы совместимости и зависимости, подобные тем, с которыми вы столкнулись сегодня. Например, становится невозможным обновлять пакеты из поддерживаемых репозиториев и трудно точно определить, какой код выполняется в системе.

Я предполагаю, что кто-то (кто действительно не знает, как это сделать) попытался обновить glibc за пределами версии, предоставленной Red Hat, скорее всего, чтобы воспользоваться новой функцией, которой нет в версии glibc поставляется с EL6.

Правильный способ, если вам действительно нужна эта последняя версия glibc, - это взять исходный RPM Red Hat, настроить файл спецификации и любые патчи для сборки новой версии glibc и использовать новые двоичные RPM новой версии. В таком случае вы несете ответственность за его обслуживание самостоятельно, можете потерять поддержку со стороны поставщика и т. Д., Поэтому вам следует думать об этом только в том случае, если этого требуют бизнес-требования. (И поскольку вы все равно потеряете поддержку, вы также можете переключиться на CentOS ...)