RockyLinux-Sambaソースビルドメモ

CentOSサポート終了につき、後継に当たるRockyLinuxでSambaをソースからビルドした手順を記載する。confファイル等については、割愛。

#参考サイト

Build Samba from Source - SambaWiki (https://wiki.samba.org/index.php/Build_Samba_from_Source)
Sambaのビルド手順 - Qiita(https://qiita.com/vmmhypervisor/items/4918b3a2767cf38b3754)

#構築環境

OS:Rocky Linux release 8.4 (Green Obsidian)
Sambaバージョン:4.14.6 (2021/08現在最新)
※なお、Rocky Linux インストール時にGroup Installで"Base"、"Development tools"をインストール済みである。

#Sambaビルド手順

##依存パッケージ入手

Package Dependencies Required to Build Samba(https://wiki.samba.org/index.php/Package_Dependencies_Required_to_Build_Samba) を参考に、ビルドに必要なパッケージを取得するため、リポジトリ登録から行う。

###リポジトリ設定

【参考】

https://www.how2shout.com/linux/how-to-enable-powertools-repository-on-rocky-linux-8/

DNF plugins packageインストール

```
# dnf install dnf-plugins-core
```

EPELインストール＆有効

```
# dnf install epel-release
```

AppStream,PowerTools,EPELリポジトリを有効

```
# dnf config-manager --set-enabled appstream
# dnf config-manager --set-enabled powertools
# dnf config-manager --set-enabled epel
```

###依存パッケージインストール

```
# dnf 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
```

##Samba安定バージョンソース入手＆解凍

https://download.samba.org/pub/samba/
よりSambaのソースを取得する。

最新バージョンを手に入れたい場合

```
# wget https://download.samba.org/pub/samba/samba-latest.tar.gz
# tar -zxf samba-latest.tar.gz
```

バージョンを直に指定する場合

```
# wget https://download.samba.org/pub/samba/stable/samba-x.y.z.tar.gz
# tar -zxf samba-x.y.z.tar.gz
```

## configure 構成、設定

```
# cd samba-x.y.z/
```

```
# ./configure
```

configure途中でエラーがでなく、以下メッセージが出ればOK

> 'configure' finished successfully (50.839s)

configure の途中、以下エラーが出力された場合

>Unable to find Python module 'markdown'. Please install the system package: python3-markdown'.

python3-markdownパッケージをインストールし再configure

```
# dnf install python3-markdown
```

>vfs_snapper is enabled but prerequisite dbus-1 package not found. Use --with-shared-modules='!vfs_snapper' to disable vfs_snapper support.

以下ページを参考に、dbus-develをインストール

https://kusoneko.blogspot.com/2020/10/update-samba-4.13.0.html

```
# dnf install dbus-devel
```

###その他Configureオプション指定をしたい場合

configure helpを参照

```
# ./configure --help
```

例：AD/DC機能無し、かつインストール先を指定したい場合

```
# ./configure --without-ad-dc --prefix=【Sambaインストール先ディレクトリ】
```

##makeコンパイル

configure 後、make コンパイルを開始する。
通常makeコマンドのみでよいが、以下makeコマンドで複数ジョブを並行して実行する。

```
# make -j 2
```

コンパイルがエラーなしで終了し、以下メッセージが出ればOK

> Waf: Leaving directory `【ソース保存先】/bin/default'
'build' finished successfully (6m6.245s)

##makeインストール

makeインストールへ進む

```
# make install
```

インストールがエラーなしで終了し、以下メッセージが出ればOK

> Waf: Leaving directory `【ソース保存先】/bin/default'
'install' finished successfully (3m22.639s)

## 環境パス設定

必要に応じて、.bash_profileへ設定

```
export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH
```

> prefixでインストール先を変更している場合、ディレクトリパスを間違えないこと。

## Samba(smbd)起動

以下デーモンモードで起動。ログ上にエラーがでなければOK。

```
# smbd -D
```

## Sambaのアップグレード

ソース入手から、makeインストールまでおなじ手順を実施すること。
(未確認であるため、最新バージョンがリリースされたら確認)