I’m a relative noob to installing libraries. My system currently has an older version of the ICU library (3.8) and I want to go the latest (4.4).
Following the steps in the ICU readme.html, everything goes fine (echo $? produces all 0 for every step). And I see the libary was installed to /usr/local/lib. However the current version of the library is is installed in /usr/lib.
My questions.
1) Is there an “organzational” or some other significant difference between these two locations?
2) How can I change the install path for the new library to /usr/lib?
3) Is the library being in the wrong location the reason why when I run even the samples in the ICU directory, I get “error while loading shared libraries: libicui18n.so.44”?
Thanks all.
1) Stuff directly in
/usrbelongs to your distribution and should not be modified except via its package manager. Stuff in/usr/localbelongs to the local installation, and is for you to manage as you see fit. Thus, it is correct to put a local installation of a newer libICU in/usr/local/lib.2) You can do this by adjusting some settings when you build ICU – I can’t give you specific advice because I don’t know what build harness ICU uses. However, you should not do this, because that will overwrite the distribution’s files, which can cause arbitrarily horrible breakage.
3) Sort of. The problem is not that the library was installed in the wrong place, but that
/usr/local/libisn’t in the default search path. You can fix this two ways:temporarily for yourself with this shell command:
permanently for all users, by adding
/usr/local/libto the list in/etc/ld.so.confand then runningldconfigas root.