for you, but we don't know why. It is also missing some
probably-critical features.
- - It requires python >= 2.5, a C compiler, and an installed git version >=
- 1.5.3.1.
+ - It requires python >= 2.5, a C compiler, and an installed git
+ version >= 1.5.3.1. It also requires par2 if you want fsck to be
+ able to generate the information needed to recover from some types
+ of corruption.
- It currently only works on Linux, MacOS X >= 10.4,
NetBSD, Solaris, or Windows (with Cygwin). Patches to support
apt-get build-dep bup
- Otherwise try this (substitute python2.5-dev if you have an older
- system):
+ Otherwise try this (substitute python2.5-dev or python2.6-dev if
+ you have an older system):
- apt-get install python2.6-dev python-fuse
+ apt-get install python2.7-dev python-fuse
apt-get install python-pyxattr python-pylibacl
apt-get install linux-libc-dev
+ apt-get install acl attr
apt-get install python-tornado # optional
On CentOS (for CentOS 6, at least), this should be sufficient (run
make test
- (The tests should pass. If they don't pass for you, stop here and send
- an email to bup-list@googlegroups.com.)
+ The tests should pass. If they don't pass for you, stop here and
+ send an email to bup-list@googlegroups.com. Though if there are
+ symbolic links along the current working directory path, the tests
+ may fail. Running something like this before "make test" should
+ sidestep the problem:
+
+ cd "$(/bin/pwd)"
- You can install bup via "make install", and override the default
destination with DESTDIR and PREFIX.
make install DESTDIR=/opt/bup PREFIX=''
+ - The Python executable that bup will use is chosen by ./configure,
+ which will search for a reasonable version unless PYTHON is set in
+ the environment, in which case, bup will use that path. You can
+ see which Python executable was chosen by looking at the
+ configure output, or examining cmd/python-cmd.sh, and you can
+ change the selection by re-running ./configure.
From binary packages
--------------------
- pkgsrc (NetBSD, Dragonfly, and others)
http://pkgsrc.se/sysutils/bup
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/sysutils/bup/
+ - Arch Linux:
+ https://www.archlinux.org/packages/?sort=&q=bup
+ - Fedora:
+ https://apps.fedoraproject.org/packages/bup
Using bup
bup restore -C ./dest-2 local-etc/2013-11-23-11195/etc
- - Make a backup on a remote server (which must already have the 'bup' command
- somewhere in the server's PATH (see /etc/profile, etc/environment,
- ~/.profile, or ~/.bashrc), and be accessible via ssh.
- Make sure to replace SERVERNAME with the actual hostname of your server):
+ - Make a backup to a remote server which must already have the 'bup' command
+ somewhere in its PATH (see /etc/profile, etc/environment, ~/.profile, or
+ ~/.bashrc), and be accessible via ssh.
+ Make sure to replace SERVERNAME with the actual hostname of your server:
- ssh SERVERNAME bup init
+ bup init -r SERVERNAME:path/to/remote-bup-dir
bup index /etc
- bup save -r SERVERNAME: -n local-etc /etc
+ bup save -r SERVERNAME:path/to/remote-bup-dir -n local-etc /etc
- Restore a backup from a remote server. (FAIL: unfortunately,
unlike "bup join", "bup restore" does not yet support remote
Basically, 'bup split' reads the data on stdin (or from files specified on
the command line), breaks it into chunks using a rolling checksum (similar to
-rsync), and saves those chunks into a new git packfile. There is one git
-packfile per backup.
+rsync), and saves those chunks into a new git packfile. There is at least one
+git packfile per backup.
When deciding whether to write a particular chunk into the new packfile, bup
first checks all the other packfiles that exist to see if they already have that