24.8.2012

# Installation

If you have previously used an older version of Netatalk, please read the chapter about upgrading first !!!

## How to obtain Netatalk

Please have a look at the netatalk page on sourceforge for the most recent informations on this issue.

http://sourceforge.net/projects/netatalk/

### Binary packages

Binary packages of Netatalk are included in some Linux and UNIX distributions. You might want to have a look at the usual locations, too.

Ubuntu package: https://launchpad.net/ubuntu

Debian package: http://packages.debian.org/

various RPM package: http://rpmfind.net/

Fedora/RHEL package: http://koji.fedoraproject.org/koji/search

Gentoo package: http://packages.gentoo.org/

openSUSE package: http://software.opensuse.org/

Solaris package: http://www.blastwave.org/

FreeBSD ports: http://www.freebsd.org/ports/index.html

NetBSD pkgsrc: http://pkgsrc.se/search.php

OpenBSD ports:http://openports.se/search.php

etc.

### Source packages

#### Tarballs

Prepacked tarballs in .tar.gz and tar.bz2 format are available on the netatalk page on sourceforge.

#### Git

Downloading the Git repository can be done quickly and easily.

1. Make sure you have Git installed. `which git` should produce a path to git.

       $> which git
       /usr/bin/git

2. If you don't have one make a source directory. `cd` to this directory.

       $> mkdir /path/to/new/source/dir
       $> cd /path/to/new/source/dir

3. Now get the source:

       $> git clone git://git.code.sf.net/p/netatalk/code netatalk-code
       Initialized empty Git repository in /path/to/new/source/dir/netatalk/.git/
       remote: Counting objects: 2503, done.
       ...

   This will create a local directory called "netatalk-code" containing a complete and fresh copy of the whole Netatalk source from the Git repository.

4. In order to keep your repository copy updated, occasionally run:

       $> git pull

5. Now `cd` to the netatalk directory and run `./bootstrap`. This will create the `configure` script required in the next step.

       $> ./bootstrap

## Compiling Netatalk

### Prerequisites

#### Required third party software

- Berkeley DB
  .

  At the time of writing, the following versions are supported:

  - minimum 4.6.x

  In case Berkeley DB is not installed on your system, please download it from:

  http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html

  and follow the installation instructions.

- Libgcrypt

  Required for OS X 10.7 and later. Libgcrypt is needed for DHX2.

  Libgcrypt can be downloaded from: http://directory.fsf.org/wiki/Libgcrypt.

#### Optional third party software

Netatalk can use the following third party software to enhance it's functionality.

- mDNSresponderPOSIX or Avahi for Bonjour (aka Zeroconf)

  Mac OS X 10.2 and later use Bonjour (aka Zeroconf) for service discovery.

  Avahi must be build with DBUS support ( `--enable-dbus`).

  You can download Avahi from: http://www.avahi.org/.

  You can download mDNSresponder from: http://opensource.apple.com/tarballs/mDNSResponder/.

- TCP wrappers

  Wietse Venema's network logger, also known as TCPD or LOG_TCP.

  Security options are: access control per host, domain and/or service; detection of host name spoofing or host address spoofing; booby traps to implement an early-warning system.

  TCP Wrappers can be downloaded from: ftp://ftp.porcupine.org/pub/security/

- PAM

  PAM provides a flexible mechanism for authenticating users. PAM was invented by SUN
  Microsystems. Linux-PAM is a suite of shared libraries that enable the local system administrator to choose how applications authenticate users.

  You can get the Linux PAM documentation and sources from http://www.kernel.org/pub/linux/libs/pam/.

- iconv

  iconv provides conversion routines for many character encodings. Netatalk uses it to provide charsets it does not have built in conversions for, like ISO-8859-1. On glibc systems, Netatalk can use the glibc provided iconv implementation. Otherwise you can use the GNU libiconv implementation.

  You can download GNU libiconv from: http://www.gnu.org/software/libiconv/.

### Compiling
Netatalk

#### Configuring the build

To build the binaries, first run the program `./configure` in the source directory. This should automatically configure Netatalk for your operating system. If you have unusual needs, then you may wish to run

    $> ./configure --help

to see what special options you can enable.

The most used configure options are:

- `--with-init-style`=redhat-sysv|redhat-systemd|suse-sysv|suse-systemd|gentoo|netbsd|debian|solaris|systemd

  This option helps netatalk to determine where to install the start scripts.

- `--with-bdb`=/path/to/bdb/installation/

  In case you installed Berkeley DB in a non-standard location, you will have to give the install location to netatalk, using this switch.

Now run configure with any options you need

    $> ./configure [arguments]

Configure will end up in an overview showing the settings the Netatalk Makefiles have been created with.

If this step fails please visit the troubleshooting guide.

Next, running

    $> make

should produce the Netatalk binaries (this step can take several minutes to complete).

When the process finished you can use

    $> make install

to install the binaries and documentation (must be done as "root" when using default locations).