0

I'm trying to use rdiff-backup in order to make backup copies of some folders inside an Ubuntu 8.04LTS server.

I'm attempting to do the backup on another server with a more modern Ubuntu distro (9.10). I'll call this one the "client".

rdiff-backup needs to be installed on both the client and the server. It is available on the apt repositories on both machines, so I installed it using sudo apt-get install rdiff-backup.

The problem is that the version installed on the server is older than the one on the client (1.1.15 vs 1.2.8). Thus I get errors when I try do make them work together.

So I need both versions to be the same.

What is the standard procedure in these cases? Should I attempt to upgrade the version on the server, or downgrade the version on the client? And how whould I do that?

In case it is useful, I'd like to point out that the rdiff-backup apt-package has some dependencies - librsync1 & python-support

Attaching the errors I got in case they help:

rdiff-backup egarcia@test::/var/rails/ohwr/backup /home/kikito/backup/files
Warning: Local version 1.2.8 does not match remote version 1.1.15.
Exception '
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/var/rails/ohwr/backup']
' raised of class '<class 'rdiff_backup.Security.Violation'>':
  File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 321, in Main
    rps = map(SetConnections.cmdpair2rp, cmdpairs)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py", line 78, in cmdpair2rp
    return rpath.RPath(conn, filename).normalize()
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 884, in __init__
    else: self.setdata()
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 908, in setdata
    self.data = self.conn.rpath.make_file_dict(self.path)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
    if isinstance(result, Exception): raise result

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 30, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/Main.py", line 321, in Main
    rps = map(SetConnections.cmdpair2rp, cmdpairs)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/SetConnections.py", line 78, in cmdpair2rp
    return rpath.RPath(conn, filename).normalize()
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 884, in __init__
    else: self.setdata()
  File "/usr/lib/pymodules/python2.6/rdiff_backup/rpath.py", line 908, in setdata
    self.data = self.conn.rpath.make_file_dict(self.path)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 450, in __call__
    return apply(self.connection.reval, (self.name,) + args)
  File "/usr/lib/pymodules/python2.6/rdiff_backup/connection.py", line 370, in reval
    if isinstance(result, Exception): raise result
rdiff_backup.Security.Violation: 
Warning Security Violation!
Bad request for function: rpath.make_file_dict
with arguments: ['/var/rails/ohwr/backup']
egarcia
  • 175
  • 13

2 Answers2

2

Having experienced the same problems I created a PPA which provides a current rdiff-backup even for older Ubuntu versions.

https://launchpad.net/~rdiff-backup-pkgs/+archive/ppa/+packages

Of course, you really shouldn't install random deb files provided by strangers. Hence you might want to first take a peak at the package source files, to see how the packages differ from the original upstream source.

andol
  • 6,938
  • 29
  • 43
1

On either the client or the server, run 'aptitude search rdiff-backup'.

You may see rdiff-backup versions with specific version numbers in the package names (I get this on Debian). Uninstall the generic version and install the version with the highest number that is available on both client & server.

user38808
  • 199
  • 3
  • Thanks for your feedback. I ended up installing from source on both servers, but I guess your solution is also possible. Accepting. – egarcia May 15 '10 at 14:39