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
- other platforms are welcome.
+ - It currently only works on Linux, FreeBSD, NetBSD, OS X >= 10.4,
+ Solaris, or Windows (with Cygwin). Patches to support other
+ platforms are welcome.
- Any items in "Things that are stupid" below.
-
+
+Notable changes introduced by a release
+=======================================
+
+ - <a href="note/0.28.1-from-0.28.md">Changes in 0.28.1 as compared to 0.28</a>
+ - <a href="note/0.28-from-0.27.1.md">Changes in 0.28 as compared to 0.27.1</a>
+ - <a href="note/0.27.1-from-0.27.md">Changes in 0.27.1 as compared to 0.27</a>
+
+
Getting started
===============
-
From source
-----------
git clone git://github.com/bup/bup
- - Install the needed python libraries (including the development
+ - Install the required python libraries (including the development
libraries).
- On Debian/Ubuntu this is usually sufficient (run as root):
+ On very recent Debian/Ubuntu versions, this may be sufficient (run
+ as root):
+
+ apt-get build-dep bup
+
+ Otherwise try this (substitute python2.6-dev or python2.5-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
-
- Substitute python2.5-dev if you have an older system. Alternately,
- on newer Debian/Ubuntu versions, you can try this:
-
- apt-get build-dep bup
+ apt-get install acl attr
+ apt-get install python-tornado # optional
On CentOS (for CentOS 6, at least), this should be sufficient (run
as root):
On Cygwin, install python, make, rsync, and gcc4.
+ If you would like to use the optional bup web server on systems
+ without a tornado package, you may want to try this:
+
+ pip install tornado
+
- Build the python module and symlinks:
make
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
give the continuous-backup process a really low CPU and I/O priority so
you wouldn't even know it was running.
- - bup currently has no way to prune *old* backups.
-
- Because of the way the packfile system works, backups become "entangled"
- in weird ways and it's not actually possible to delete one pack
- (corresponding approximately to one backup) without risking screwing up
- other backups.
-
- git itself has lots of ways of optimizing this sort of thing, but its
- methods aren't really applicable here; bup packfiles are just too huge.
- We'll have to do it in a totally different way. There are lots of
- options. For now: make sure you've got lots of disk space :)
+ - bup only has experimental support for pruning old backups.
- Until we fix this, one possible workaround is to just start a new
- BUP_DIR occasionally, i.e. bup-2013-10, bup-2013-11...
+ While you should now be able to drop old saves and branches with
+ `bup rm`, and reclaim the space occupied by data that's no longer
+ needed by other backups with `bup gc`, these commands are
+ experimental, and should be handled with great care. See the
+ man pages for more information.
- - bup has never been tested on anything but Linux, MacOS, and Windows+Cygwin.
+ Unless you want to help test the new commands, one possible
+ workaround is to just start a new BUP_DIR occasionally,
+ i.e. bup-2013, bup-2014...
+
+ - bup has never been tested on anything but Linux, FreeBSD, NetBSD,
+ OS X, and Windows+Cygwin.
There's nothing that makes it *inherently* non-portable, though, so
that's mostly a matter of someone putting in some effort. (For a
- bup has no GUI.
- Actually, that's not stupid, but you might consider it a limitation.
- There are a bunch of Linux GUI backup programs; someday I expect someone
- will adapt one of them to use bup.
-
+ Actually, that's not stupid, but you might consider it a
+ limitation. See the ["Related Projects"](https://bup.github.io/)
+ list for some possible options.
More Documentation
==================