Setting LD_PRELOAD for a port
bf1783 at googlemail.com
Mon Jan 25 08:36:43 UTC 2010
>How does one cleanly set a LD_PRELOAD environment variable for a port?
>I tried it in /etc/rc.conf:
>(FreeRADIUS 2.1.6 with rlm_perl otherwise fails to start under perl
>5.8.8 due to some unresolved dependency. (And I can't use Perl 5.8.9
>because rlm_perl then just segfaults.) Older FreeRADIUS 2.1.3 w/ Perl
>5.8.8 works fine without requiring any LD_* workarounds though.)
># /usr/local/etc/rc.d/radiusd start
>/usr/local/etc/rc.d/radiusd: WARNING: no shebang line in /usr/bin/env
>[: /usr/bin/env: unexpected operator
>The daemon does start, but I can't "stop" it later, and "status" shows
>that it isn't running.
>So I only have to hardcode it in /usr/local/etc/rc.d/radiusd?
This is ugly, ugly, ugly. You should talk to the port maintainer and
try to determine the problem with the PERL option in the port. It
simply says USE_PERL=yes in the port Makefile, which suggests that
5.8.9 should work. If you want to take a chance on this ugly hack,
you can use libmap.conf(5) with a constraint to substitute the older
libperl.so only for the binaries that are broken. But will these
binaries still attempt to use other perl libraries or binary
executables that are associated with another perl version? Look out.
More information about the freebsd-ports