Installation/Installing Amanda Source

From The Open Source Backup Wiki (Amanda, MySQL Backup, BackupPC)
Jump to navigationJump to search

If you have different platforms, you only need to install the whole Amanda package on the tape server host (the one with tape drive). On the backup client hosts (the ones you are going to dump), you only need to compile some of the Amanda programs (See Backup client configuration).

Setup

Besides the prerequisite software that Amanda uses while running, you will need the following to compile Amanda:

  • A C99 compiler (GNU gcc or, if C99 or better, your vendor's compiler)
  • GNU Make (vendor-specific 'make' generally will not work)
  • a reasonably recent Bourne shell (most vendor shells are fine)
  • a reasonable set of shell utilities (mv, cp, rm, sed, and so on)
  • a fairly recent glib. (If glib is missing or too old, the configure script will indicate that.)
  • pkg-config
  • Bison >= 1.27
  • Flex >= 2.5.4a

Building directly from the subversion repository requires a few more tools. See Development Dependencies for more details.

When you download a source package or a snapshot, the configure script is already generated, and you can compile on a system without the autotools installed. This is recommended for everyone who is not developing Amanda. If you are compiling from a Subversion checkout, you will need to generate the configurescript. Make sure you have autoconf, automake, and libtool installed and run

./autogen

in the top level directory of the Amanda sources.

Warning

Compiling a new version of Amanda while an older version is in the linker's search path can cause problems with cross-linking between the versions, which leads to interesting but undesirable results. If your new install will completely overwrite the old install, you're usually safe; otherwise, ensure that old versions of Amanda are "out of the way" before installing a new version.

Compile time parameters

Read about the different configuration options available for building and running Amanda. To see the options, run

./configure --help

to see the available options that configure takes.

Configure command line options

  • Choose which user and group you will run the dumps under. Common choices for user are `bin' or another user specifically created for Amanda, such as `amanda'; common choices for group are `operator' or `disk'. If you do not specify --with-user=<username> and --with-group=<groupname>, configure will abort.
  • Choose the default name for your configuration, such as `csd' or `DailySet1). This name is used by the Amanda commands to choose one of multiple possible configurations. You may specify it using the --with-config=<confgname>.
  • If you want to change the compiler flags, you can do so like this:
./configure CFLAGS="-O3 -Wall" --other-options...
  • Decide where Amanda will live. You need to choose a root directory for Amanda. Let this root directory be called $prefix. Unless you change the default behavior with the appropriate command line options, Amanda will install itself as. Listed below you find the appropriate configure-option for each directory to change the location of this part of Amanda.
--sbindir=$prefix/sbin					Amanda server side programs
--libexecdir=$prefix/libexec				Amanda backup client programs
--libdir=$prefix/lib					Amanda dynamic libraries
--with-configdir=$prefix/etc/amanda			Runtime configuration files
--with-gnutar-listdir=$prefix/var/amanda/gnutar-lists	Directory for GNU-tar lists (client)
--mandir=$prefix/man					Directory for manual pages

Note that the GNU-tar listdir should be a local filesystem on each client that is going to be backed up with GNU-tar. If it really must be NFS-mounted, make sure the filesystem is exported so that the client has root access to it.

  • Decide if you are compiling Amanda on a server only or a client only platform. If you have a particular operating system that will only be a Amanda client and will never run as the master tape host, then add the --without-server option to configure. In the unlikely case that you have a particular operating system that will serve as the tape host and you do not wish to back up any machines that run this operating system, add the --without-client option to the configure options.
  • If you intend to use the client/server features, one of the --with-XXXX-security options must be selected.

Now configure Amanda. There are two ways of doing this. If you are running Amanda on a single OS, then probably the first method works better for you. If you need to support multiple platforms, then the second method will work better.

Building

  • Back at the top-level source directory, build the sources:
make

and as root

make install

Make sure that you don't build the software as root. You may want to run the first make-command as "amanda", for example. On the other hand you have to run make install as root to get the binaries installed with the proper permissions.

  • If you have built with USE_VERSION_SUFFIXES, you will want to create symlinks to the version you wish to use, eg: ln -s amdump-x.y.z amdump This is not done automatically by the install process, so that you can have multiple AMANDA versions co-existing, and choose yourself which to make the default version. The script contrib/set_prod_link.pl may save you some keystrokes.
  • Run ldconfig as root to update the paths to the recently installed shared libraries (only applicable on certain systems).

Common Problems

  • Glibc is not where ./configure expects it to be. This can also be a side effect of ./configure not finding pkg-config. Different platforms hide pkg-config in different locations. use:
PKG_CONFIG=/your/location/pkg-config ./configure

to specify your path.


Other languages: [[::Installation/Installing Amanda Source|English]] {{#ifexist: {{#if: | | {{#if: | :}}Installation/Installing Amanda Source}}/Fr |  • {{#if: |français| [[::Installation/Installing Amanda Source/Fr|français]]}}|}}

{{#ifexist: {{#if: | | {{#if: | :}}Installation/Installing Amanda Source}}/Zh-cn |  • {{#if: |中文(中国大陆)‎| [[::Installation/Installing Amanda Source/Zh-cn|中文(中国大陆)‎]]}}|}}