Installing The Courier Unicode Library From Source
If you are upgrading from a previous Courier Mail Server version to 0.73.2 and above, or making a fresh install, you might run to the following error when executing some commands like makealiases
:
/usr/lib/libexec/courier/aliasexp: error while loading shared libraries: libunicode.so.0: cannot open shared object file: No such file or directory
The error declares that a shared library is missing and its name is libunicode
, which you can get by installing the Courier Unicode Library . This library implements several algorithms related to the Unicode Standard, and is required for Courier Mail Server version 0.73.2 and above.
To install the Courier Unicode Library from source, just download the latest version (v1.1 at the time of this protip) and (as root):
tar -xvjf courier-unicode-1.1.tar.bz2
cd courier-unicode-1.1
./configure && make && make install
The library files are now installed in /usr/local/lib
. But in order for Courier Mail Server to find and use them, their directory should be included in LD_LIBRARY_PATH
.
In Red Hat and Debian distros, you can add directories to LD_LIBRARY_PATH
by creating a new file in /etc/ld.so.conf.d/
that contains that directory. So let's vim /etc/ld.so.conf.d/locallibs.conf
and add:
/usr/local/lib
Then we have to apply changes:
ldconfig
That's it, hopefully someone finds this helpful!
Written by Tamer Shlash
Related protips
2 Responses
Thank you! :D
Yep, very helpful for me. I was struggling to get a new installation of Courier IMAP to launch when connecting on port 143, it was throwing
imapd: /usr/lib/courier-imap/sbin/imaplogin: error while loading shared libraries: libcourier-unicode.so.3: cannot open shared object file: No such file or directory
into the log file. I'd build and installed the library, but the host (Amazon Linux) didn't have /usr/local/lib in the LDLIBRARYPATH. May ways to fix this, but your one worked perfectly for me. Thanks very much