1

when I build Apache and PHP on Arch Linux the programs becomes out dated after some updates showing messages like for example 'libicui18n.so.64: cannot open shared object file: No such file or directory' because libicui18n.so.64 is now upgraded to libicui18n.so.65, which I solve this issue by rebuilding the programs again.

My concern is there a away to link a program to library generic module like 'libicui18n.so' instead of 'libicui18n.so.64' so when upgrade the programs keep working.

  • 2
    A change in the major version of a library indicates that there are binary level interface (ABI) changes. In general it is not safe to allow objects linked with an older version of the library to run with a newer version of the library. You either need to relink with the newer version (and preferably re-test) or publish the library version as a dependency and require that version to be installed to use your application (in Linux multiple versions of a library can be installed). – kaylum Nov 25 '19 at 21:30
  • 2
    This is to a degree handled over symlinks, but this only certain versions of certain shared objects. In your case, if you would like to ensure that your program comes with stuff it needs to run (and be a bigger file and not be modular) you may want to look into statically linking (you will need a .a instead of the .so) https://stackoverflow.com/questions/725472/static-link-of-shared-library-function-in-gcc – Abel Nov 26 '19 at 00:42

0 Answers0