Library Problem
Doug Hardie
bc979 at lafn.org
Thu Nov 29 22:06:03 UTC 2012
On 29 November 2012, at 13:44, Ian Lepore wrote:
> On Thu, 2012-11-29 at 13:33 -0800, Doug Hardie wrote:
>> On 29 November 2012, at 06:01, Gary Palmer wrote:
>>
>>> On Wed, Nov 28, 2012 at 10:46:51PM -0800, Doug Hardie wrote:
>>>>
>>>> On 28 November 2012, at 20:01, Devin Teske wrote:
>>>>
>>>>>
>>>>> On Nov 28, 2012, at 7:36 PM, Doug Hardie wrote:
>>>>>
>>>>>> I have installed 4 systems from the same FreeBSD 9.1-RC3 disk. Three of them worked just fine. The last one is causing a problem. It will not look in /usr/local/lib/ for shared libraries. I did the standard install, moved in some source, compiled it and tried to run it. The library is there. On the working systems ktrace shows:
>>>>>>
>>>>>> 2259 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 2259 intro NAMI "/lib/libsermons.so"
>>>>>> 2259 intro RET access -1 errno 2 No such file or directory
>>>>>> 2259 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 2259 intro NAMI "/usr/lib/libsermons.so"
>>>>>> 2259 intro RET access -1 errno 2 No such file or directory
>>>>>> 2259 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 2259 intro NAMI "/usr/lib/compat/libsermons.so"
>>>>>> 2259 intro RET access -1 errno 2 No such file or directory
>>>>>> 2259 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 2259 intro NAMI "/usr/local/lib/libsermons.so"
>>>>>> 2259 intro RET access 0
>>>>>>
>>>>>>
>>>>>> On the failing system ktrace shows:
>>>>>>
>>>>>> 6746 intro NAMI "/lib/libsermons.so"
>>>>>> 6746 intro RET access -1 errno 2 No such file or directory
>>>>>> 6746 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 6746 intro NAMI "/usr/lib/libsermons.so"
>>>>>> 6746 intro RET access -1 errno 2 No such file or directory
>>>>>> 6746 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 6746 intro NAMI "/usr/lib/compat/libsermons.so"
>>>>>> 6746 intro RET access -1 errno 2 No such file or directory
>>>>>> 6746 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 6746 intro NAMI "/lib/libsermons.so"
>>>>>> 6746 intro RET access -1 errno 2 No such file or directory
>>>>>> 6746 intro CALL access(0x28066000,0<F_OK>)
>>>>>> 6746 intro NAMI "/usr/lib/libsermons.so"
>>>>>> 6746 intro RET access -1 errno 2 No such file or directory
>>>>>> 6746 intro CALL write(0x2,0x28060080,0x3c)
>>>>>> 6746 intro GIO fd 2 wrote 60 bytes
>>>>>> "Shared object "libsermons.so" not found, required by "intro""
>>>>>>
>>>>>>
>>>>>> It never attempts to check /usr/local/lib. I can't find any configuration item that affects that. How can this be fixed?
>>>>>>
>>>>>
>>>>> What's the value of "ldconfig_paths" in rc.conf(5)?
>>>>>
>>>>> That includes:
>>>>> /etc/rc.conf
>>>>> /etc/rc.conf.local (if it exists)
>>>>> /etc/defaults/rc.conf
>>>>>
>>>>> Here on my 9.0-R system it has the following in /etc/defaults/rc.conf:
>>>>> /usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg
>>>>
>>>>
>>>> /etc/defaults/rc.conf has:
>>>>
>>>> ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg"
>>>>
>>>>
>>>> /etc/rc.conf has nothing for ldconfig_paths.
>>>
>>> Check that /usr/local/lib doesn't have group or other write perms.
>>> ldconfig ignores directories that are group/world writable.
>>>
>>> To fix:
>>>
>>> chmod go-w /usr/local/lib
>>> sh /etc/rc.d/ldconfig start
>>
>> sermons# ll -d /usr/local/lib
>> drwxr-xr-x 4 root wheel 512 Nov 28 19:07 /usr/local/lib
>>
>>
>> I think I found the cause of the problem. A reboot corrected the issue. Apparently when ldconfig was run /usr/local/lib didn't exist. Apparently it doesn't check for that except for in ldconfig. I was not aware of ldconfig before. That explains why the reboot worked. Thanks to all who provided information.
>
> Oh. Hmm, in that case, "service ldconfig restart" probably would have
> fixed it. (Seems sorta strange to "restart" a "service" that just
> builds a table and exits.)
I am sure it would have. I suspect there are more "unexpected" services like that. There are too many services to remember, let alone understand. A Google search turned up nothing usable for me. If I could have hit on ldconfig, then the man page would have been perfectly clear…
More information about the freebsd-stable
mailing list