Linux – How to keep two versions of the same package in archlinux

arch linuxpacman

I'm running Archlinux. Recently, one of the package named icu got updated; however, Firefox depends libicuuc.so.56, while R depends on libicuuc.so.55. How can I solve this problem?

Note: the R package was built against Intel MKL libiary, so it doesn't work on new version of dependencies. I tried to rebuild R — it still depends on the old libicuuc.so.55

Best Answer

I assume you wish to run a specific executable with the old library. Let's call the executable myprogram.

If you place libicuuc.so.55 in a different directory, for instance as /opt/oldlibs/libicuuc.so.55 it is possible to instruct myprogram to use the old library with a command like this:

LD_LIBRARY_PATH=/opt/oldlibs myprogram

The library files can be extracted from the package file (that you can probably find in /var/cache/pacman/pkg).

If this does not solve the issue for how you intend to use the application, you can consider running it in a restricted environment (using chroot) or in a container instead.

Related Question