On most (nearly all) Distributions binaries are dynamically linked to libraries. This has some advantages in comparison to statically linked binaries.
On fixed Distributions, like Debian, the major version of libraries in one release, like Trixie, doesn’t change. So it doesn’t make a different in which point in time a binary for a specific release is build. It will always find the correct libraries.
On a rolling release Distribution, like Arch, the major version of libraries changes. Most of the time, if a libraries gets a new major version, the so called “so-name” version of a library changes. It is not always the major version, it depends on the developers of a library, but it is usually the case.
The Arch Linux website for packages lists the libraries and the so-name version the binary is linked to, for a specific version of a package.
scroll down, and click on “View the soname list for postgresql” or klick on
You will see libraries names and version numbers like libicuuc.so.78 . And your case the icu package got updated, and the soname of the library “libicuuc” changed from libicuuc.so.76 to libicuuc.so.78
After the update the libicuuc.so.76 was replaced by libicuuc.so.78 , which resulted in an error since the postgresql binary form the old packaged was build for libicuuc.so.76
And this is the reason why you on a rolling distribution always update every package at once or no package at all.
Detecting it, is quite simple, you need to know which libraries your binary is linked to, and the package name of these libraries and you need to watch for version changes of these packages.
Sometimes, just copying or linking a new library the the old name and version works. But the problem is, sometimes the new library also depends on other libraries which usually results in an big mess and the program itself will not work with the new version and result in an unpredictable outcome. I do not recommend it.
Edit: Just to be sure, do NOT hold ( IgnorePkg ... ) the packages of the libraries. This will result in a none working system. If you do this, many program will stop working.