Hi all<br><br>Encountered an interesting problem installing my Xymon client on Solaris 9.<br>I have solved it, but it's interesting enough that I felt it was worth sharing with the list.<br>And maybe get some feedback on other approaches.<br>
The client was compiled on Solaris 10, so I was expecting the Solaris binary compatibility thing to make it all "just work" when I copied the client to Solaris 9.<br>But that would be too easy. :-/<br><br>Most of the binaries gave this issue.<br>
<span style="font-family:courier new,monospace">ld.so.1: /usr/local/xymon/client/bin/msgcache: fatal: <b>libresolv.so.2</b>: version `SUNW_2.2.2' not found (required by file /usr/local/xymon/client/bin/msgcache)<br>zsh: killed     /usr/local/xymon/client/bin/msgcache</span><br>
<br>Looks like <b>libresolve.so.2</b> is missing<br><br>The library is there<br><span style="font-family:courier new,monospace"># grep libresolv.so.2 /var/sadm/install/contents<br>/usr/lib/libresolv.so=./libresolv.so.2 s none SUNWcsl<br>
<b>/usr/lib/libresolv.so.2</b> f none 0755 root bin 316552 9398 1268771224 SUNWcsl<br>/usr/lib/sparcv9/libresolv.so=libresolv.so.2 s none SUNWcslx<br>/usr/lib/sparcv9/libresolv.so.2 f none 0755 root bin 385952 24889 1268771224 SUNWcslx</span><br>
<br>And we have the LD_LIBRARY_PATH set correctly.<br><span style="font-family:courier new,monospace">% echo $LD_LIBRARY_PATH<br>/opt/svrexp/dvlpr/2.2/lib:/usr/openwin/lib:<b>/usr/lib</b>:/opt/cics/lib:/opt/dcelocal/lib:/opt/encina/lib:.</span><br>
<br>So I checked to see if there was another issue, and it turns out it can see libresolv.so.2, but wants a specific version.<br><span style="font-family:courier new,monospace"># ldd /usr/local/xymon/client/bin/msgcache<br>
        libresolv.so.2 =>        /usr/lib/libresolv.so.2<br><b>        libresolv.so.2 (SUNW_2.2.2) =>   (version not found)</b><br>        libsocket.so.1 =>        /usr/lib/libsocket.so.1<br>        libnsl.so.1 =>   /usr/lib/libnsl.so.1<br>
        librt.so.1 =>    /usr/lib/librt.so.1<br>        libc.so.1 =>     /usr/lib/libc.so.1<br>        libdl.so.1 =>    /usr/lib/libdl.so.1<br>        libmp.so.2 =>    /usr/lib/libmp.so.2<br>        libaio.so.1 =>   /usr/lib/libaio.so.1<br>
        libmd5.so.1 =>   /usr/lib/libmd5.so.1<br>        /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1<br>        /usr/platform/SUNW,Sun-Fire-V240/lib/libmd5_psr.so.1</span><br><br>Then I recalled hearing about the LD_NOVERSION parameter you can set, which causes the the runtime linker to ignore version requirements.<br>
A bit of reading here also helped. <a href="http://docs.oracle.com/cd/E19963-01/html/819-0690/docinfo.html">http://docs.oracle.com/cd/E19963-01/html/819-0690/docinfo.html</a><br>I added the following 2 lines to the top of the ~/client/runclient.sh script<br>
<b><span style="font-family:courier new,monospace">LD_NOVERSION=1<br>export LD_NOVERSION</span></b><br>Restarted, and it all worked fine.<br><br>Maybe some of the programmer types can provide us with some feedback on the correctness of this approach, or even provide a better solution, but for now, it's working.<br>
<br>Regards<br>     Vernon<br clear="all"><br>-- <br><span>"Accept the challenges so that you can feel the exhilaration of victory"</span><div><span>- General George Patton</span></div>