Установка стороннего приложения на CentOS 6.4 завершается неудачно из-за отсутствия зависимостей libcrypto.so.10 и libssl.so.10

16

Это канонический вопрос о проблемах двоичной совместимости OpenSSL между Red Hat Enterprise Linux (и его производными) 6.4 и 6.5.

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

У меня была установлена ​​Percona 5.5, и я пытаюсь обновить ее до 5.6, но у меня неожиданные проблемы, и я застрял в том, как их решить.

Я следовал инструкциям на http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html

И удалил пакеты 5.5, затем выполнил следующую команду для обновления:

yum install Percona-Server-server-56 Percona-Server-client-56

Ошибки, которые я получил назад:

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-shared-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Finished Dependency Resolution
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
 You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of mysql

Я пробовал все, начиная с переустановки openssl и openssl-devel, который установлен правильно, но все равно не работает. Есть идеи?

Я использую CentOS 6.4:

root@server01 [/]# cat /proc/version
Linux version 2.6.32-279.5.2.el6.x86_64 (mockbuild@c6b10.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Aug 24 01:07:11 UTC 2012
root@server01 [/]#
user2643870
источник
CentOS называет пакет, который вам нужен, «openssl-libs»
Bandrami
Большое спасибо. Я оглянулся, но не смог найти что-нибудь для CentOS 6.4. Вы знаете, где искать?
user2643870 22.12.13

Ответы:

14

Основной причиной этой проблемы является то, что Red Hat нарушила двоичную совместимость своих пакетов OpenSSL между 6.4 и 6.5, что они и обещали, что не сделают .

Решить эту проблему несложно, но в зависимости от приложений, которые вы, возможно, развернули, может потребоваться крик ваших поставщиков приложений. Обязательно зарезервируйте большую часть своего гнева для своего представителя Red Hat (если у вас есть RHEL).


причина

Red Hat обновила версию OpenSSL в EL6 с 1.0.0 до 1.0.1 в обновлении 6.5 , чтобы разрешить многолетний запрос на добавление поддержки криптографии на основе эллиптических кривых. Этот пакет больше не является двоично-совместимым, и программы, созданные на основе OpenSSL 1.0.0, должны быть перестроены из исходного кода на 1.0.1.

Конечно, если вы не устанавливаете сторонние приложения, что делают почти все. Их тоже нужно перекомпилировать, и на этом этапе большинство третьих сторон сделали это и создали новые пакеты для 6.5. Именно эти пакеты обычно отправляют третьи лица сегодня.

разрешение

Определите все затронутые сторонние пакеты и обратитесь к сторонним поставщикам пакетов за обновлениями. После того как обновления станут доступны для всех пакетов, вы можете безопасно обновить систему до версии 6.5, одновременно установив обновления сторонних пакетов, что завершит разрешение.

Для пакетов, установленных через менеджер пакетов и репозитории yum, это тривиально; простая попытка обновления и возможность сделать это без проблем с зависимостями означает, что пакеты готовы.

Для пакетов, установленных вручную, вам необходимо проверить их самостоятельно и применить все обновления, предоставленные поставщиками. Вы также должны оказать давление на этих поставщиков, чтобы они поставляли надлежащие пакеты RPM и репозитории yum в этих случаях.

Большинство пользователей могут обновить до 6.5 с помощью такой команды:

yum --disableexcludes=all --obsoletes update

Пользователи RHEL, которые установили определенный вспомогательный выпуск, должны сначала установить 6.5 в качестве цели выпуска перед запуском вышеуказанного обновления:

subscription-manager release --set=6.5

На этом этапе вы сможете установить сторонние пакеты, которые вы пытались установить.


Другие вопросы

Пользователи CentOS и других клонов RHEL на определенных VPS или облачных провайдерах могут обнаружить, что они не могут обновиться до 6.5. Команда yumсообщит, что ни один пакет не помечен для обновления. До сих пор я видел это в Windows Azure и некоторых низкоуровневых VPS-провайдерах.

В этих случаях поставщик используемого образа CentOS изменился /etc/yum.repos.d/CentOS-Base.repoв образе, чтобы указывать на репозитории, отличные от официальных зеркал CentOS.

Эту проблему можно решить либо вручную отредактировав файл репо для восстановления официальных зеркал CentOS, либо найдя официальный centos-releaseRPM на зеркале CentOS и переустановив его. Например (этот URL подходит только сегодня и может устареть позже; сначала проверьте свое зеркало):

yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm
Майкл Хэмптон
источник
5

Вы можете установить PS 5.6 после обновления openssl до openssl-1.0.1e-15.el6.x86_64.rpm

Для 6.4 у нас (я работаю для Percona) также есть несколько пользовательских пакетов: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/

Роэль Ван де Паар
источник
Небольшое обновление, ссылка выше была удалена, у нас (я работаю для Percona) скоро будут доступны пакеты, которые будут работать на всех выпусках Centos 6.x, включая Centos 6.4
Roel Van de Paar
Мне нужен этот релиз :(
Бето Кастильо
Мне также это нужно, пожалуйста, дайте нам знать, когда доступно, спасибо!
Херсон