Skip to content

Installing Netatalk on macOS

jwetzig edited this page Nov 9, 2024 · 6 revisions

Install the latest Netatalk

For building and installing from source yourself, find links to the official documentation below.

Introduction

Apple started to switch from AFP to SMB file sharing from Mavericks (10.9) onwards. The built-in afp server was finally removed in Big Sur (11.0) so Netatalk comes in useful if you have a modern Intel or Apple Silicon Mac and wish to share files with a vintage Mac such as a PowerMac G3 or G4 running classic Mac OS 9.

Homebrew

When installing Netatalk on Macs running Mojave (10.14) onwards the dependencies are easily installed using Homebrew. To install Homebrew, open Terminal and paste the following:

/bin/bash -c "$(curl -fsS https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Netatalk v3

Below follows the build instructions for the legacy Autotools build system. In most cases, you want to follow the instructions in the links at the top of this page instead.

Install the dependencies

brew install berkeley-db libtool automake autoconf libevent libgcrypt mysql [email protected] libressl pkg-config

Then clone the Netatalk repository and cd to that folder:

git clone https://github.com/Netatalk/netatalk.git

cd /path/to/netatalk/clone

The paths for your SSL and BDB installations can be found by typing:

brew --prefix berkeley-db

brew --prefix [email protected] or brew --prefix libressl

To compile run the following commands:

./bootstrap

./configure --with-ssl-dir=/path/to/openssl/installation --with-bdb=/path/to/bdb/installation

If ./configure fails because it can't find libevent, you may need to export the path to libevent's pkgconfig:

export PKG_CONFIG_PATH="/opt/homebrew/opt/libevent/lib/pkgconfig" (2024-11-09: recently homebrew shifted from "/opt/homebrew/...." to "/usr/local/Homebrew/....." and moved "opt" to "usr/local/" so you might want to use "/usr/local/opt/....")

make

To install:

sudo make install

Enable the launchd daemon

In case the build script didn't activate it for you, do this to make launchd to register the netatalk daemon.

sudo launchctl enable system/io.netatalk.daemon
launchctl start netatalk

Underneath the hood we use a controller script called netatalkd that sets up the required environment.

To start netatalk daemons:

sudo netatalkd start

To stop netatalk daemons:

sudo netatalkd stop
Clone this wiki locally