This guide covers installing Netatalk from source on UNIX-like operating systems.
Netatalk uses the Meson build system with Ninja as the backend.
Meson only supports out-of-tree builds, and must be passed a directory to put built and generated sources into. We'll call that directory "build" here. It's recommended to create a separate build directory for each configuration you might want to use.
To build from a release tarball, download and unpack the tarball.
tar xjf netatalk-*.tar.xz # unpack the sources
cd netatalk-* # change to the toplevel directoryTo build from the Netatalk GitHub repo, make sure you have Git installed, then clone the source tree.
git clone https://github.com/netatalk/netatalk.git # clone the repository
cd netatalk # change to the repo directoryAt this point, you need to install the software dependencies for building and running Netatalk.
This list is not exhaustive, and you may need to install additional software depending on your platform and configuration. See the Compilation documentation for more details.
These are the libraries that are hard requirements for netatalk.
| Package | Details |
|---|---|
| bstring | built as subproject when shared library not found |
| iniparser | v3.1 or later |
| libevent2 OR libev | |
| libgcrypt | v1.2.3 or later |
At least one CNID backend is required for netatalk to function.
| Package | Backend | Details |
|---|---|---|
| Berkeley DB | dbd | v4.6.0 or later (often packaged as bdb or sometimes db) |
| mysql-client OR mariadb-client | mysql | |
| sqlite3 | sqlite |
In order to build netatalk from source code, the following components are required at the bare minimum.
| Package | Details |
|---|---|
| C compiler | clang or gcc are recommended |
| meson | v0.61.2 or later |
| ninja | often packaged as ninja-build |
| Package | Details |
|---|---|
| bison | or compatible Yacc parser |
| D-Bus | also used by avahi and afpstats |
| DConf | sometimes packaged as dconf-cli |
| GLib 2 | gsettings is used to determine the localsearch schema |
| flex | or compatible lexer |
| localsearch OR tracker | v3.0 or later |
| talloc | |
| tinysparql |
| Package | Details |
|---|---|
| avahi OR mDNSresponder | Zeroconf support |
| cmark OR cmark-gfm OR pandoc | generating documentation |
| cracklib and cracklib dictionary | password strength check in afppasswd |
| D-Bus daemon | afpstats support (also transient dependency for avahi and localsearch) |
| GLib 2 and GIO | afpstats support |
| Kerberos V | krbV UAM support |
| libacl | ACL support |
| libldap | LDAP support |
| libpam | PAM support |
| libtirpc OR libquota | Quota support |
| Perl | admin scripts |
| po4a | localization of documentation |
| tcpwrap | TCP wrapper support |
| UnicodeData.txt | regenerating Unicode lookup tables |
Use the meson command to compile and install Netatalk.
meson setup build # configure the build
meson compile -C build # build Netatalk
# Become root and install
sudo meson install -C build # install NetatalkTo uninstall Netatalk:
sudo ninja -C build uninstall # uninstall NetatalkTo test (requires the -Dwith-tests=true flag at configure time):
cd build && meson testWhen using Meson, to review the options which Meson chose, run:
meson configureWith additional arguments the meson setup build command can be used to
configure Netatalk according to user preference. All generic options passed to
this command take the form -Doption=value.
For example, to install Netatalk in a specific location:
meson setup build -Dprefix=/tmp/installBy default meson enables all Netatalk features if their dependencies are available. However, many features can be enabled or disabled at configure time.
If meson cannot find the some required dependencies at configure time then the user can also specify the path a library if it is installed in an unconventional location.
Please see meson_options.txt for full details of all Netatalk-specific options, and the Meson documentation for details of generic Meson options.
The Netatalk manual has further resources to aid building and installation.
- Installation chapter: detailed descriptions of each dependency
- Compilation chapter: concrete build steps for each supported operating system