KUSONEKOの見る世界

CentOS 8 で Samba 4.11.6 をコンパイル

我が家の自宅サーバのHDDの調子が悪いため、様々な問題が発生しています。
今回は、dnfでインストールしたSambaが使えなくなりました。

Sambaパッケージの再インストールをしても動かないため、ソースからインストールしてみることにしました。
その時のメモを残しておきます。

コンパイルに必要なパッケージ

公式で記載されている必要パッケージのインストールは以下。
# 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
この中で、gpgme-devel、libarchive-devel、rpcgenだけは、PowerToolsを有効にする必要があった。
dnf install gpgme-devel libarchive-devel rpcgen --enablerepo PowerTools

コンパイルとインストール

tar -zxf samba-4.11.6.tar.gz
cd samba-4.11.6
./configure
make
make install

systemd

新しい、smbdとnmbdが/usr/local/samba/sbin/に配置されるため、以下のファイル内のパスを書き換える。
vi /etc/systemd/system/multi-user.target.wants/smb.service
vi /etc/systemd/system/multi-user.target.wants/nmb.service
書き換えたら以下を実施。
systemctl daemon-reload

設定ファイル

今まで使っていた設定ファイルを新しいディレクトリにコピーし、cupsがあればその行をコメントアウト。あると起動しなかったため。
cp /etc/samba/smb.conf /usr/local/samba/etc/
vi /usr/local/samba/etc/smb.conf
#       printing = cups
#       printcap name = cups

ユーザー作成

tdbが新しくなったため、ユーザーの作り直し。(本当は移行できるかもしれない)
/usr/local/samba/bin/pdbedit -a ユーザー名

起動

systemctl start nmb
systemctl start smb