Installation/OS Specific Notes/Installing Amanda on Solaris

From wiki.zmanda.com
Jump to navigation Jump to search

General Notes

You may get errors running make: Assure that you use the BSD-version of make, usually /usr/ccs/bin/make. Add /usr/ccs/bin to the path before running configure.

Most recent versions of Solaris ship with GNU tools and utilities in /usr/sfw and /opt/sfw and some people prefer to install the most recent versions in /usr/local or /opt/local.

This can cause configure to get mixed signals on which version of things to use.

One simple method to avoid this is to create a small shell script where paths and options are explicitly stated.

For example, to use the Solaris versions, create an executable file called config.mine containing:

 #! /bin/bash
 
 CC=/opt/SUNWspro/bin/cc
 
 PATH=/usr/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/local/bin
 
 export CC PATH
 
 ./configure --without-ipv6 --enable-threads=solaris --disable-nls --with-group=sys --with-user=amanda \ 
--with-gnutar=/usr/local/bin/tar --with-fqdn --disable-s3-device --with-bsdtcp-security

Then do ./config.mine to invoke the script which then invokes configure with your selected options.

Specific Versions

OpenSolaris snv_134

building 3.1.1 on opensolaris snv_134 is as simple as ./configure && make && make check && pfexec make install; You must, however, install a few peculiar packages first to provide dependencies.

SUNWgnome-base-libs provides glib 2.22
developer/gnome/gettext provides pkg-config

OpenSolaris 2008.05

When making changes or additions to inetd.conf, run

inetconv -i /etc/inet/inet.conf

or you will probably see the dreaded "timeout waiting for ACK".

Solaris 10

The recommended configuration is to compile with the Sun Studio CC.

Note that Solaris 10 systems have IPv6 support in the kernel, but that the default configuration is nonfunctional. If you don't intend to use IPv6, add --without-ipv6 to your configure options. If you do intend to use IPv6, be sure that it is correctly configured before setting up Amanda.

Sun Studio cc

Assuming Sun Studio is installed in /opt/SUNWspro, add the following to PATH:

PATH="$PATH:/opt/SUNWspro/bin:/usr/ccs/bin"

If /usr/sfw/bin is in you PATH, configure will find and try to use gcc, which won't work well. If this is a problem, remove that directory from PATH, or add CC=/opt/SUNWspro/bin/cc to your ./configure line.

It's best to use the built-in version of glib (in /usr/lib), and to do so, it's easiest to not have any other versions of glib installed at the same time (e.g,. from blastwave). The S3 device also requires libcurl, which is unfortunately not available built-in. We recommend using libcurl from blastwave, and add LDFLAGS="-L/opt/csw/lib -R/opt/csw/lib" after ./configure (with the rest of the configure options). If you put it before ./configure, the script won't be able to remember the information for later.

Proceed to ./configure; make; make install as usual.

GNU gcc

For latest (2.5.3alpha, while writing this) builds, requiring glib, /usr/bin/pkg-config might not give you valid results on Solaris 10 (and earlier releases where gnome is installed). You will get errors while running ./configure, which tries to get glib config from /usr/bin/pkg-config.

To build with gcc, you'll need to install at least pkg-config, gettext and glib2. You could download them manually and install them into e.g. --prefix=/usr/local (for source packages search at freshmeat.net), or use http://blastwave.com or http://sunfreeware.com.

Then call ./configure with an explicit path for pkg-config:

./configure PKG_CONFIG=/opt/csw/bin/pkg-config --with-...

Alternately, set e.g. /usr/local/bin as the first entry in your PATH environment variable.

If that doesn't work, you can set CFLAGS and LDFLAGS appropriately on the commandline while doing ./configure. e.g.:

CFLAGS="-I/usr/local/include -I/usr/local/include/glib-2.0" LDFLAGS="-R/usr/local/lib -L/usr/local/lib" ./configure

Solaris 9

To compile on Solaris 9 set the Environment Variables:

CFLAGS='-L/usr/local/lib -R/usr/local/lib';export CFLAGS

CPPFLAGS=-I/usr/local/include;export CPPFLAGS

LDFLAGS='-L/usr/local/lib -R/usr/local/lib';export LDFLAGS

LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/sfw/lib;export LD_LIBRARY_PATH

Use the configure command:

./configure --with-user=amanda --with-group=backup --with-libraries="/usr/lib /usr/local/lib" --with-includes="/usr/include /usr/local/include /usr/local/include/readline" --without-ipv6

The --with-user and --with-group would be set to the user and group you created. The --without-ipv6 may or may not need to be used depending on whether you are have ipv6 set up.

Solaris 8

TBD

Trusted Solaris

According to Julian Stevens <[email protected]>, the format of inetd on Trusted Solaris 1.2 is a bit different. Just before the user name, you should insert the word `untrusted':

amanda dgram udp wait untrusted amuser /usr/local/libexec/amandad amandad

The patch-system script is *NOT* aware of this detail; you must fix it yourself.

Solaris 2.6

You may have compilation errors on statfs.c if you're running, on a Solaris 2.6 host, a gcc that was not build on a Solaris 2.6 host. This happens because gcc stores fixed copies of some Solaris header files on an internal directory. You must rebuild gcc if you get this kind of trouble. Note, however, that gcc 2.7.2.3 does not support Solaris 2.6, you should upgrade to 2.8.0 or higher, or egcs.

SunOS 4.x

A bug in GNU-tar 1.12 causes it to miscalculate (in fact, to misreport) the size of filesystems. A patch for GNU-tar is available in the patches directory.