Merge branch 'refs/heads/t/im-logo'
[dss.git] / INSTALL
1 dss is known to compile on Linux, FreeBSD and NetBSD. However, it is
2 run-tested only on Linux.
3
4 Note that [lopsub](http://people.tuebingen.mpg.de/maan/lopsub)
5 is required to compile dss.
6
7 Type
8
9                 make
10
11 in the dss source directory to build the dss executable and the man
12 page. If lopsub is installed in a non-standard path, you may need to
13 run `make` as follows:
14
15                 make CPPFLAGS=-I$HOME/lopsub/include LDFLAGS=-L$HOME/lopsub/lib
16
17 Then type
18
19                 sudo make install
20
21 to install in /usr/local, or
22
23                 make install PREFIX=/somewhere/else
24
25 to install in /somewhere/else.
26
27 Also make sure that [rsync](http://rsync.samba.org/) is installed on
28 your system. Version 2.6.1 or newer is required.
29
30 Examples:
31 ---------
32
33 Suppose you'd like to create snapshots of the existing directory
34
35                 /foo/bar
36
37 in the directory
38
39                 /baz/qux.
40
41 Create the config file
42
43                 ~/.dssrc
44
45 that contains the values for the source and the destination directories
46 as follows:
47
48                 echo 'source-dir "/foo/bar"' > ~/.dssrc
49                 echo 'dest-dir "/baz/qux"' >> ~/.dssrc
50
51 Then execute the commands
52
53                 mkdir /baz/qux
54                 dss run
55
56 In order to print the list of all snapshots created so far, use
57
58                 dss ls
59
60 Yes, it's really that easy.
61
62 The second example involves a slightly more sophisticated config file.
63 It instructs dss to exclude everything which matches at least one
64 pattern of the given exclude file, prevents rsync from crossing file
65 system boundaries and increases the number of snapshots.
66
67                 source-dir "/foo/bar"
68                 dest-dir "/baz/qux"
69                 # exclude files matching patterns in /etc/dss.exclude
70                 rsync-option "--exclude-from=/etc/dss.exclude"
71                 # don't cross filesystem boundaries
72                 rsync-option "--one-file-system"
73                 # maintain 2^6 - 1 = 63 snaphots
74                 num-intervals "6"
75
76 The /etc/dss.exclude file could look like this (see rsync(1) for
77 more examples)
78
79
80                  - /proc
81                  - /**/tmp/
82
83 Note that dss supports many more features and config options such
84 as taking snapshots from remote hosts and several hooks that are
85 executed on certain events, for example whenever a snapshot was
86 created successfully. Try
87
88                 dss -h
89
90 for an overview of all supported command line options or
91
92                 dss --detailed-help
93
94 for the full help text.