Sambaサーバをソースからインストールする

OS: Ubuntu Server 18.04
Samba 4.11.2

Sambaサーバの導入時にいつも多数のエラーに見舞われて躓くから、此れを僅かでも楽ちんにする手助けとしてインストールの成功までを記録として記すものである。まずはソースコードを準備して解凍・展開し、configureスクリプトを実行する。

$ wget -c https://download.samba.org/pub/samba/stable/samba-4.11.2.tar.gz
$ wget -c https://download.samba.org/pub/samba/stable/samba-4.11.2.tar.asc
$ gunzip samba-4.11.2.tar.gz

$ gpg --recv-keys 52FBC0B86D954B0843324CDC6F33915B6568B7EA
$ gpg --verify samba-4.11.2.tar.asc
(snip)
gpg: Good signature from "Samba Distribution Verification Key " [unknown]

$ tar xvf samba-4.11.2.tar
$ cd samba-4.11.2/
$ ./configure

そうするといくらもしないうちにエラーメッセージが現れる。一つ解決しても又出る。次々出る。メッセージから容易に解決策が見つかることもあるけれどもどうしても判然としないものもあるから一処に纏めておくのが肝要であろうとおもう。

エラーメッセージ対応策
The distutils module is unusable: install “python-devel”?一見すると libpython3-dev の導入で解決しそうな風情であるけれどもちっとも改善される気配がないから bin/config.log を調べてみると ModuleNotFoundError: No module named 'distutils.sysconfig'というメッセージが残されており、これを解決するには python3-distutils パッケージを導入すると良いようである。
Checking for header Python.h : Distutils not installed? Broken python installation? Get python-config now!一見すると python-config の導入で解決しそうな風情であるけれどもそういったパッケージが見当たらなくて困った。 libpython3-dev パッケージが解決してくれた。
Samba AD DC and –enable-selftest requires lmdb 0.9.16 or laterActive Directory Domain ControllerとしてSambaの構築に取り組む積もりで無ければ --without-ad-dc オプションを付与してconfigureスクリプトを再実行する。取り組むのであれば liblmdb-dev パッケージをインストールすれば宜しい気色であるけれどもaptで探ってもどうしてかパッケージが見当たらないから GitHub – LMDB/lmdb からリポジトリをクローンしてビルドする必要があった。
Checking for program ‘pkg-config’ : not found
Checking for GnuTLS >= 3.2.0 : not found
pkg-configlibgnutls28-dev のパッケージをいっぺんに二つとも導入すればよかった。
Checking for jansson : not found Jansson JSON support not found. Try installing libjansson-dev or jansson-devel. Otherwise, use –without-json to build without JSON support. JSON support is required for the JSON formatted audit log feature, the AD DC, and the JSON printers of the net utilityJSON形式で監査ログを出力したり、Active Directory Domain Controllerをセットアップする場合には libjansson-dev パッケージを導入すれば宜しい。不要であれば --without-json オプションを付与する。
Checking for header archive.h : no libarchive support not found. Try installing libarchive-dev or libarchive-devel. Otherwise, use –without-libarchive to build without libarchive support. libarchive support is required for the smbclient tar-file modesmbclientからtar-fileモードを使用する場合に必要とあるけれども全体どういうものか判然としない。それで不要と判断を下すなら --without-libarchive オプションを付与するだけである。一方、無くてはならない向きには libarchive-dev パッケージを導入する。
Checking for acl_get_fd : not found
ACL support not found. Try installing libacl1-dev or libacl-devel. Otherwise, use –without-acl-support to build without ACL support. ACL support is required to change permissions from Windows clients.
Windowsクライアントからパーミッションを変更する場合は libacl1-dev パッケージが必要になる。そういった機能に出番を求めていないなら --without-acl-support オプションで宜しい。
LDAP support not found. Try installing libldap2-dev or openldap-devel. Otherwise, use –without-ldap to build without LDAP support. LDAP support is required for the LDAP passdb backend, LDAP idmap backends and ADS. ADS support improves communication with Active Directory domain controllers.LDAPのサポートはお呼びでないなら --without-ldap オプションを付与してconfigureスクリプトを再実行する。欠くことの許されない場合は libldap2-dev パッケージの出番となる。
Active Directory support not available: LDAP support is not available. Active Directory support not found. Use –without-ads for building without Active Directory support. ADS support improves communication with Active Directory domain controllers.Active Directoryをサポートせずともよいならば --without-ads の付与で終いである。必需と考えるなら libldap2-dev が入り用である。
PAM support is enabled but prerequisite libraries or headers not found. Use –without-pam to disable PAM support.PAMで以って認証を実施するためには libpam0g-dev が必要となるけれども要らない機能と見るならば --without-pam オプションを付与する。
Checking for gpgme_new : not found GPGME support not found. Try installing libgpgme11-dev or gpgme-devel and python-gpgme. Otherwise, use –without-gpgme to build without GPGME support or –without-ad-dc to build without the Samba AD DC. GPGME support is required for the GPG encrypted password sync feature GPGME(GnuPG Made Easy)の機能はActive Directory Domain Controllerを導入する場合に併せて求められる模様である。libgpgme-dev パッケージの導入で解決できた。--without-gpgme オプションを付加すればGPGMEを使用しない。

configureスクリプトに何らオプションを付け加えないで実施するなら、lmdbを手ずからビルドして次いで必要となるパッケージを一遍にインストールしてやれば宜しい。

$ git clone https://github.com/LMDB/lmdb.git
$ cd lmdb/libraries/liblmdb/
$ make
$ sudo make install

$ sudo apt install python3-distutils libpython3-dev pkg-config libgnutls28-dev libjansson-dev libarchive-dev libacl1-dev libldap2-dev libldap2-dev libpam0g-dev libgpgme-dev

$ ./configure
(snip)
'configure' finished successfully (49.706s)

$ make
$ sudo make instal
$ /usr/local/samba/sbin/smbd -V
Version 4.11.2

参考:
Package Dependencies Required to Build Samba
Samba – Jay Ts, Robert Eckstein, David Collier-Brown – Google ブックス

Similar Posts:

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください