scl enable
command when building an application against a library included in the Software Collection. Failing to do so may result in the application being executed in an incorrect environment, linked against the incorrect system version of the library.
Warning
LD_LIBRARY_PATH
environment variable has not been set properly, change the major soname of the library included in the Software Collection. The recommended way to change the major soname is to prefix the major soname version number with the Software Collection name.
mysql55-
prefix:
$
rpm -ql mysql55-mysql-libs | grep 'lib.*so'
/opt/provider/mysql55/root/usr/lib64/mysql/libmysqlclient.so.mysql55-18 /opt/provider/mysql55/root/usr/lib64/mysql/libmysqlclient.so.mysql55-18.0.0
$ rpm -ql mysql-libs | grep 'lib.*so'
/usr/lib64/mysql/libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18.0.0
rpmbuild
utility generates an automatic Provides
tag for packages that include a versioned shared library. If you do not prefix the soname as described above, then an example of the Provides
in case of the mysql package is libmysqlclient.so.18()(64bit)
. With this Provides
, RPM can choose the incorrect RPM package, resulting in the application missing the requirement.
Provides
in case of mysql is libmysqlclient.so.mysql55-18()(64bit)
. With this Provides
, RPM chooses the correct RPM dependencies and the application's requirements are satisfied.