Package Dependencies Required to Build Samba: Difference between revisions

From SambaWiki
(→‎Samba Active Directory Domain Controller: lmdb-utils (specifically mdb_copy) is required for 4.9 for some scripts, e.g. samba_upgradedns, samba_upgradeprovision)
(17 intermediate revisions by 7 users not shown)
Line 47: Line 47:
|-
|-
|gnutls
|gnutls
|Samba AD DC
|
|-
|-
|jansson-devel
|jansson-devel
|Audit logging (Samba 4.7 and later)
|Audit logging (Samba 4.7 and later), Samba AD DC
|-
|-
|readline
|readline
Line 70: Line 70:
|[[NT4_Domains|NT4 Domains]] support, including the [[Migrating_a_Samba_NT4_Domain_to_Samba_AD_(Classic_Upgrade)|Samba NT4 to AD migration (Classic Upgrade)]].
|[[NT4_Domains|NT4 Domains]] support, including the [[Migrating_a_Samba_NT4_Domain_to_Samba_AD_(Classic_Upgrade)|Samba NT4 to AD migration (Classic Upgrade)]].
|}
|}



== Selftest ==
== Selftest ==
Line 90: Line 89:
|}
|}


= Distribution-specific Packages Required to Build Samba =
=Packages Required to Build Samba=

{{:Verified Package Dependencies}}

==Manually maintained Distribution-specific Package lists==
'''This list is for older Samba versions (currently all released versions) and distributions not included in the table above'''


{{Imbox
{{Imbox
Line 99: Line 103:




== Samba Active Directory Domain Controller ==
=== Samba Active Directory Domain Controller ===


The following installation commands include the BIND DNS server. If you are using the Samba internal DNS server, omit the BIND package(s). However, you require the package containing the <code>nsupdate</code> utility to enable dynamic DNS support.
The following installation commands include the BIND DNS server. If you are using the Samba internal DNS server, omit the BIND package(s). However, you require the package containing the <code>nsupdate</code> utility to enable dynamic DNS support.
Line 105: Line 109:




=== Debian / Ubuntu ===
==== Debian / Ubuntu ====


# apt-get install acl attr autoconf bind9utils bison build-essential \
# apt-get install acl attr autoconf bind9utils bison build-essential \
Line 119: Line 123:
Notes:
Notes:
* Before Debian 8 and Ubuntu 14.04, <code>libgnutls28-dev</code> was known as <code>libgnutls-dev</code>.
* Before Debian 8 and Ubuntu 14.04, <code>libgnutls28-dev</code> was known as <code>libgnutls-dev</code>.
* perl-modules has been replace by perl-modules-5.24 on Debian Stretch (9)
* perl-modules was replace by perl-modules-5.24 on Debian 9
* perl-modules has been replace by perl-modules-5.26 on Ubuntu Artful (17.10)
* perl-modules was replace by perl-modules-5.26 on Ubuntu 17.10
* python-gpgme and python3-gpgme have been replaced by python-gpg and python3-gpg on Debian Stretch and Ubuntu Artful
* python-gpgme and python3-gpgme were replaced by python-gpg and python3-gpg on Debian 9 and Ubuntu 17.10
* If you are building Samba on a system that uses systemd, you will also require the libsystemd-dev package
* If you are building Samba on a system that uses systemd, you will also require the libsystemd-dev package
* To use a [[Running a Samba AD DC with MIT Kerberos KDC | MIT Kerberos KDC]], you will need <code>libkrb5-dev</code> and <code>krb5-kdc</code>, version 1.15.1 or greater.
* To use a [[Running a Samba AD DC with MIT Kerberos KDC | MIT Kerberos KDC]], you will need <code>libkrb5-dev</code> and <code>krb5-kdc</code>, version 1.15.1 or greater.


=== Red Hat Enterprise Linux 7 / CentOS 7 / Scientific Linux 7 ===


==== Red Hat Enterprise Linux 8 / CentOS 8 ====
Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on a minimal Red Hat Enterprise Linux 7, CentOS 7, or Scientific Linux 7 installation:


Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on a minimal Red Hat Enterprise Linux (RHEL) 8 or CentOS 8 installation:
# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
python-crypto gnutls-devel libattr-devel keyutils-libs-devel \
libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel


# yum install docbook-style-xsl gcc gdb gnutls-devel gpgme-devel jansson-devel \
{{Imbox
keyutils-libs-devel krb5-workstation libacl-devel libaio-devel \
| type = note
libarchive-devel libattr-devel libblkid-devel libtasn1 libtasn1-tools \
| text = Red Hat Enterprise Linux 7 does not include all required packages to build a Samba AD DC. Enable the external Extra Packages for Enterprise Linux (EPEL) repository before you install the packages. For details, see https://fedoraproject.org/wiki/EPEL. Enabling the EPEL repository is not requied on CentOS 7 and Scientific Linux 7.
libxml2-devel libxslt lmdb-devel openldap-devel pam-devel perl \
}}
perl-ExtUtils-MakeMaker perl-Parse-Yapp popt-devel python3-cryptography \
python3-dns python3-gpg python36-devel readline-devel rpcgen systemd-devel \
tar zlib-devel


To install all required packages, you must enable the following repositories:
If the DC should act as print server (not recommended) with CUPS back end, additionally install:
{| class="wikitable"
!RHEL 8
!CentOS 8
|-
|<code>Base</code>
|<code>Base</code>
|-
|<code>AppStream</code>
|<code>AppStream</code>
|-
|<code>CodeReady Linux Builder</code>*
|<code>PowerTools</code>
|-
|<code>EPEL</code>**
|<code>EPEL</code>**
|}
<nowiki>*</nowiki> For further details about the CodeReady Linux Builder repository, see https://access.redhat.com/articles/4348511.


<nowiki>**</nowiki> The Extra Packages for Enterprise Linux (EPEL) repository is not part of the distribution. For further details about EPEL, see https://fedoraproject.org/wiki/EPEL.
# yum install cups-devel


For enabling PowerTools repository on CentOS 8, please use following commands:


# yum -y install dnf-plugins-core
# yum config-manager --set-enabled PowerTools


If the DC should act as a print server with CUPS back end, additionally install the following package
=== Fedora ===


# yum install cups-devel
==== Fedora 26 ====


==== Red Hat Enterprise Linux 7 / CentOS 7 / Scientific Linux 7 ====
Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on Fedora 25:


Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on a minimal Red Hat Enterprise Linux 7, CentOS 7, or Scientific Linux 7 installation:
# dnf install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
python-crypto gnutls-devel gpgme-devel jansson-devel libattr-devel \
keyutils-libs-devel libacl-devel libaio-devel libblkid-devel \
libxml2-devel openldap-devel pam-devel popt-devel python2-devel \
readline-devel systemd-devel zlib-devel python-markdown


# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \


==== Fedora 25 ====

Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on Fedora 25:

# dnf install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
python-crypto gnutls-devel gpgme-devel jansson-devel libattr-devel \
python2-crypto gnutls-devel libattr-devel keyutils-libs-devel \
keyutils-libs-devel libacl-devel libaio-devel libblkid-devel \
libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
libxml2-devel openldap-devel pam-devel popt-devel python2-devel \
pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel \
readline-devel systemd-devel zlib-devel python-markdown
lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel




{{Imbox
| type = note
| text = Red Hat Enterprise Linux 7 does not include all required packages to build a Samba AD DC. Enable the external Extra Packages for Enterprise Linux (EPEL) repository before you install the packages. For details, see https://fedoraproject.org/wiki/EPEL. Enabling the EPEL repository is not requied on CentOS 7 and Scientific Linux 7.
}}


If the DC should act as print server (not recommended) with CUPS back end, additionally install:
=== openSUSE ===


# zypper install libacl-devel python-selinux autoconf make \
# yum install cups-devel
python-devel gdb sqlite3-devel libgnutls-devel binutils \
policycoreutils-python setools-libs selinux-policy \
setools-libs popt-devel libpcap-devel keyutils-devel \
libidn-devel libxml2-devel libacl-devel libsepol-devel \
libattr-devel zlib-devel cyrus-sasl-devel gcc \
krb5-client openldap2-devel libopenssl-devel\
bind-utils bind-lib


==== Fedora ====


To install the build dependencies for Samba on Fedora, run the following command:


# dnf builddep libldb samba
=== Gentoo ===


==== openSUSE ====
Please note that the following sections assume at least an intermediate understanding of the Gentoo packaging system.


# zypper source-install --build-deps-only libldb1 samba


==== Gentoo ====


See [[Package_Dependencies_Required_to_Build_Samba/Building Samba on Gentoo|Building Samba on Gentoo]]
==== Python ====


=== Samba Domain Member ===
Gentoo uses Python 3 as the default python interpreter, but at this time Samba requires Python 2 (2.4.2 or later). The following set of commands will install and set up Python 2 as the default python interpreter.


==== Red Hat Enterprise Linux 8 / CentOS 8 ====
# emerge --ask --noreplace '<dev-lang/python-3'
# eselect python set python2.7
# python-updater


Install the following packages to build Samba as a domain member on a minimal Red Hat Enterprise Linux (RHEL) 8 or CentOS 8 installation:


# yum install autoconf automake docbook-style-xsl gcc gdb jansson-devel \
krb5-devel krb5-workstation libacl-devel libarchive-devel \
libattr-devel libtasn1-tools libxslt lmdb-devel make openldap-devel \
pam-devel python36-devel rpcgen


To install all required packages, you must enable the following repositories:
==== Kerberos ====
{| class="wikitable"
!RHEL 8
!CentOS 8
|-
|<code>Base</code>
|<code>Base</code>
|-
|<code>AppStream</code>
|<code>AppStream</code>
|-
|<code>CodeReady Linux Builder</code>*
|<code>PowerTools</code>
|-
|<code>EPEL</code>**
|<code>EPEL</code>**
|}
<nowiki>*</nowiki> For further details about the CodeReady Linux Builder repository, see https://access.redhat.com/articles/4348511.


<nowiki>**</nowiki> The Extra Packages for Enterprise Linux (EPEL) repository is not part of the distribution. For further details about EPEL, see https://fedoraproject.org/wiki/EPEL.
On Gentoo, you have two choices for a kerberos implementation, app-crypt/mit-krb5 and app-crypt/heimdal. Unfortunately the two implementations can not be installed at the same time. Currently, the Samba only supports app-crypt/heimdal. So you must first uninstall app-crypt/mit-krb5, if installed. Then install app-crypt/heimdal and rebuild any packages that were using the previous kerberos implementation.


For enabling PowerTools repository on CentOS 8, please use following commands:
# emerge --unmerge --ask app-crypt/mit-krb5
# emerge --ask app-crypt/heimdal
# revdep-rebuild -- -ask


# yum -y install dnf-plugins-core
# yum config-manager --set-enabled PowerTools


If the domain member should act as a print server with CUPS back end, additionally install the following package:


# yum install cups-devel
==== BIND ====

To enable automatic zone management, net-dns/bind and net-dns/bind-tools should be emerged with the USE flags for berkdb, dlz and gssapi set. To enable them permanently, add the following to /etc/package.use:

net-dns/bind berkdb dlz gssapi
net-dns/bind-tools gssapi

Then, emerge net-dns/bind:

# emerge --ask net-dns/bind net-dns/bind-tools



==== Samba-supplied Libraries (tdb/ldb/tevent) ====

There are a few Samba libraries that need to be installed. Note that these packages might be keyworded as unstable, so you might need to add the following to your /etc/package.keywords:

~sys-libs/tevent-0.9.17
~sys-libs/tdb-1.2.10
~sys-libs/ldb-1.1.12
~sys-libs/talloc-2.0.7

Additionally, Samba requires sys-libs/tdb and sys-libs/talloc to be emerged with the USE flag python set. To enable this permanently, add the following to /etc/package.use:

sys-libs/tdb python
sys-libs/talloc python

Note: In new(er) installations of Gentoo, the above files will be located in /etc/portage/, i.e. /etc/portage/package.keywords and /etc/portage/package.use. They may be symlinked to /etc for backward compatibility.

Now, emerge the packages:

# emerge --ask '=sys-libs/talloc-2.0.7' '=sys-libs/tdb-1.2.10' '=sys-libs/tevent-0.9.17' '=sys-libs/ldb-1.1.12'

Note that ebuilds for the required versions of the above packages might not be availiable in the portage tree. In this case, check [https://bugs.gentoo.org/ Gentoo's Bugzilla] for updated ebuilds.



==== Other Misc. Build/Run Dependencies ====

To ensure a successful Samba 4 installation, there are a few other packages that should be installed, as shown below:

# emerge --ask net-libs/gnutls sys-apps/acl dev-libs/cyrus-sasl dev-python/subunit dev-python/dnspython net-dns/libidn

FIXME: Are dev-python/dnspython net-dns/libidn still required?

== Samba Domain Member ==


=== Red Hat Enterprise Linux / CentOS / Scientific Linux ===
==== Red Hat Enterprise Linux 7 / CentOS 7 / Scientific Linux 7 ====


# yum install autoconf automake gcc gdb krb5-devel krb5-workstation \
# yum install autoconf automake gcc gdb krb5-devel krb5-workstation \
openldap-devel make pam-devel python-devel docbook-style-xsl \
openldap-devel make pam-devel python-devel docbook-style-xsl \
libacl-devel libattr-devel libxslt
libacl-devel libattr-devel libxslt






== Samba NT4 PDC ==
=== Samba NT4 PDC ===


To be added.
To be added.

Revision as of 09:26, 7 October 2019

Operating System-independent Overview

The following is an operating system-independent list of libraries and utilities required to build and install Samba. Depending on your distribution, the name of packages can differ. Usually library packages are named lib*-devel or lib*-dev. For a list of distribution specific package installation commands, see Distribution-specific Packages Required to Build Samba.


Mandatory

Libraries and utilities Required for
python Several utilities, such as samba-tool and the build system (Waf), are written in Python.
perl
acl Required only on Samba Active Directory domain controllers and member servers using Windows ACLs.
xattr Required only on Samba Active Directory domain controllers and member servers using Windows ACLs.
python-crypto Samba AD DC only. Required by samba-tool, for example, to establish trusts.


Optional

Libraries and utilities Required for
krb5-devel and krb5-server MIT Kerberos support (Samba 4.7 and later). Requires MIT Kerberos 1.15.1 or later.
blkid
gnutls Samba AD DC
jansson-devel Audit logging (Samba 4.7 and later), Samba AD DC
readline
bsd or setproctitle Process title updating support.
xsltproc or docbook Man pages and other documentation.
pam-devel PAM support. For example, to authenticate domain users using PAM.
cups CUPS printer sharing support.
openldap NT4 Domains support, including the Samba NT4 to AD migration (Classic Upgrade).

Selftest

The following additional packages / utilities are required only for running some tests.

Libraries and utilities Required for
bash Some blackbox tests are bash-specific
python-markdown Reading Microsoft AD schema from github
patch Running some AD DC database tests

Packages Required to Build Samba

Verified Package Dependencies

These links are to https://git.samba.org and are to our tested package installation scripts. The files are are contained in Samba's official git repository and are subject to Samba's Code Review and testing.

Naturally, you should still check them before running them as root. They may contain more packages than you strictly need, because some items required by Samba's GitLab CI and autobuild tooling are not needed in production.

Distribution Samba master Samba 4.15 Samba 4.14 Samba 4.13 Samba 4.12 Samba 4.11
Debian 9 bootstrap/generated-dists/debian9/bootstrap.sh bootstrap/generated-dists/debian9/bootstrap.sh
Debian 10 bootstrap/generated-dists/debian10/bootstrap.sh bootstrap/generated-dists/debian10/bootstrap.sh bootstrap/generated-dists/debian10/bootstrap.sh bootstrap/generated-dists/debian10/bootstrap.sh bootstrap/generated-dists/debian9/bootstrap.sh
Debian 11 bootstrap/generated-dists/debian10/bootstrap.sh
Ubuntu 16.04 bootstrap/generated-dists/ubuntu1604/bootstrap.sh bootstrap/generated-dists/ubuntu1604/bootstrap.sh
Ubuntu 18.04 bootstrap/generated-dists/ubuntu1804/bootstrap.sh bootstrap/generated-dists/ubuntu1804/bootstrap.sh bootstrap/generated-dists/ubuntu1804/bootstrap.sh bootstrap/generated-dists/ubuntu1804/bootstrap.sh bootstrap/generated-dists/ubuntu1804/bootstrap.sh bootstrap/generated-dists/ubuntu1804/bootstrap.sh
Ubuntu 20.04 bootstrap/generated-dists/ubuntu2004/bootstrap.sh bootstrap/generated-dists/ubuntu2004/bootstrap.sh bootstrap/generated-dists/ubuntu2004/bootstrap.sh bootstrap/generated-dists/ubuntu2004/bootstrap.sh
OpenSuSE 15.0 bootstrap/generated-dists/opensuse150/bootstrap.sh bootstrap/generated-dists/opensuse150/bootstrap.sh bootstrap/generated-dists/opensuse150/bootstrap.sh bootstrap/generated-dists/opensuse150/bootstrap.sh bootstrap/generated-dists/opensuse150/bootstrap.sh bootstrap/generated-dists/opensuse150/bootstrap.sh
OpenSuSE 15.1 bootstrap/generated-dists/opensuse151/bootstrap.sh bootstrap/generated-dists/opensuse151/bootstrap.sh bootstrap/generated-dists/opensuse151/bootstrap.sh bootstrap/generated-dists/opensuse151/bootstrap.sh bootstrap/generated-dists/opensuse151/bootstrap.sh bootstrap/generated-dists/opensuse151/bootstrap.sh
Fedora 29 bootstrap/generated-dists/fedora29/bootstrap.sh bootstrap/generated-dists/fedora29/bootstrap.sh
Fedora 30 bootstrap/generated-dists/fedora30/bootstrap.sh bootstrap/generated-dists/fedora30/bootstrap.sh
Fedora 31 bootstrap/generated-dists/fedora31/bootstrap.sh bootstrap/generated-dists/fedora31/bootstrap.sh
Fedora 32 bootstrap/generated-dists/fedora32/bootstrap.sh bootstrap/generated-dists/fedora32/bootstrap.sh
Fedora 33 bootstrap/generated-dists/fedora33/bootstrap.sh bootstrap/generated-dists/fedora33/bootstrap.sh bootstrap/generated-dists/fedora33/bootstrap.sh bootstrap/generated-dists/fedora33/bootstrap.sh
Fedora 34 bootstrap/generated-dists/fedora34/bootstrap.sh bootstrap/generated-dists/fedora34/bootstrap.sh bootstrap/generated-dists/fedora34/bootstrap.sh bootstrap/generated-dists/fedora34/bootstrap.sh
CentOS 7 bootstrap/generated-dists/centos7/bootstrap.sh bootstrap/generated-dists/centos7/bootstrap.sh bootstrap/generated-dists/centos7/bootstrap.sh bootstrap/generated-dists/centos7/bootstrap.sh bootstrap/generated-dists/centos7/bootstrap.sh
CentOS 8 bootstrap/generated-dists/centos8/bootstrap.sh bootstrap/generated-dists/centos8/bootstrap.sh bootstrap/generated-dists/centos8/bootstrap.sh bootstrap/generated-dists/centos8/bootstrap.sh

Manually maintained Distribution-specific Package lists

This list is for older Samba versions (currently all released versions) and distributions not included in the table above


Samba Active Directory Domain Controller

The following installation commands include the BIND DNS server. If you are using the Samba internal DNS server, omit the BIND package(s). However, you require the package containing the nsupdate utility to enable dynamic DNS support.


Debian / Ubuntu

# apt-get install acl attr autoconf bind9utils bison build-essential \
  debhelper dnsutils docbook-xml docbook-xsl flex gdb libjansson-dev krb5-user \
  libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev \
  libcap-dev libcups2-dev libgnutls28-dev libgpgme-dev libjson-perl \
  libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
  libpopt-dev libreadline-dev nettle-dev perl perl-modules pkg-config \
  python-all-dev python-crypto python-dbg python-dev python-dnspython \
  python3-dnspython python-gpgme python3-gpgme python-markdown python3-markdown \
  python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils

Notes:

  • Before Debian 8 and Ubuntu 14.04, libgnutls28-dev was known as libgnutls-dev.
  • perl-modules was replace by perl-modules-5.24 on Debian 9
  • perl-modules was replace by perl-modules-5.26 on Ubuntu 17.10
  • python-gpgme and python3-gpgme were replaced by python-gpg and python3-gpg on Debian 9 and Ubuntu 17.10
  • If you are building Samba on a system that uses systemd, you will also require the libsystemd-dev package
  • To use a MIT Kerberos KDC, you will need libkrb5-dev and krb5-kdc, version 1.15.1 or greater.


Red Hat Enterprise Linux 8 / CentOS 8

Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on a minimal Red Hat Enterprise Linux (RHEL) 8 or CentOS 8 installation:

# yum install docbook-style-xsl gcc gdb gnutls-devel gpgme-devel jansson-devel \
      keyutils-libs-devel krb5-workstation libacl-devel libaio-devel \
      libarchive-devel libattr-devel libblkid-devel libtasn1 libtasn1-tools \
      libxml2-devel libxslt lmdb-devel openldap-devel pam-devel perl \
      perl-ExtUtils-MakeMaker perl-Parse-Yapp popt-devel python3-cryptography \
      python3-dns python3-gpg python36-devel readline-devel rpcgen systemd-devel \
      tar zlib-devel

To install all required packages, you must enable the following repositories:

RHEL 8 CentOS 8
Base Base
AppStream AppStream
CodeReady Linux Builder* PowerTools
EPEL** EPEL**

* For further details about the CodeReady Linux Builder repository, see https://access.redhat.com/articles/4348511.

** The Extra Packages for Enterprise Linux (EPEL) repository is not part of the distribution. For further details about EPEL, see https://fedoraproject.org/wiki/EPEL.

For enabling PowerTools repository on CentOS 8, please use following commands:

# yum -y install dnf-plugins-core
# yum config-manager --set-enabled PowerTools

If the DC should act as a print server with CUPS back end, additionally install the following package

# yum install cups-devel

Red Hat Enterprise Linux 7 / CentOS 7 / Scientific Linux 7

Install the following packages to build Samba as an Active Directory (AD) domain controller (DC) on a minimal Red Hat Enterprise Linux 7, CentOS 7, or Scientific Linux 7 installation:

 # yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
       libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
       perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
       python2-crypto gnutls-devel libattr-devel keyutils-libs-devel \
       libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
       pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel \
       lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel


If the DC should act as print server (not recommended) with CUPS back end, additionally install:

# yum install cups-devel

Fedora

To install the build dependencies for Samba on Fedora, run the following command:

# dnf builddep libldb samba

openSUSE

# zypper source-install --build-deps-only libldb1 samba

Gentoo

See Building Samba on Gentoo

Samba Domain Member

Red Hat Enterprise Linux 8 / CentOS 8

Install the following packages to build Samba as a domain member on a minimal Red Hat Enterprise Linux (RHEL) 8 or CentOS 8 installation:

# yum install autoconf automake docbook-style-xsl gcc gdb jansson-devel \
      krb5-devel krb5-workstation libacl-devel libarchive-devel \ 
      libattr-devel libtasn1-tools libxslt lmdb-devel make openldap-devel \
      pam-devel python36-devel rpcgen

To install all required packages, you must enable the following repositories:

RHEL 8 CentOS 8
Base Base
AppStream AppStream
CodeReady Linux Builder* PowerTools
EPEL** EPEL**

* For further details about the CodeReady Linux Builder repository, see https://access.redhat.com/articles/4348511.

** The Extra Packages for Enterprise Linux (EPEL) repository is not part of the distribution. For further details about EPEL, see https://fedoraproject.org/wiki/EPEL.

For enabling PowerTools repository on CentOS 8, please use following commands:

# yum -y install dnf-plugins-core
# yum config-manager --set-enabled PowerTools

If the domain member should act as a print server with CUPS back end, additionally install the following package:

# yum install cups-devel

Red Hat Enterprise Linux 7 / CentOS 7 / Scientific Linux 7

# yum install autoconf automake gcc gdb krb5-devel krb5-workstation \
      openldap-devel make pam-devel python-devel docbook-style-xsl \
      libacl-devel libattr-devel libxslt 


Samba NT4 PDC

To be added.