none
[openafs-wiki.git] / AFSLore / HowToBuildOpenAFSFromSource.mdwn
index c33b0a9..d4a8ebf 100644 (file)
@@ -2,17 +2,33 @@ This is a guide on how to build [[OpenAFS]] from source code. Note that [[OpenAF
 
 ### <a name="Requirements"></a> Requirements
 
+Tools
+
+- cvs client
 - autoconf
 - automake
 - perl 5.6
+- gcc (versions?)
+- GNU make
+- lex/yacc (flex/bison)
 
-One of the following compiliers:
+Libraries
 
-- gcc (versions?)
+- libc
+- kerberos, optional, but recommended
+- ncurses
+- kernel headers
+
+The Kerberos development libraries are required if you are going to build with Kerberos 5 support. The [[OpenAFS]] legacy kaserver is deprecated.
+
+If you are building on Debian, you can get the required software with the following apt-get commands.
+
+      apt-get install cvs autoconf automake make gcc flex bison
+      apt-get install libc6-dev libkrb5-dev libncurses5-dev linux-headers-$(uname -r)
 
 ### <a name="Getting the Source Code from CVS"></a> Getting the Source Code from CVS
 
-You can get development snapshots from the [[OpenAFS]] CVS repository. The CVS tree may not always have code which can currently be built. While every effort is made to keep the head of the tree buildable, you may at any time find yourself between commits and hence have a tree which does not build, or worse, causes more serious problems.
+You can get development snapshots from the [[OpenAFS]] CVS repository . The CVS tree may not always have code which can currently be built. While every effort is made to keep the head of the tree buildable, you may at any time find yourself between commits and hence have a tree which does not build, or worse, causes more serious problems.
 
 First you need to run cvs login. This step is normally only done once. A ~/.cvspass file will be created for additional checkouts.
 
@@ -33,21 +49,21 @@ CVS snapshots do not include files generated by autoconf; You can run regen.sh a
 
 ### <a name="Building the Binaries"></a> Building the Binaries
 
-#### <a name="Quick Answer"></a> Quick Answer
+#### <a name="Transarc Paths"></a> Transarc Paths
+
+By convention, [[OpenAFS]] server binaries and related files are located in /usr/afs, and client binaries and related files are located in /usr/vice. These are known as Transarc paths, so called because that is is the convention used by Transarc, the company that first commercized AFS.
 
-To build [[OpenAFS]] with Kerberos 5 support and the traditional paths:
+To build [[OpenAFS]] with Kerberos 5 support and the traditional, Transarc paths:
 
        cd openafs
        ./regen.sh
-       ./configure  --enable-debug --enable-transarc-paths --with-krb5-conf=(full path to krb5-config script)
+       ./configure  --enable-transarc-paths --with-krb5-conf=(full path to krb5-config script)
        make
        make dest
 
-You will need the Kerberos development libraries to build Kerbose support.
+If all goes well, then the binaries are located in a platform sub-directory, the name of which is platform specific, for example 'i386\_linux26/dest'.
 
-### <a name="Installing the Binaries"></a> Installing the Binaries
-
-After make dest, the binaries are placed into a dest directory, under a platform directory, such as i386\_linux26.
+The 'make install' command does not work with Transarc paths. You will have to manually copy the binaries into place after running make dest. For more information, see the Quick Start Guide for Unix on the [[OpenAFS]] documentation page.
 
       # cp -r i386_linux26/dest/root.client/usr/vice/etc/modload /usr/vice/etc
       # cp i386_linux26/dest/root.client/usr/vice/etc/afsd /usr/vice/etc
@@ -57,6 +73,16 @@ After make dest, the binaries are placed into a dest directory, under a platform
       # cp -r i386_linux26/dest/lib /usr/afsws
       # cp -r i386_linux26/dest/root.server/usr/afs/* /usr/afs
 
+#### <a name="Custom Paths"></a> Custom Paths
+
+To build [[OpenAFS]] with Kerberos 5 support, and with a custom install path,
+
+       cd openafs
+       ./regen.sh
+       ./configure --prefix=/usr/local/openafs --with-krb5-conf=(full path to krb5-config script)
+       make
+       sudo make install
+
 ### <a name="Initial testing"></a> Initial testing
 
 -- [[MichaelMeffie]] - 09 Oct 2007