We’ve just installed rdiff-backup on some of our older RedHat Enterprise Linux 64-bit servers. We decided to install the .tar.gz-distributions and you can build your own rpms from these source packages (I won’t cover that here). There are a few pitfalls you’ll have to avoid.
First: librsync needs to be built with the 64-bit lib directory as the standard linkage, and needs to be compiled as a shared module.
To do this, provide configure with a few hints:
./configure LDFLAGS=-L/usr/lib64 --enable-shared --enable-lib64
Then make
and make install
ldconfig to be sure that your LD cache has been updated (make install should do this, but .. just to be sure.)
The “.. can not be used when making a shared object; recompile with -fPIC” error for librsync will occur if you build it without –enable-shared, while “/usr/lib/libpopt.so: could not read symbols: File in wrong format” will occur if you build the library with the standard 32 bit libraries.
After this rdiff-backup compiled as it should:
python setup.py install
After rdiff-backup builds it python module and other small items, you might have to run ldconfig again (if you get “ImportError: librsync.so.1: cannot open shared object file: No such file or directory”, try this):
ldconfig
If you still get the above error, check that the directory where librsync was installed is present in either one of the files in /etc/ld.so.conf.d/
or in /etc/ld.so.conf
itself. After adding the path to the library directory (which by default will be /usr/local/lib
), run ldconfig
again.
rdiff-backup should now (hopefully) work as expected.