In this section, we peel the daemon out of its package, and see that we can actually make it start on an Ubuntu system.
If you have an account on the RES web server, you can download res-am-6.5-0.89780.tgz
.
Unpack it:
apprentice@testbox:/tmp/res$ tar zxvf ../res-am-6.5-0.89780.tgz
Suse/Release10/x86_64/res-am-agent-6.5-0.89780.x86_64.rpm
Suse/Release10/i586/res-am-agent-6.5-0.89780.i586.rpm
RedHat/Release5/x86_64/res-am-agent-6.5-0.89780.x86_64.rpm
RedHat/Release5/i386/res-am-agent-6.5-0.89780.i386.rpm
RedHat/Release4/x86_64/res-am-agent-6.5-0.89780.x86_64.rpm
RedHat/Release4/i386/res-am-agent-6.5-0.89780.i386.rpm
AIX/ppc/res-am-agent-6.5-0.89780.aix5.3.ppc.rpm
I want this agent to run on Ubuntu Precise, and possibly on Ubuntu Lucid, both on amd64 (x86_64) architectures. So I'm going to inspect the x86_64 packages (see also ):
apprentice@testbox:/tmp/res/RedHat/Release5/x86_64$ rpm2cpio res-am-agent-6.5-0.89780.x86_64.rpm|cpio -idmv --no-absolute-filenames
./etc/init.d/resamad
./etc/res
./usr/local/bin/resamad
951 blocks
apprentice@testbox:/tmp/res/RedHat/Release5/x86_64$ ldd usr/local/bin/resamad
linux-vdso.so.1 => (0x00007fff8a9fb000)
libssl.so.6 => not found
libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f57183d0000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f5718196000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5717f79000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5717d62000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f5717b5c000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f571785c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5717562000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f571734b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5716f8e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5716d8a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5718733000)
As you can see in the previous step, only libssl.so.6 is not accounted for.
But my colleague Eite Tiesinga tells me that on Red Hat systems, libssl.so.6
is part of the package openssl 0.9.8e
.
Although there are tools, like patchelf or the ELF toolchain, to rewrite ELF binaries to some extent, I see no way to make it use another soname for libssl.
So I'll just fake libssl.so.6
:
apprentice@testbox:/tmp/res/RedHat/Release5/x86_64$ sudo ln -s libssl.so.0.9.8 /lib/x86_64-linux-gnu/libssl.so.6
Note | |
---|---|
The people at RES are quite cooperative. They were kind enough to send me a binary compiled on Debian, so the libssl hack is not necessary any more. |
apprentice@testbox:/tmp/res/RedHat/Release5/x86_64$ ./usr/local/bin/resamad
No Agent Configuration file found
There, it started!