Chapter 2. Installation

Table of Contents

How to obtain Netatalk
Binary packages
Source packages
Compiling Netatalk
Prerequisites
Compiling Netatalk

Warning

Netatalk 2 cannot coexist with either Netatalk 1 or Netatalk 3. See the respective chapters on upgrading to get to know the differences.

How to obtain Netatalk

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

https://github.com/Netatalk/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: https://www.debian.org/distrib/packages

Various RPM packages: https://rpmfind.net/

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

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

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

Solaris package: https://www.opencsw.org/

FreeBSD ports: https://www.freebsd.org/ports/

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

OpenBSD ports:https://openports.pl

etc.

Source packages

Tarballs

Prepacked tarballs in .tar.xz and tar.bz2 format are available on the GitHub releases page.

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. Now get the source:

    $ git clone -b main https://github.com/Netatalk/netatalk.git 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.

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

    $ git pull
  4. Now cd to the netatalk directory and run ./bootstrap. This will create the configure script required in the next step.

    $ ./bootstrap

For futher information refer to the Developer Notes wiki page.

Compiling Netatalk

Prerequisites

Note

The following pieces of software are likely to have a package available for your OS distribution of choice.

Please see the Netatalk wiki docs for OS specific installation guides.

System requirements

Your system needs to meet the following requirements:

  • A C compiler, Netatalk compiles fine with gcc > 2.7.95

To be able to compile with AFP3 support, your system has to support large files (>2GB).

Note

On linux systems glibc > 2.2 is required.

Required third-party software

Netatalk makes use of Berkeley DB. At the time of writing, the following versions are supported:

  • minimum 4.6.x

  • recommended 5.3.x

Optional third-party software

Netatalk can use the following third-party software to enhance its functionality.

  • Libgcrypt (recommended) and OpenSSL

    Required for encrypted passwords. Without it, the password will be sent over the network in clear text. Libgcrypt is needed for DHX2. OpenSSL 1.x or LibreSSL is needed for the older DHCAST128 (aka DHX).

  • OpenSLP

    SLP (Service Location Protocol) is an IETF standards track protocol that provides a framework to allow networking applications to discover the existence, location, and configuration of networked services in enterprise networks.

    Mac OS 8.5 - Mac OS X 10.4 use SLP to locate AFP servers.

  • Avahi or mDNSResponder

    Mac OS X 10.2 and later prefer Bonjour (aka Zeroconf). Netatalk can advertise AFP server and Time Machine volume by using Avahi or mDNSResponder.

    Avahi is a freely-available implementation of Zeroconf. Avahi itself must be built with DBUS support ( --enable-dbus).

    Starting with Netatalk 2.2.3, mDNSResponder is also available.

  • 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.

  • 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.

  • 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.

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:

  • --enable-[systemd/redhat-sysv/suse-sysv/gentoo/debian/netbsd/macos]

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

    The --enable-systemd option is cross-platform and should work with most contemporary Linux or *BSD distributions that have adopted systemd.

  • --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.

  • --with-ssl-dir=/path/to/ssl/installation/

    In case you installed OpenSSL or LibreSSL 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] [--with-bdb=/bdb/install/path]

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).