Table of Contents
Netatalk 2 cannot coexist with either Netatalk 1 or Netatalk 3. See the upgrading chapter in this manual if you want to migrate a Netatalk 1 installation to Netatalk 2.
Please have a look at the Netatalk homepage for the most up to date information on where to find the latest version of the software.
https://github.com/Netatalk/netatalk
Binary packages of Netatalk are included in the package repositories of some Linux and BSD distributions. Installing Netatalk through this channel will give you the most seamless experience, with managed updates when new package versions are available.
You might also want to have a look at 3rd party package repositories for your operating system, such as OpenCSW for Solaris and its descendants, and Homebrew or MacPorts for macOS.
Prepackaged tarballs with stable releases of the Netatalk source code are available on the Netatalk releases page on GitHub.
Downloading the Git repository can be done quickly and easily:
Make sure you have Git installed. which git should produce a path to git.
$
which git
/usr/bin/git
Now get the source:
$
git clone https://github.com/Netatalk/netatalk.git netatalk-code
Cloning into 'netatalk-code'... remote: Enumerating objects: 41592, done. ... Resolving deltas: 100% (32227/32227), done.
This will create a local directory called
netatalk-code
containing a complete and fresh
copy of the whole Netatalk source tree from the Git
repository.
If you don't specify a branch or tag, you will get the bleeding edge development code. In order to get the latest stable Netatalk 2.4 code, for instance, check out the branch named "branch-netatalk-2-4":
$
git checkout branch-netatalk-2-4
In order to keep your repository copy updated, occasionally run:
$
git pull
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.
Your system needs to meet the following requirements:
A C compiler: Netatalk compiles fine with gcc > 2.7.95 or later.
To be able to compile with AFP3 support, your system has to support large files (>2GB).
On linux systems glibc > 2.2 is required.
At the time of writing you need at least version 4.6.
The recommended version is 5.3, which was the final release under the permissive Sleepycat license, which means that this is what most FLOSS operating systems are distributing.
Libgcrypt
The Libgcrypt library enables the DHX2 UAM, which is required to authenticate with OS X 10.7 and later.
Netatalk can use the following third-party software to enhance its functionality.
OpenSSL
OpenSSL 1.x or LibreSSL is needed for the older DHCAST128 (a.k.a. DHX) UAM, which provides the strongest password encryption for Classic Mac OS. The older Random Number UAMs uses this library, too.
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 servers and Time Machine volumes 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 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.
Kerberos V
Kerberos v5 is a client-server based authentication protocol invented at the Massachusetts Institute of Technology. With the Kerberos library, netatalk can produce the GSS UAM library for authentication with existing Kerberos infrastructure.
ACL and LDAP
LDAP is an open and industry-standard user directory protocol that works in tandem with the advanced permissions scheme of ACL. On some operating systems ACL and LDAP libraries are built in to the system, while on others you have to install supporting packages to enable this functionality. At least OpenLDAP 2.3 or later is required.
CUPS
When building the optional papd print server, CUPS can provide the ability to create printing queues for modern network printers that are AirPrint compatible.
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.
CrackLib
When using the Random Number UAMs and netatalk's own
afppasswd
password manager, CrackLib can
help protect against setting weak passwords for authentication
with netatalk.
quota or libtirpc
Either of these libraries can provide the ability to limit the disk usage per system user, which is controlled at the file system level.
Perl
Administrative utilities such as
apple_dump
,
asip-status
and
macusers
rely on the Perl runtime, version
5.8 or later. Additionally, the
IO::Socket::IP module is required by
asip-status.
DocBook XSL and xsltproc
The netatalk documentation (such as this manual) are authored in XML format, and then styled with DocBook XSL stylesheets. We rely on xsltproc to transcode the XML to other human-readable formats.
Instructions on how to use the build system are documented in the INSTALL file in the Netatalk source tree.
For examples of concrete steps to compile on specific operating systems, refer to the Compile Netatalk from Source appendix in this manual, which is automatically generated from the CI build scripts.
The Netatalk distribution comes with several operating system specific startup script templates that are tailored according to the options given to the build system before compiling. Currently, templates are provided for popular Linux distributions, BSD variants, Solaris descendants, and macOS.
When building from source, you can configure the build system to
install the generated startup script(s) you want by specifying an init-style
option. For the specific syntax, please refer to the build system's help
text.
Some of the non-systemd scripts can be further parametrized by the configuration file netatalk.conf (described in the netatalk.conf(5) manual page), some obtain that information in another, operating system specific way (like NetBSD, Debian and so on).
If you use the cross-platform systemd
option, there
is no need to specify the system type. Also, the
netatalk.conf
configuration file is not
used by systemd unit configurations.
Since new releases of Linux distributions appear all the time and the startup procedure for the other systems mentioned above might change as well, it is probably a good idea to not blindly install a startup script but to confirm first that it will work on your system.
If you use Netatalk as part of a fixed setup, like a Linux distribution, an RPM or a BSD package, things will probably have been arranged properly for you. The previous paragraphs therefore apply mostly for people who have compiled Netatalk themselves.
The following daemons need to be started by whatever startup script mechanism is used:
Additionally, make sure that the various configuration files
(afpd.conf
,
AppleVolumes.default
, papd.conf
etc.) are in the right place and that
netatalk.conf
(if used) contains the right entries. If you want e.g. papd
to be started using this mechanism, set the environment variable
"PAPD_RUN
" to "yes" in netatalk.conf. You can inquire netatalk where
it is expecting the configuration files to be by running the
afpd -V
command.