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


7 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