Multiple versions of glib
I have an older version of glib that all applications are compiled against and use. I need to install a new application that requires a newer version of glib to compile and run. I installed the new version of glib in a separate folder (without uninstalling the older version) and am able to compile the new application (using pkg-config
). The compilation script uses a linker flag like -lglib-2.0
to link against the library.
However, I am not sure of the best way to have the two libraries together so that they can be used by their applications that need them. Setting LD_LIBRARY_PATH
to point to the location of the new library breaks the old applications.
I could set LD_LIBRARY_PATH
everytime the new application runs to point to the new glib path (through an sh
script for example), but I am wondering if there's a better way.
Try changing the compile script to specify -rpath=
with the directory containing the old libraries. The rpath will be embedded into the actual compiled binaries.
(It is even possible for the rpath to contain certain expansions like \$ORIGIN/../lib
if you want it to be relative to the binary's location.)
However, in practice a shellscript wrapper that sets LD_LIBRARY_PATH is indeed common for binary-distributed software (the kind that usually goes in /opt).