AIX building samba

From SambaWiki
Jump to: navigation, search

How to install samba-4.1.16 on aix-6.1

Joost van Baal-Ilić, credativ BV, february 2015

Based upon instructions by Noël Köthe, credativ GmbH, sept 2014.

We describe how to build, configure, pack/unpack and install Samba --the Open Source SMB/CIFS file, print, and login server for Unix-- version 4.1.16 on a PowerPC running IBM's AIX 6.1.

Building and installing

   bash-4.2-12.aix5.1.ppc.rpm
   bzip2-1.0.6-1.aix5.1.ppc.rpm
   db4-4.7.25-2.aix5.1.ppc.rpm
   expat-2.1.0-1.aix5.1.ppc.rpm
   fontconfig-2.10.2-1.aix5.1.ppc.rpm
   freetype2-2.5.2-1.aix5.1.ppc.rpm
   gdbm-1.11-1.aix5.1.ppc.rpm
   gettext-0.17-1.aix5.1.ppc.rpm
   glib2-2.38.2-1.aix5.1.ppc.rpm
   gmp-5.1.3-1.aix5.1.ppc.rpm
   info-5.2-1.aix5.1.ppc.rpm
   libXft-2.3.1-1.aix5.1.ppc.rpm
   libXrender-0.9.8-1.aix6.1.ppc.rpm
   libgcc-4.8.2-1.aix7.1.ppc.rpm
   libiconv-1.14-2.aix5.1.ppc.rpm
   libpng-1.6.9-1.aix5.1.ppc.rpm
   libstdc++-4.8.2-1.aix7.1.ppc.rpm
   libstdc++-devel-4.8.2-1.aix7.1.ppc.rpm
   pkg-config-0.28-1.aix5.1.ppc.rpm
   python-2.7.5-1.aix6.1.ppc.rpm
   python-devel-2.7.5-1.aix6.1.ppc.rpm
   python-libs-2.7.5-1.aix6.1.ppc.rpm
   readline-6.2-5.aix5.1.ppc.rpm
   renderproto-0.11.1-1.aix5.1.ppc.rpm
   sqlite-3.8.1-1.aix5.1.ppc.rpm
   tcl-8.5.15-1.aix5.1.ppc.rpm
   tk-8.5.15-1.aix5.1.ppc.rpm
   zlib-1.2.8-1.aix5.1.ppc.rpm

Install them by running:

  # rpm -ivh * --nodeps
  • In a directory with enough space (ideally _not_ under the install root /appl/samba), unpack the samba sources
   # gunzip samba-4.1.17.tar.gz && tar -xf samba-4.1.17.tar && cd samba-4.1.17
  • Build and install
   # export PATH=$PATH:/opt/IBM/xlC/13.1.0/bin/
   # ./configure --prefix=/appl/samba --check-c-compiler=xlc
   [...]
   'configure' finished successfully
   # make
   [...]
   Compiling ...
   Linking ...
   'build' finished successfully
   # make install
   [...]
   'install finished successfully'
  • Fix missing symlinks to .so-files [1]:
   # cd /appl/samba/lib/private/
   # ls | grep "so\.[0-9]$" | while read f; do ln -s $f ${f%.?}; done
   # ls | grep "so\.[0-9][0-9]$" | while read f; do ln -s $f ${f%.??}; done

See also http://bugzilla.samba.org/show_bug.cgi?id=10840 NB: this is NOT the same as Noël's script!

  • Add a configuration file:
# vi /appl/samba/etc/smb.conf

This one works for tests:

    [global]
        workgroup = SIM
        netbios name = SERVERNAME
        server string = Fileserver
        security = user
        ;interfaces = en 192.168.1.2/24
        ;bind interfaces ony = yes

        log level = 2
        log file = /appl/samba/logs/log.%m
        syslog = 0

    [SHARE]
        comment = production share
        path = /LOCAL/EXISTING/PATH/OF/A/SHARE
        read only = no
        ;create mask = 0775
        directory mask = 775
        ;valid user =
        ;force user =
        ;force group =

See also samba-4.1.16/examples/smb.conf.default .

Testing

In order to run the samba binaries, set this:

# export LIBPATH=/appl/samba/lib:/appl/samba/lib/private

Start the Samba daemon:

# /appl/samba/sbin/smbd -D

Test samba:

# /appl/samba/bin/smbclient -L localhost

Add a samba user, and give this user a samba password, for more testing:

# /appl/samba/bin/smbpasswd -a <localunixusername>
[...]
"Added user [...]

Test a user login:

# /appl/samba/bin/smbclient -U <username> //localhost/INTERFACES
smb: \> ls
[...]
smb: \> cd .snapshot
smb: \.snapshot\> ls
[...]

Show the connected clients

# smbstatus

Installing on another AIX 6 system

Create a tar archive of /appl/samba to copy /appl/samba to the other machine. (NB: tar as shipped with AIX does not support the z-flag. Manually g(un)zip the .tar if needed.) After unpacking this file there, and creating /appl/samba/etc/smb.conf, one can start smbd:

# export LIBPATH=/appl/samba/lib:/appl/samba/lib/private
# /appl/samba/sbin/smbd -D

No need to run ./configure or make, no need to install xlc. You _do_ need Python to run Samba.


[1] When these symlinks are not created, trying to run smbclient will give an error 'Cannot load module libtevent.so.'