8

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

  • 2
    Such things should not happen with the official repo. Just if you haven't fully updated, as partial updates are not supported by the archlinux rolling release. If it is really like this (on a fully updated system) the you should file a bug. – bvolkmer Nov 19 '15 at 13:20
6

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 chroot or container instead.

  • 1
    Me having the mix of experience between *BSD and Linux I do think twice between calling it a jail or chroot. Is not the actual name jail, and chroot the command to achieve it? Otherwise, excellent answer sir. – Rui F Ribeiro Nov 18 '15 at 13:45
  • @RuiFRibeiro I think "jail" is the common term on *BSD (and these behave differently from chroots, since they are more secure), while I think "chroot" is more commonly used on Linux. I believe the equivalent of BSD jails on Linux, security wise, would be Linux Containers. Thanks for the input. – Alexander Nov 18 '15 at 13:58
  • 1
    Thank you for your answer, that works. I should point out that I put /opt/oldlibs/ into /etc/ld.so.conf.d/R.conf. (The R.conf file is already there, with R's standard lib path in it. ) – Nick Nov 19 '15 at 13:33
0

my experience with arch linux

systemctl start mongodb give process start error

i simply hit journalctl -xe to check current log

it show missing libboost_system.so.1.64.1 (old one)

it's a sumlink i resolve it using

readlink -f /lib/libboost_system.so.1.65.1  (new one)

readlink tell me symlink point to /usr/lib/libboost_system.so.1.65.1

i extract boost-libs 1.64 from /var/cache/pacman/pkg and paste it's all /lib files to /usr/lib also skip to override old file

this resolve me breaking dependencies further work if not solve make a symlink of missing like

 ln -s /lib/libboost_system.so.1.64.1 /usr/lib/libboost_system.so.1.64.1 

experience gain

don't looking for patches always use pacman -Suy && pacman -S package_name for install anything . partial update not supported (in case of arch )

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.