中治 様

小沢です。アドバイスありがとうございます。

例えば8.0-CURRENTの場合、

$ rcorder /etc/rc.d/*| egrep '(ppp|ldconfig)'
/etc/rc.d/sppp
/etc/rc.d/ppp
/etc/rc.d/ldconfig
/etc/rc.d/pppoed

ということで、/usr/local/libが利用できるのは、/etc/rc.d/ppp が実行された後
です。ですが、

6.3-RELEASE でも実行順序は同じでした。

# rcorder /etc/rc.d/*| egrep '(ppp|ldconfig)'
/etc/rc.d/sppp
/etc/rc.d/ppp
/etc/rc.d/ldconfig
/etc/rc.d/pppoed

/lib/lib*.so
/usr/lib/lib*.so
/usr/local/lib/lib*.so

で同じファイル名の共有ライブラリが混ざっている、なんてことはありませんか?

# ls -l /lib/libintl.so*
ls: /lib/libintl.so*: No such file or directory

# ls -l /usr/lib/libintl.so*
ls: /usr/lib/libintl.so*: No such file or directory

# ls -l /usr/local/lib/libintl.so
lrwxr-xr-x  1 root  wheel  12 Feb 28 11:02 /usr/local/lib/libintl.so -> 
libintl.so.8

あるいは、/etc/rc.d/ppp の

       su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
を
       /usr/bin/su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
に変更しても、事態は変わりませんか?

試してみましたが、事態は変わりませんでした。

 
----- Original Message ----- From: "NAKAJI Hiroyuki" <[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]>
To: <FreeBSD-users-jp@jp.FreeBSD.org>
Sent: Tuesday, March 25, 2008 5:23 PM
Subject: [FreeBSD-users-jp 91498] Re: システム起動時、 PPP の起動に失敗


中治@鳥取です。

In <[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]> "bsd" <[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]> wrote:

システム起動時、PPPの起動に失敗してしまいます。

Starting PPP profile: xxx のメッセージが表示された直後、

/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "su"

というメッセージが表示されているのですが、解決方法がわかりません。
アドバイスを頂けると幸いです。

libintl.so.8 は、存在しています。

# ls -l /usr/local/lib/libintl.so*
lrwxr-xr-x  1 root  wheel     12 Feb 28 11:02 /usr/local/lib/libintl.so -> 
libintl.so.8
-r--r--r--  1 root  wheel  39968 Feb 28 11:02 /usr/local/lib/libintl.so.8

システム起動時に/etc/rc.d/pppが実行される時点では、/usr/local/libにある共
有ライブラリは利用できないはずです。rcorder /etc/rc.d/* すればわかりますが、
例えば8.0-CURRENTの場合、

$ rcorder /etc/rc.d/*| egrep '(ppp|ldconfig)'
/etc/rc.d/sppp
/etc/rc.d/ppp
/etc/rc.d/ldconfig
/etc/rc.d/pppoed

ということで、/usr/local/libが利用できるのは、/etc/rc.d/ppp が実行された後
です。ですが、

# ldd -a /usr/bin/su
/usr/bin/su:
       libutil.so.5 => /lib/libutil.so.5 (0x2807c000)
       libpam.so.3 => /usr/lib/libpam.so.3 (0x28088000)
       libbsm.so.1 => /usr/lib/libbsm.so.1 (0x2808f000)
       libc.so.6 => /lib/libc.so.6 (0x280a3000)

という状況で、なぜ、suコマンドがlibintl.so.8を必要とするのかわかりません。

その後、isc-dhcp, pf, apache22, PHP5 などを入れた後、
システム起動時に PPP の起動に失敗していることに気づきました。

/lib/lib*.so
/usr/lib/lib*.so
/usr/local/lib/lib*.so

で同じファイル名の共有ライブラリが混ざっている、なんてことはありませんか?

あるいは、/etc/rc.d/ppp の

       su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
を
       /usr/bin/su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
に変更しても、事態は変わりませんか?
--
NAKAJI Hiroyuki (中治 弘行)



メールによる返信