tridge@samba.org, December 2004
+A more up to date version of this howto can be found in the wiki
+at http://wiki.samba.org/index.php/Samba4/HOWTO.
+
This is a very basic document on how to setup a simple Samba4
server. This is aimed at developers who are already familiar with
Samba3 and wish to participate in Samba4 development. This is not
both methods will create a directory called "samba4" in the current
directory. If you don't have rsync or svn then install one of them.
+Since only released versions of Samba contain a pregenerated configure script,
+you will have to generate it by hand:
+
+ $ cd samba4/source
+ $ ./autogen.sh
+
Note that the above rsync command will give you a checked out svn
repository. So if you also have svn you can update it to the latest
version at some future date using:
$ cd samba4
$ svn up
-Step 1a: Use Lorikeet/Heimdal
------------------------------
-
-If you want to use Kerberos in Samba4, you must use
-'Lorikeet/heimdal', and place a checkout into samba4/source/heimdal
-
-There are 2 methods of doing this:
-
- method 1:
- $ cd samba4/source
- $ rsync -avz samba.org::ftp/unpacked/lorikeet-heimdal heimdal
-
- method 2:
-
- $ cd samba4/source
- $ svn co svn://svnanon.samba.org/lorikeet/trunk/heimdal heimdal
-
-both methods will create a directory called "heimdal" in the samba4/source
-directory.
-
-(Long-term, we will either import Heimdal from 'lorikeet', or setup a
-reference between the repositories, so this and svn update works
-automaticly. In the short term, you must manually update this directory).
-
Step 2: compile Samba4
----------------------
+Recommended optional development libraries:
+- acl and xattr development libraries
+- gnutls
+- readline
+
Run this:
$ cd samba4/source
- $ ./autogen.sh
- $ ./configure.developer -C
-
-If you did not include heimdal, run this:
- $ make
+ $ ./configure
+ $ make proto all
-If you did include Heimdal, a different step is required:
- $ make HEIMDAL_EXTERNAL all
-
-If you have gcc 3.4 or newer, then run "make pch" before "make" to
+If you have gcc 3.4 or newer, then substitute "pch" for "proto" to
greatly speed up the compile process (about 5x faster).
-
Step 3: install Samba4
----------------------
Step 4: provision Samba4
------------------------
-The "provision" step sets up a basic user database.
-
- $ cd source
- $ ./setup/provision.pl --realm=YOUR.REALM --domain=YOURDOM --adminpass=SOMEPASSWORD
+The "provision" step sets up a basic user database. Make sure your smbscript
+binary is installed in a directory listed in your PATH environment variable.
+It is presumed it's available just like any other commands from your shell.
+Must be run as a user with permission to write to the install directory.
-This will create a number of new 'ldb' database files in a directory
-newdb.XXX. You need to move these to the "private" subdirectory of
-your install. For example:
+ # cd source
+ # ./setup/provision --realm=YOUR.REALM --domain=YOURDOM --adminpass=SOMEPASSWORD
- # mv newdb.123/*.ldb /usr/local/samba/private/
+REMINDER: Add the "bin" directory of the path you installed to
+ (e.g. /usr/local/samba/bin) to your path, or the provision command
+ will not work.
+'YOURDOM' is the NT4 style domain name. 'YOUR.REALM' is your kerberos
+realm, which is typically your DNS domain name.
Step 5: Create a simple smb.conf
--------------------------------
-You need to create a smb.conf file in the lib/ directory of your
-install. The default is /usr/local/samba/lib/smb.conf. A minimal
-smb.conf would be:
-
- workgroup = YOURDOM
+The provisioning will create a very simple smb.conf with no shares by
+default. You will need to update it to add at least one share. For
+example:
[test]
path = /data/test
read only = no
-The workgroup must exactly match the --domain argument you gave to provision.pl
-
Step 6: starting Samba4
-----------------------
The simplest is to just run "smbd", but as a developer you may find
the following more useful:
- # smbd -i -M single -d3
+ # smbd -i -M single
that means "start smbd without messages in stdout, and running a
-single process, with level 3 debugging". That mode of operation makes
-debugging smbd with gdb particularly easy.
+single process. That mode of operation makes debugging smbd with gdb
+particularly easy.
Note that now it is no longer necessary to have an instance of nmbd
from Samba 3 running. If you are running any smbd or nmbd processes