Just thought I'd post my experiences with installing and running DiskSync on Debian in case anyone else is interested.
Download the DiskSync rpm:
CODE
# wget http://address.of.download/
Use alien to create a deb package (you could just use rpm in Debian, but that would bypass dpkg):
CODE
# alien --to-deb DiskSync-x.y-z.i386.rpm
Install the deb package:
CODE
# dpkg -i disksync_x.y-z_i386.deb
Follow the DiskSync install instructions, basically:
CODE
# ./install.sh
At this point the DiskSync would start, but would crash whenever I tried to access it with the Agent Console with following error:
CODE
/usr/local/BUAgent/VV: relocation error: /usr/local/BUAgent/VV: undefined symbol: __dynamic_cast_2
An quick check with ldd revealed:
CODE
# ldd -r VV
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40018000)
libdl.so.2 => /lib/libdl.so.2 (0x40045000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40049000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4005d000)
libm.so.6 => /lib/libm.so.6 (0x400a6000)
libc.so.6 => /lib/libc.so.6 (0x400c7000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
undefined symbol: __dynamic_cast_2 (./VV)
undefined symbol: __check_null_eh_spec (./VV)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40018000)
libdl.so.2 => /lib/libdl.so.2 (0x40045000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40049000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4005d000)
libm.so.6 => /lib/libm.so.6 (0x400a6000)
libc.so.6 => /lib/libc.so.6 (0x400c7000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
undefined symbol: __dynamic_cast_2 (./VV)
undefined symbol: __check_null_eh_spec (./VV)
So I grabbed an libstdc++-lib6.2.2 rpm from Red Hat and aliened it too:
CODE
alien --to-deb libstdc++-2.96-110.i386.rpm
Extracted the deb package and moved the required shared library:
CODE
dpkg -x libstdc++_2.96-111_i386.deb /tmp
mkdir /usr/local/BUAgent/lib/
mv /tmp/usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/local/BUAgent/lib/
mkdir /usr/local/BUAgent/lib/
mv /tmp/usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/local/BUAgent/lib/
To get the program to run with the Red Hat library rather than the Debian default one I created a wrapper:
CODE
#!/bin/bash
export LD_PRELOAD=/usr/local/BUAgent/lib/libstdc++-3-libc6.2-2-2.10.0.so
/usr/local/BUAgent/VVAgent -f -p /usr/local/BUAgent
export LD_PRELOAD=/usr/local/BUAgent/lib/libstdc++-3-libc6.2-2-2.10.0.so
/usr/local/BUAgent/VVAgent -f -p /usr/local/BUAgent
I used the -f option above because I run DiskSync under Daemontools rather than inittab.
And lo and behold, it works! Cool!