Resolving libcrypto.so.10 and libssl.so.10 Dependency Errors When Installing Percona Server 5.6 on CentOS 6.4


27 views

When attempting to upgrade from Percona Server 5.5 to 5.6 on CentOS 6.4, you'll encounter dependency errors for libcrypto.so.10 and libssl.so.10. This stems from a fundamental OpenSSL version mismatch between RHEL/CentOS 6.4 and 6.5.

Red Hat introduced OpenSSL 1.0.1e in RHEL 6.5, which changed the binary interface. Packages built for RHEL 6.5+ expect these newer library versions, while CentOS 6.4 ships with OpenSSL 1.0.0.

# On CentOS 6.4:
$ rpm -qi openssl
Version     : 1.0.0
Release     : 20.el6_2.5

Here are three approaches to resolve this:

Option 1: Upgrade to CentOS 6.5+

The cleanest solution is upgrading your OS to a compatible version:

yum clean all
yum update
reboot

Option 2: Install Compatible OpenSSL Packages

If upgrading isn't feasible, install the newer OpenSSL packages manually:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-16.el6_5.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-devel-1.0.1e-16.el6_5.x86_64.rpm
rpm -Uvh openssl-*.rpm

Option 3: Symbolic Links Workaround

For temporary fixes (not recommended for production):

cd /usr/lib64
ln -s libcrypto.so.1.0.0 libcrypto.so.10
ln -s libssl.so.1.0.0 libssl.so.10
ldconfig

After applying any solution, verify the libraries are correctly resolved:

ldd /usr/bin/mysql | grep ssl
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f8e3a1f0000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f8e39e10000)

For development environments, consider containerization:

docker run -d \
  --name percona-server \
  -e MYSQL_ROOT_PASSWORD=secret \
  -p 3306:3306 \
  percona:5.6
  • Always test solutions in staging first
  • Document all manual changes for future reference
  • Consider migrating to supported OS versions for security
  • Backup your data before making system changes

When attempting to install Percona Server 5.6 on CentOS 6.4, you encounter dependency errors indicating missing OpenSSL libraries:

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: libssl.so.10(libssl.so.10)(64bit)

This stems from a binary compatibility break between RHEL/CentOS 6.4 and 6.5 in OpenSSL. The version in CentOS 6.4 provides:

$ rpm -q openssl
openssl-1.0.0-27.el6.x86_64

While Percona packages compiled against RHEL 6.5+ expect:

libcrypto.so.10 (OPENSSL_1.0.1)
libssl.so.10 (OPENSSL_1.0.1)

Option 1: Official Package Solution

The cleanest approach is to install the compatibility package:

yum install openssl-compat-1.0.1

If not available in your repos, add EPEL:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

Option 2: Manual Symlink Creation

For systems where package installation isn't possible:

cd /usr/lib64
ln -s libcrypto.so.1.0.0 libcrypto.so.10
ln -s libssl.so.1.0.0 libssl.so.10
ldconfig

Option 3: Full System Upgrade

The most future-proof solution:

yum update
reboot

After applying any solution, verify the libraries:

ls -l /usr/lib64/libssl.so.10
ls -l /usr/lib64/libcrypto.so.10

Check Percona installation:

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

If issues persist, examine library dependencies:

ldd $(which mysqld) | grep -E 'ssl|crypto'

For custom compiled applications, you may need to rebuild with proper OpenSSL flags:

./configure --with-ssl=/usr/include/openssl
make clean
make