1<?xml version="1.0" encoding="UTF-8"?>
2<chapter id="installation">
3  <chapterinfo>
4    <date>24.8.2012</date>
5  </chapterinfo>
6
7  <title>Installation</title>
8
9  <warning>
10    <para>If you have previously used an older version of Netatalk, please
11    read the chapter about <link linkend="upgrade">upgrading</link> first
12    !!!</para>
13  </warning>
14
15  <para></para>
16
17  <sect1>
18    <title>How to obtain Netatalk</title>
19
20    <para>Please have a look at the netatalk page on sourceforge for the most
21    recent informations on this issue.</para>
22
23    <para><ulink
24    url="http://sourceforge.net/projects/netatalk/">http://sourceforge.net/projects/netatalk/</ulink></para>
25
26    <sect2>
27      <title>Binary packages</title>
28
29      <para>Binary packages of Netatalk are included in some Linux and UNIX
30      distributions. You might want to have a look at the usual locations,
31      too.</para>
32
33      <para>Ubuntu package: <ulink
34      url="https://launchpad.net/ubuntu">https://launchpad.net/ubuntu
35      </ulink></para>
36
37      <para>Debian package: <ulink
38      url="http://packages.debian.org/">http://packages.debian.org/
39      </ulink></para>
40
41      <para>various RPM package: <ulink
42      url="http://rpmfind.net/">http://rpmfind.net/ </ulink></para>
43
44      <para>Fedora/RHEL package: <ulink
45      url="http://koji.fedoraproject.org/koji/search">http://koji.fedoraproject.org/koji/search
46      </ulink></para>
47
48      <para>Gentoo package: <ulink
49      url="http://packages.gentoo.org/">http://packages.gentoo.org/
50      </ulink></para>
51
52      <para>openSUSE package: <ulink
53      url="http://software.opensuse.org/">http://software.opensuse.org/
54      </ulink></para>
55
56      <para>Solaris package: <ulink
57      url="http://www.blastwave.org/">http://www.blastwave.org/
58      </ulink></para>
59
60      <para>FreeBSD ports: <ulink
61      url="http://www.freebsd.org/ports/index.html">http://www.freebsd.org/ports/index.html
62      </ulink></para>
63
64      <para>NetBSD pkgsrc: <ulink
65      url="http://pkgsrc.se/search.php">http://pkgsrc.se/search.php
66      </ulink></para>
67
68      <para>OpenBSD ports:<ulink
69      url="http://openports.se/search.php">http://openports.se/search.php
70      </ulink></para>
71
72      <para>etc.<indexterm>
73          <primary>RPM</primary>
74
75          <secondary>Red Hat Package Manager package</secondary>
76        </indexterm><indexterm>
77          <primary>Deb</primary>
78
79          <secondary>Debian package</secondary>
80        </indexterm><indexterm>
81          <primary>Ports</primary>
82
83          <secondary>FreeBSD port</secondary>
84        </indexterm></para>
85    </sect2>
86
87    <sect2>
88      <title>Source packages</title>
89
90      <sect3>
91        <title>Tarballs</title>
92
93        <para>Prepacked tarballs in .tar.gz and tar.bz2 format are available
94        on the netatalk page on <ulink
95        url="http://netatalk.sourceforge.net/">sourceforge</ulink>.</para>
96      </sect3>
97
98      <sect3>
99        <title>Git</title>
100
101        <para>Downloading the Git repository can be done quickly and
102        easily.</para>
103
104        <orderedlist>
105          <listitem>
106            <para>Make sure you have Git installed. <command>which
107            git</command> should produce a path to git.</para>
108
109            <screen><prompt>$&gt;</prompt> <userinput>which git</userinput>
110<computeroutput>/usr/bin/git</computeroutput></screen>
111          </listitem>
112
113          <listitem>
114            <para>If you don't have one make a source directory.
115            <command>cd</command> to this directory.</para>
116
117            <screen><prompt>$&gt;</prompt> <userinput>mkdir /path/to/new/source/dir</userinput>
118<prompt>$&gt;</prompt> <userinput>cd /path/to/new/source/dir</userinput></screen>
119          </listitem>
120
121          <listitem>
122            <para>Now get the source:</para>
123
124            <screen><prompt>$&gt;</prompt> <userinput>git clone git://git.code.sf.net/p/netatalk/code netatalk-code
125</userinput><computeroutput>Initialized empty Git repository in /path/to/new/source/dir/netatalk/.git/
126remote: Counting objects: 2503, done.
127...
128</computeroutput></screen>
129
130            <para>This will create a local directory called "netatalk-code"
131            containing a complete and fresh copy of the whole Netatalk source
132            from the Git repository.</para>
133          </listitem>
134
135          <listitem>
136            <para>In order to keep your repository copy updated, occasionally
137            run:</para>
138
139            <screen><prompt>$&gt;</prompt> <userinput>git pull</userinput></screen>
140          </listitem>
141
142          <listitem>
143            <para>Now <command>cd</command> to the netatalk directory and run
144            <command>./bootstrap</command>. This will create the
145            <filename>configure</filename> script required in the next
146            step.</para>
147
148            <screen><prompt>$&gt;</prompt> <userinput>./bootstrap</userinput></screen>
149          </listitem>
150        </orderedlist>
151
152        <para></para>
153      </sect3>
154    </sect2>
155  </sect1>
156
157  <sect1>
158    <title>Compiling Netatalk</title>
159
160    <sect2>
161      <title>Prerequisites</title>
162
163      <sect3>
164        <title>Required third party software</title>
165
166        <itemizedlist>
167          <listitem>
168            <para>Berkeley DB<indexterm>
169                <primary>BDB</primary>
170
171                <secondary>Berkeley DB</secondary>
172              </indexterm>.</para>
173
174            <para>At the time of writing, the following versions are
175            supported:</para>
176
177            <itemizedlist>
178              <listitem>
179                <para>minimum 4.6.x</para>
180              </listitem>
181            </itemizedlist>
182
183            <para>In case Berkeley DB is not installed on your system, please
184            download it from:</para>
185
186            <para><ulink
187            url="http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html">
188            http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html</ulink></para>
189
190            <para>and follow the <link linkend="build-bdb">installation
191            instructions</link>.</para>
192          </listitem>
193
194          <listitem>
195            <para>Libgcrypt</para>
196
197            <para>Required for OS X 10.7 and later. Libgcrypt is needed for
198            DHX2.</para>
199
200            <para>Libgcrypt can be downloaded from: <ulink
201            url="http://directory.fsf.org/wiki/Libgcrypt">
202            http://directory.fsf.org/wiki/Libgcrypt</ulink>.</para>
203          </listitem>
204        </itemizedlist>
205      </sect3>
206
207      <sect3>
208        <title>Optional third party software</title>
209
210        <para>Netatalk can use the following third party software to enhance
211        it's functionality.</para>
212
213        <itemizedlist>
214          <listitem>
215            <para>mDNSresponderPOSIX or Avahi for Bonjour (aka
216            Zeroconf)</para>
217
218            <para>Mac OS X 10.2 and later use Bonjour (aka Zeroconf) for
219            service discovery.</para>
220
221            <para>Avahi must be build with DBUS support (
222            <userinput>--enable-dbus</userinput>).</para>
223
224            <para>You can download Avahi from: <ulink
225            url="http://www.avahi.org/">http://www.avahi.org/</ulink>.</para>
226
227            <para>You can download mDNSresponder from: <ulink
228            url="http://opensource.apple.com/tarballs/mDNSResponder/">http://opensource.apple.com/tarballs/mDNSResponder/</ulink>.</para>
229          </listitem>
230
231          <listitem>
232            <para>TCP wrappers</para>
233
234            <para>Wietse Venema's network logger, also known as TCPD or
235            LOG_TCP.</para>
236
237            <para>Security options are: access control per host, domain and/or
238            service; detection of host name spoofing or host address spoofing;
239            booby traps to implement an early-warning system.</para>
240
241            <para>TCP Wrappers can be downloaded from: <ulink
242            url="ftp://ftp.porcupine.org/pub/security">ftp://ftp.porcupine.org/pub/security</ulink>/</para>
243          </listitem>
244
245          <listitem>
246            <para>PAM<indexterm>
247                <primary>PAM</primary>
248
249                <secondary>Pluggable Authentication Modules</secondary>
250              </indexterm></para>
251
252            <para>PAM provides a flexible mechanism for authenticating users.
253            PAM was invented by SUN<indexterm>
254                <primary>SUN</primary>
255
256                <secondary>Sun Microsystems</secondary>
257              </indexterm> Microsystems. Linux-PAM is a suite of shared
258            libraries that enable the local system administrator to choose how
259            applications authenticate users.</para>
260
261            <para>You can get the Linux PAM documentation and sources from
262            <ulink
263            url="http://www.kernel.org/pub/linux/libs/pam/">http://www.kernel.org/pub/linux/libs/pam/</ulink>.</para>
264          </listitem>
265
266          <listitem>
267            <para>iconv</para>
268
269            <para>iconv provides conversion routines for many character
270            encodings. Netatalk uses it to provide charsets it does not have
271            built in conversions for, like ISO-8859-1. On glibc systems,
272            Netatalk can use the glibc provided iconv implementation.
273            Otherwise you can use the GNU libiconv implementation.</para>
274
275            <para>You can download GNU libiconv from: <olink><ulink
276            url="http://www.gnu.org/software/libiconv/">http://www.gnu.org/software/libiconv/</ulink></olink>.</para>
277          </listitem>
278        </itemizedlist>
279      </sect3>
280    </sect2>
281
282    <sect2 id="compiling-netatalk">
283      <title>Compiling<indexterm>
284          <primary>Compile</primary>
285
286          <secondary>Compiling Netatalk from Source</secondary>
287        </indexterm> Netatalk</title>
288
289      <sect3>
290        <title>Configuring the build</title>
291
292        <para>To build the binaries, first run the program
293        <command>./configure</command> in the source directory. This should
294        automatically configure Netatalk for your operating system. If you
295        have unusual needs, then you may wish to run</para>
296
297        <screen>$&gt; <userinput>./configure --help</userinput></screen>
298
299        <para>to see what special options you can enable.</para>
300
301        <para>The most used configure options are:</para>
302
303        <itemizedlist>
304          <listitem>
305            <para><option>--with-init-style</option>=redhat-sysv|redhat-systemd|suse-sysv|suse-systemd|gentoo|netbsd|debian|solaris|systemd</para>
306
307            <para>This option helps netatalk to determine where to install the
308            start scripts.</para>
309          </listitem>
310
311          <listitem>
312            <para><option>--with-bdb</option>=<replaceable>/path/to/bdb/installation/</replaceable></para>
313
314            <para>In case you installed Berkeley DB in a non-standard
315            location, you will <emphasis>have</emphasis> to give the install
316            location to netatalk, using this switch.</para>
317          </listitem>
318        </itemizedlist>
319
320        <para>Now run configure with any options you need</para>
321
322        <screen><prompt>$&gt;</prompt> <userinput>./configure [arguments]</userinput></screen>
323
324        <para>Configure will end up in an overview showing the settings the
325        Netatalk Makefiles have been created with.</para>
326
327        <para>If this step fails please visit the <ulink
328        url="http://netatalk.sourceforge.net/wiki/index.php/Troubleshooting">troubleshooting
329        guide</ulink>.</para>
330
331        <para>Next, running</para>
332
333        <screen><prompt>$&gt;</prompt> <userinput>make</userinput></screen>
334
335        <para>should produce the Netatalk binaries (this step can take several
336        minutes to complete).</para>
337
338        <para>When the process finished you can use</para>
339
340        <screen><prompt>$&gt;</prompt> <userinput>make install</userinput></screen>
341
342        <para>to install the binaries and documentation (must be done as
343        "root" when using default locations).</para>
344      </sect3>
345    </sect2>
346  </sect1>
347</chapter>
348