ld-elf.so.1: Shared object"libintl.so.6" not found

Andrew P. infofarmer at mail.ru
Wed Dec 15 15:43:16 PST 2004


Kris Kennaway wrote:
>>>>Starting ppp as "root"
>>>>/usr/libexec/ld-elf.so.1:
>>>>Shared object "libintl.so.6" not found
>>>><...>
>>>
>>>
>>>OK, but that's not coming from executing /usr/sbin/ppp since you've
>>>shown us that it's not in fact linked to libintl, as expected (you
>>>could also verify this by executing ppp by hand).  Can you show us
>>>your /etc/rc.conf?  Perhaps it's not running /usr/sbin/ppp but some
>>>other binary.
>>>
>>
>>Indeed, I tried to "# ldconfig -elf /usr/lib /usr/lib/compat" (so
>>that ld-elf cannot find libintl), but ppp loaded anyways. Attached
>>is my kernconf and a few rc scripts.
> 
> 
> Eek, I only asked for rc.conf, not all that other junk :)
> 
> I'm guessing that the error message is not in fact from loading ppp,
> but something else..one candidate would be sshd, which you may have
> replaced by a non-system version.  Please run ldd /usr/sbin/sshd and
> check this.
> 
> If not, then change the rc script to run with "#!/bin/sh -x" and take
> a closer look at what command is being run that returns the error.
> 

Well, I ran ldd /usr/sbin/sshd, ldd /usr/sbin/*, ldd /usr/bin/*,
ldd /sbin/*, ldd /bin/*; looked through it, grepped for 'intl'
without any instances found. Then I added two echo lines to the
rc.network script:

echo "Starting ppp as \"${ppp_user}\""
echo "JUST BEFORE - ${ppp_command}"
su -m ${ppp_user} -c "exec ${ppp_command}"
echo "JUST AFTER"

And here's what I've got after reboot:

# dmesg -a
<...>
Starting ppp as "root"
JUST BEFORE - /usr/sbin/ppp -quiet -ddial default
/usr/libexec/ld-elf.so.1:
Shared object "libintl.so.6" not found

JUST AFTER
<...>

# ldd /usr/bin/su
/usr/bin/su:
         libutil.so.3 => /usr/lib/libutil.so.3 (0x28069000)
         libskey.so.2 => /usr/lib/libskey.so.2 (0x28072000)
         libmd.so.2 => /usr/lib/libmd.so.2 (0x28079000)
         libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x28082000)
         libkrb.so.3 => /usr/lib/libkrb.so.3 (0x2809b000)
         libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x280b4000)
         libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x281ab000)
         libc.so.4 => /usr/lib/libc.so.4 (0x281ad000)

Here I almost pressed the "Send" button in my Thunderbird, but
oops. Back to the shell :-)

# man su
<...>A shell is then executed.<...>

Yep, my default shell for root is bash.

# ldd bash
bash:
         libncurses.so.5 => /usr/lib/libncurses.so.5 (0x280e0000)
         libintl.so.6 => /usr/local/lib/libintl.so.6 (0x28121000)
         libc.so.4 => /usr/lib/libc.so.4 (0x2812a000)
         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x281c3000)

So apparently I have probably changed the default shell from csh
to bash on both machines right after that portupgrade. I changed
back to sh now - and the error is gone.

The only question I have now is how come I've never read about this?
I've read the Handbook and the Complete Freebsd and literally
thousands of other pages concerning FreeBSD management. I have
never seen a warning about changing the default shell for root.
Or am I just too blind?..

Anyways, thank you Kris and Toomas for your kindest response!
Thanx!

Best wishes,
Andrew P.


More information about the freebsd-questions mailing list