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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам