diff options
Diffstat (limited to 'docs/htmldocs/compiling.html')
-rw-r--r-- | docs/htmldocs/compiling.html | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/docs/htmldocs/compiling.html b/docs/htmldocs/compiling.html deleted file mode 100644 index 836fb50bb8..0000000000 --- a/docs/htmldocs/compiling.html +++ /dev/null @@ -1,202 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 36. How to compile SAMBA</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="Appendixes.html" title="Part VI. Appendixes"><link rel="previous" href="Appendixes.html" title="Part VI. Appendixes"><link rel="next" href="Portability.html" title="Chapter 37. Portability"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 36. How to compile SAMBA</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Appendixes.html">Prev</a> </td><th width="60%" align="center">Part VI. Appendixes</th><td width="20%" align="right"> <a accesskey="n" href="Portability.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="compiling"></a>Chapter 36. How to compile SAMBA</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="othername">R.</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">The Samba Team<br></span><div class="address"><p><tt class="email"><<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>></tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="surname">Someone; Jerry perhaps?</span></h3></div></div><div><p class="pubdate"> 22 May 2001 </p></div><div><p class="pubdate"> 18 March 2003 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="compiling.html#id3008244">Access Samba source code via CVS</a></dt><dd><dl><dt><a href="compiling.html#id3008251">Introduction</a></dt><dt><a href="compiling.html#id3008280">CVS Access to samba.org</a></dt></dl></dd><dt><a href="compiling.html#id3009749">Accessing the samba sources via rsync and ftp</a></dt><dt><a href="compiling.html#id3009796">Verifying Samba's PGP signature</a></dt><dt><a href="compiling.html#id3009932">Building the Binaries</a></dt><dd><dl><dt><a href="compiling.html#id3010069">Compiling samba with Active Directory support</a></dt></dl></dd><dt><a href="compiling.html#id3010964">Starting the smbd and nmbd</a></dt><dd><dl><dt><a href="compiling.html#id3011056">Starting from inetd.conf</a></dt><dt><a href="compiling.html#id3011260">Alternative: starting it as a daemon</a></dt></dl></dd><dt><a href="compiling.html#id3011355">Common Errors</a></dt></dl></div><p> -You can obtain the samba source from the -<a href="http://samba.org/" target="_top">samba website</a>. To obtain a development version, -you can download samba from CVS or using rsync. -</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3008244"></a>Access Samba source code via CVS</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3008251"></a>Introduction</h3></div></div><div></div></div><p> -Samba is developed in an open environment. Developers use CVS -(Concurrent Versioning System) to "checkin" (also known as -"commit") new source code. Samba's various CVS branches can -be accessed via anonymous CVS using the instructions -detailed in this chapter. -</p><p> -This chapter is a modified version of the instructions found at -<a href="http://samba.org/samba/cvs.html" target="_top">http://samba.org/samba/cvs.html</a> -</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3008280"></a>CVS Access to samba.org</h3></div></div><div></div></div><p> -The machine samba.org runs a publicly accessible CVS -repository for access to the source code of several packages, -including samba, rsync, distcc, ccache and jitterbug. There are two main ways -of accessing the CVS server on this host. -</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3008295"></a>Access via CVSweb</h4></div></div><div></div></div><p> -You can access the source code via your -favourite WWW browser. This allows you to access the contents of -individual files in the repository and also to look at the revision -history and commit logs of individual files. You can also ask for a diff -listing between any two versions on the repository. -</p><p> -Use the URL : <a href="http://samba.org/cgi-bin/cvsweb" target="_top">http://samba.org/cgi-bin/cvsweb</a> -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3008326"></a>Access via cvs</h4></div></div><div></div></div><p> -You can also access the source code via a -normal cvs client. This gives you much more control over what you can -do with the repository and allows you to checkout whole source trees -and keep them up to date via normal cvs commands. This is the -preferred method of access if you are a developer and not -just a casual browser. -</p><p> -To download the latest cvs source code, point your -browser at the URL : -<a href="http://www.cyclic.com/" target="_top">http://www.cyclic.com/</a>. -and click on the 'How to get cvs' link. CVS is free software under -the GNU GPL (as is Samba). Note that there are several graphical CVS clients -which provide a graphical interface to the sometimes mundane CVS commands. -Links to theses clients are also available from the Cyclic website. -</p><p> -To gain access via anonymous cvs use the following steps. -For this example it is assumed that you want a copy of the -samba source code. For the other source code repositories -on this system just substitute the correct package name -</p><div class="procedure"><p class="title"><b>Procedure 36.1. Retrieving samba using CVS</b></p><ol type="1"><li><p> - Install a recent copy of cvs. All you really need is a - copy of the cvs client binary. - </p></li><li><p> - Run the command - </p><p> - <b class="userinput"><tt>cvs -d :pserver:cvs@samba.org:/cvsroot login</tt></b> - </p></li><li><p> - When it asks you for a password type <b class="userinput"><tt>cvs</tt></b>. - </p></li><li><p> - Run the command - </p><p> - <b class="userinput"><tt>cvs -d :pserver:cvs@samba.org:/cvsroot co samba</tt></b> - </p><p> - This will create a directory called samba containing the - latest samba source code (i.e. the HEAD tagged cvs branch). This - currently corresponds to the 3.0 development tree. - </p><p> - CVS branches other then HEAD can be obtained by using the - <tt class="option">-r</tt> and defining a tag name. A list of branch tag names - can be found on the "Development" page of the samba web site. A common - request is to obtain the latest 3.0 release code. This could be done by - using the following command: - </p><p> - <b class="userinput"><tt>cvs -d :pserver:cvs@samba.org:/cvsroot co -r SAMBA_3_0 samba</tt></b> - </p></li><li><p> - Whenever you want to merge in the latest code changes use - the following command from within the samba directory: - </p><p> - <b class="userinput"><tt>cvs update -d -P</tt></b> - </p></li></ol></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3009749"></a>Accessing the samba sources via rsync and ftp</h2></div></div><div></div></div><p> - pserver.samba.org also exports unpacked copies of most parts of the CVS - tree at <a href="ftp://pserver.samba.org/pub/unpacked" target="_top">ftp://pserver.samba.org/pub/unpacked</a> and also via anonymous rsync at - <a href="rsync://pserver.samba.org/ftp/unpacked/" target="_top">rsync://pserver.samba.org/ftp/unpacked/</a>. I recommend using rsync rather than ftp. - See <a href="http://rsync.samba.org/" target="_top">the rsync homepage</a> for more info on rsync. - </p><p> - The disadvantage of the unpacked trees is that they do not support automatic - merging of local changes like CVS does. rsync access is most convenient - for an initial install. - </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3009796"></a>Verifying Samba's PGP signature</h2></div></div><div></div></div><p> -In these days of insecurity, it's strongly recommended that you verify the PGP -signature for any source file before installing it. Even if you're not -downloading from a mirror site, verifying PGP signatures should be a -standard reflex. -</p><p> -With that said, go ahead and download the following files: -</p><pre class="screen"> -<tt class="prompt">$ </tt><b class="userinput"><tt> wget http://us1.samba.org/samba/ftp/samba-2.2.8a.tar.asc</tt></b> -<tt class="prompt">$ </tt><b class="userinput"><tt> wget http://us1.samba.org/samba/ftp/samba-pubkey.asc</tt></b> -</pre><p> -The first file is the PGP signature for the Samba source file; the other is the Samba public -PGP key itself. Import the public PGP key with: -</p><pre class="screen"> - <tt class="prompt">$ </tt><b class="userinput"><tt>gpg --import samba-pubkey.asc</tt></b> -</pre><p> -And verify the Samba source code integrity with: -</p><pre class="screen"> - <tt class="prompt">$ </tt><b class="userinput"><tt>gzip -d samba-2.2.8a.tar.gz</tt></b> - <tt class="prompt">$ </tt><b class="userinput"><tt>gpg --verify samba-2.2.8a.tar.asc</tt></b> -</pre><p> -If you receive a message like, "Good signature from Samba Distribution -Verification Key..." -then all is well. The warnings about trust relationships can be ignored. An -example of what you would not want to see would be: -</p><tt class="computeroutput"> - gpg: BAD signature from "Samba Distribution Verification Key" -</tt></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3009932"></a>Building the Binaries</h2></div></div><div></div></div><p>To do this, first run the program <b class="userinput"><tt>./configure - </tt></b> in the source directory. This should automatically - configure Samba for your operating system. If you have unusual - needs then you may wish to run</p><p><tt class="prompt">root# </tt><b class="userinput"><tt>./configure --help - </tt></b></p><p>first to see what special options you can enable. - Then executing</p><p><tt class="prompt">root# </tt><b class="userinput"><tt>make</tt></b></p><p>will create the binaries. Once it's successfully - compiled you can use </p><p><tt class="prompt">root# </tt><b class="userinput"><tt>make install</tt></b></p><p>to install the binaries and manual pages. You can - separately install the binaries and/or man pages using</p><p><tt class="prompt">root# </tt><b class="userinput"><tt>make installbin - </tt></b></p><p>and</p><p><tt class="prompt">root# </tt><b class="userinput"><tt>make installman - </tt></b></p><p>Note that if you are upgrading for a previous version - of Samba you might like to know that the old versions of - the binaries will be renamed with a ".old" extension. You - can go back to the previous version with</p><p><tt class="prompt">root# </tt><b class="userinput"><tt>make revert - </tt></b></p><p>if you find this version a disaster!</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3010069"></a>Compiling samba with Active Directory support</h3></div></div><div></div></div><p>In order to compile samba with ADS support, you need to have installed - on your system:</p><div class="itemizedlist"><ul type="disc"><li><p>the MIT kerberos development libraries - (either install from the sources or use a package). The - Heimdal libraries will not work.</p></li><li><p>the OpenLDAP development libraries.</p></li></ul></div><p>If your kerberos libraries are in a non-standard location then - remember to add the configure option - <tt class="option">--with-krb5=<i class="replaceable"><tt>DIR</tt></i></tt>.</p><p>After you run configure make sure that - <tt class="filename">include/config.h</tt> it generates contains lines like - this:</p><pre class="programlisting"> -#define HAVE_KRB5 1 -#define HAVE_LDAP 1 -</pre><p>If it doesn't then configure did not find your krb5 libraries or - your ldap libraries. Look in <tt class="filename">config.log</tt> to figure - out why and fix it.</p><div xmlns:ns100="" class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3010878"></a>Installing the required packages for Debian</h4></div></div><div></div></div><p>On Debian you need to install the following packages:</p><ns100:p> - </ns100:p><table class="simplelist" border="0" summary="Simple list"><tr><td>libkrb5-dev</td></tr><tr><td>krb5-user</td></tr></table><ns100:p> - </ns100:p></div><div xmlns:ns101="" class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3010912"></a>Installing the required packages for RedHat</h4></div></div><div></div></div><p>On RedHat this means you should have at least: </p><ns101:p> - </ns101:p><table class="simplelist" border="0" summary="Simple list"><tr><td>krb5-workstation (for kinit)</td></tr><tr><td>krb5-libs (for linking with)</td></tr><tr><td>krb5-devel (because you are compiling from source)</td></tr></table><ns101:p> - </ns101:p><p>in addition to the standard development environment.</p><p>Note that these are not standard on a RedHat install, and you may need - to get them off CD2.</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3010964"></a>Starting the <span class="application">smbd</span> and <span class="application">nmbd</span></h2></div></div><div></div></div><p>You must choose to start <span class="application">smbd</span> and <span class="application">nmbd</span> either - as daemons or from <span class="application">inetd</span>. Don't try - to do both! Either you can put them in <tt class="filename"> - inetd.conf</tt> and have them started on demand - by <span class="application">inetd</span>, or you can start them as - daemons either from the command line or in <tt class="filename"> - /etc/rc.local</tt>. See the man pages for details - on the command line options. Take particular care to read - the bit about what user you need to be in order to start - Samba. In many cases you must be root.</p><p>The main advantage of starting <span class="application">smbd</span> - and <span class="application">nmbd</span> using the recommended daemon method - is that they will respond slightly more quickly to an initial connection - request.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3011056"></a>Starting from inetd.conf</h3></div></div><div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The following will be different if - you use NIS, NIS+ or LDAP to distribute services maps.</p></div><p>Look at your <tt class="filename">/etc/services</tt>. - What is defined at port 139/tcp. If nothing is defined - then add a line like this:</p><pre class="programlisting">netbios-ssn 139/tcp</pre><p>similarly for 137/udp you should have an entry like:</p><pre class="programlisting">netbios-ns 137/udp</pre><p>Next edit your <tt class="filename">/etc/inetd.conf</tt> - and add two lines something like this:</p><pre class="programlisting"> - netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd - netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd - </pre><p>The exact syntax of <tt class="filename">/etc/inetd.conf</tt> - varies between unixes. Look at the other entries in inetd.conf - for a guide.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Some unixes already have entries like netbios_ns - (note the underscore) in <tt class="filename">/etc/services</tt>. - You must either edit <tt class="filename">/etc/services</tt> or - <tt class="filename">/etc/inetd.conf</tt> to make them consistent. - </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>On many systems you may need to use the - <i class="parameter"><tt>interfaces</tt></i> option in <tt class="filename">smb.conf</tt> to specify the IP - address and netmask of your interfaces. Run - <span class="application">ifconfig</span> - as root if you don't know what the broadcast is for your - net. <span class="application">nmbd</span> tries to determine it at run - time, but fails on some unixes. - </p></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Many unixes only accept around 5 - parameters on the command line in <tt class="filename">inetd.conf</tt>. - This means you shouldn't use spaces between the options and - arguments, or you should use a script, and start the script - from <b class="command">inetd</b>.</p></div><p>Restart <span class="application">inetd</span>, perhaps just send - it a HUP. If you have installed an earlier version of <span class="application">nmbd</span> then - you may need to kill <span class="application">nmbd</span> as well.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3011260"></a>Alternative: starting it as a daemon</h3></div></div><div></div></div><p>To start the server as a daemon you should create - a script something like this one, perhaps calling - it <tt class="filename">startsmb</tt>.</p><pre class="programlisting"> - #!/bin/sh - /usr/local/samba/bin/smbd -D - /usr/local/samba/bin/nmbd -D - </pre><p>then make it executable with <b class="command">chmod - +x startsmb</b></p><p>You can then run <b class="command">startsmb</b> by - hand or execute it from <tt class="filename">/etc/rc.local</tt> - </p><p>To kill it send a kill signal to the processes - <span class="application">nmbd</span> and <span class="application">smbd</span>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you use the SVR4 style init system then - you may like to look at the <tt class="filename">examples/svr4-startup</tt> - script to make Samba fit into that system.</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3011355"></a>Common Errors</h2></div></div><div></div></div><p>“<span class="quote"> -I'm using gcc 3 and I've compiled Samba-3 from the CVS and the -binaries are very large files (40 Mb and 20 Mb). I've the same result with -<tt class="option">--enable-shared</tt> ? -</span>” -</p><p> -The dwarf format used by GCC 3 for storing debugging symbols is very inefficient. -Strip the binaries, don't compile with -g or compile with -gstabs. -</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Appendixes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="Appendixes.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="Portability.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part VI. Appendixes </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 37. Portability</td></tr></table></div></body></html> |