著者: Brian Candler 日付: To: Craig Jackson CC: exim-users 題目: Re: [exim] message frozen manualroute
On Tue, Apr 26, 2005 at 09:56:02PM -0500, Craig Jackson wrote: > However, running with -d was very helpful. Message was: could not find
> libmysqlclient library. It gave me this message at start up, but I fixed
> by setting LD_LIBRARY_PATH=/path/to/mysqllibs. Mysql lookups work very
> well in the acl section. Also, I compiled Exim with Mysql -- no trouble.
> Why can it not find the libs?
>
> Mysql is 4.1.11.
> Exim is 4.50 with exiscan.
> Platform is Ubuntu on amd64 (64bit) both of which I am new to.
Never heard of Ubuntu, I presume it is a flavour of Unix.
You need to either:
(1) Build your Exim binary such that it knows where to find the library at
run time. The usual way to do this is to set
LD_RUN_PATH=/path/to/mysqllibs
in the environment before building. (At least, this works if you are using
GNU gcc and binutils)
(2) Alternatively, you can configure your Unix loader so that
/path/to/mysqllibs is in your permanent library path.
For Solaris: See "man crle"
For FreeBSD: See "man ldconfig"
For Linux: I think it goes in /etc/ld.so.conf (it's been a while since I
used Linux)
Otherwise, as you've found, the library won't be found unless you set the
LD_LIBRARY_PATH environment variable at runtime, and to be sure this always
happens you'd need always to start exim from a script, which is annoying.
And then, when Exim re-execs itself, I'm not sure if this environment
variable is kept or not, so it's a dangerous way to work anyway.