Install Netatalk 3.1.7 on Ubuntu 14.04 Trusty
Install the following packages by "sudo apt-get install".
- libevent-dev (used by netatalk(8))
- libssl-dev (DHX auth aka DHCAST128)
- libgcrypt-dev (DHX2 auth)
- libkrb5-dev (Kerberos V auth)
- libpam0g-dev (PAM)
- libwrap0-dev (TCP Wrapper)
- libdb-dev (dbd CNID backend)
- libtdb-dev (tdb CNID backend)
- libmysqlclient-dev (mysql CNID backend)
- avahi-daemon (Bonjour support)
- libavahi-client-dev (Bonjour support)
- libacl1-dev (ACL support)
- libldap2-dev (enhanced ACL support)
- libcrack2-dev (password ckeck)
- systemtap-sdt-dev (DTrace-compatible)
- libdbus-1-dev (used by afpstats command)
- libdbus-glib-1-dev (used by afpstats command)
- libglib2.0-dev (used by afpstats command)
- tracker (used for spotlight indexing)
- libtracker-sparql-0.16-dev (used for spotlight indexing) (version number may differ)
- libtracker-miner-0.16-dev (used for spotlight indexing) (version number may differ)
If tracker's version is unknown, you can know using command "aptitude search tracker".
If libavahi-compat-libdnssd-dev package is installed, remove it, in order to avoid conflict between Avahi and mDNSResponder.
Extract a tarball.
$ tar xvf netatalk-3.1.7.tar.bz2 $ cd netatalk-3.1.7
You should read the help message, in order to know configure options.
If the applicable libraries are installed, many options will be detected automatically.
$ ./configure --help
Do configure! The following options are not auto-detected.
$ ./configure \ --with-init-style=debian-sysv \ --without-libevent \ --without-tdb \ --with-cracklib \ --enable-krbV-uam \ --with-pam-confdir=/etc/pam.d \ --with-dbus-sysconf-dir=/etc/dbus-1/system.d \ --with-tracker-pkgconfig-version=0.16
If you use Ubuntu 15.04 or later, the value of "--with-init-style" option is "debian-systemd", not "debian-sysv".
The version 0.16 --with-tracker-pkgconfig-version=0.16 must match the pkg-config version of the installed Tracker libraries. Use the following commands for finding the version info:
$ pkg-config --list-all | grep tracker ...
On successful completion, you will see a report similar to the following:
Compilation summary: CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir) CFLAGS = -D_U_="__attribute__((unused))" -g -O2 LIBS = -ldl -lcrack PTHREADS: LIBS = CFLAGS = -pthread TRACKER: LIBS = -Wl,--export-dynamic -pthread -ltracker-sparql-0.16 -lgio-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 CFLAGS = -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/tracker-0.16 -I/usr/include/tracker-0.16/libtracker-sparql SSL: LIBS = -L/usr/lib64 -lcrypto CFLAGS = -I/usr/include/openssl LIBGCRYPT: LIBS = -lgcrypt CFLAGS = PAM: LIBS = -lpam CFLAGS = WRAP: LIBS = -lwrap CFLAGS = BDB: LIBS = -L/usr/lib64 -ldb-5.3 CFLAGS = GSSAPI: LIBS = -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err CFLAGS = ZEROCONF: LIBS = -lavahi-common -lavahi-client CFLAGS = -D_REENTRANT LDAP: LIBS = -lldap CFLAGS = LIBEVENT: LIBS = CFLAGS = TDB: LIBS = -ltdb CFLAGS = MySQL: LIBS = -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl CFLAGS = -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -DNDEBUG Configure summary: INIT STYLE: debian-sysv AFP: Extended Attributes: ad | sys ACL support: yes Spotlight: yes CNID: backends: dbd last tdb mysql UAMS: DHX (PAM SHADOW) DHX2 (PAM SHADOW) RANDNUM (afppasswd) Kerberos V clrtxt (PAM SHADOW) guest Options: Zeroconf support: yes tcp wrapper support: yes quota support: yes admin group support: yes valid shell check: yes cracklib support: yes ACL support: auto Kerberos support: yes LDAP support: yes AFP stats via dbus: yes dtrace probes: yes Paths: Netatalk lockfile: /var/lock/netatalk init directory: /etc/init.d dbus system directory: /etc/dbus-1/system.d pam config directory: /etc/pam.d Documentation: Docbook: no
Docbook is not needed because it is for developers only.
Make and install.
$ make $ sudo make install
Check features and paths, using "afpd -V".
$ /usr/local/sbin/afpd -V afpd 3.1.7 - Apple Filing Protocol (AFP) daemon of Netatalk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please see the file COPYING for further information and details. afpd has been compiled with support for these features: AFP versions: 2.2 3.0 3.1 3.2 3.3 3.4 CNID backends: dbd last tdb mysql Zeroconf support: Avahi TCP wrappers support: Yes Quota support: Yes Admin group support: Yes Valid shell checks: Yes cracklib support: Yes EA support: ad | sys ACL support: Yes LDAP support: Yes D-Bus support: Yes Spotlight support: Yes DTrace probes: Yes afp.conf: /usr/local/etc/afp.conf extmap.conf: /usr/local/etc/extmap.conf state directory: /usr/local/var/netatalk/ afp_signature.conf: /usr/local/var/netatalk/afp_signature.conf afp_voluuid.conf: /usr/local/var/netatalk/afp_voluuid.conf UAM search path: /usr/local/lib/netatalk// Server messages path: /usr/local/var/netatalk/msg/
[Global] [Homes] basedir regex = /home [Test Volume] path = /export/test1 [My Time Machine Volume] path = /export/timemachine time machine = yes vol size limit = 512000
It's recommended to enable extended attributes of filesystem. You can check it by "getfattr" and "setfattr" commands.
If you use ACL, you shoud check it by "getfacl" and "setfacl" commands.
If these are disabled, use "tune2fs" command or edit "/etc/fstab" file.
/dev/sdc2 /mountpoint ext4 defaults,user_xattr,acl 0 2
You should check firewall. AFP's port number is 548. Zeroconf's port number is 5353.
Enabling and Starting
The initscript is /etc/init.d/netatalk. You must run Avahi ahead of Netatalk.
$ sudo /etc/init.d/avahi-daemon start $ sudo /etc/init.d/netatalk start
$ sudo service avahi-daemon start $ sudo service netatalk start
Adding a service to default runlevels:
$ sudo update-rc.d avahi-daemon defaults $ sudo update-rc.d netatalk defaults
If you use Spotlight feature, read Spotlight section in Netatalk Manual.
Set "spotlight = yes".
Set "spotlight = no" for Time Machine's volume. The mining for sparsebundle is wasteful.
[Global] spotlight = yes [Homes] basedir regex = /home [Test Volume] path = /export/test1 [My Time Machine Volume] path = /export/timemachine time machine = yes spotlight = no vol size limit = 512000
Some problems have been reported.
- Bug#543 Spotlight cannot search in user homes and FIX: Spotlight: searching in user homes, bug #543 by hat001 · Pull Request #7 · Netatalk/Netatalk - There is still a problem with this patch.
- Ubuntu 14.04 and OpenSUSE 13.1 cannot search the string in text file - There is a problem in Tracker, not Netatalk.