====== Samba AD DCパッケージの再構築 ======
===== rpmbuild 環境を整える =====
Fedora 16 - 20\\
注意: 以下の文献は古いです😅 yum を dnf に置き換えて作業する必要がありそうです🤔\\
[[:linux:commands:package_management#dnfyum_%E6%AF%94%E8%BC%83|dnf / yum 比較 - パッケージ管理関連]]\\
$ sudo yum install @development-tools
$ sudo yum install fedora-packager
\\
CentOS 7
$ sudo yum groupinstall "Development Tools"
$ sudo yum install fedora-packager
※インストール可能なグループ一覧を取得するには、 bash -c 'LANG=C;yum grouplist' を実行する。
===== rpmbuild を行うためのディレクトリ構造を作成 =====
必ず root 以外で作業すること。
$ rpmdev-setuptree
ホームディレクトリに以下の構造が作成される。
rpmbuild
+-- BUILD
+-- BUILDROOT
+-- RPMS
+-- SOURCES
+-- SPECS
+-- SRPMS
===== ソースパッケージのダウンロード =====
Fedora 20
$ yumdownloader --source samba
\\
直接最新をダウンロードする場合\\
$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/s/samba-4.1.1-2.fc21.src.rpm
\\
※fc22用はlibldb-devel-1.1.17を要求するので、Fedora20ではビルドできない。\\
$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/s/samba-4.1.11-1.fc22.2.src.rpm
$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/SRPMS/Packages/s/samba-4.9.0-0.2.rc3.fc30.src.rpm
curl: (35) SSL connect error が発生する場合
$ sudo yum update nss
===== ソースパッケージのインストール =====
$ sudo useradd mockbuild
$ sudo passwd mockbuild
$ rpm -ivh samba-4.9.0-0.2.rc3.fc30.src.rpm
===== specファイルを修正してSamba AD DCを有効化 =====
$ cp ~/rpmbuild/SPECS/samba.spec ~/rpmbuild/SPECS/samba.spec.org
$ vi ~/rpmbuild/SPECS/samba.spec
^ 変更箇所 ^ 変更前 ^ 変更後 ^ 備考 ^
|46行目付近 |
%global with_mitkrb5 1
%global with_dc 0
|
%global with_mitkrb5 0
%global with_dc 1
|MIT Kerberos 5を無効にしてheimdal kerberosを組み込む。\\ Samba AD DCの機能を有効化する。|
|66行目付近 |
Release: %{samba_release}
|
Release: %{samba_release}.mgc
|本家のパッケージ名と衝突しないようにする。\\ samba-4.1.1-2.fc19.**mgc**.x86_64.rpmにする。|
その他changelogの曜日を修正。
$ diff ~/rpmbuild/SPECS/samba.spec.org ~/rpmbuild/SPECS/samba.spec
46,47c46,47
< %global with_mitkrb5 1
< %global with_dc 0
---
> %global with_mitkrb5 0
> %global with_dc 1
66c66
< Release: %{samba_release}
---
> Release: %{samba_release}.mgc
===== ビルドに必要なパッケージのインストール =====
$ sudo yum-builddep ~/rpmbuild/SPECS/samba.spec
読み込んだプラグイン:refresh-packagekit
エラー: 371 行目: 不明なタグ: パッケージ libldb はインストールされていません。
Bad spec: /home/tomoyan/rpmbuild/SPECS/samba.spec
No uninstalled build requires
371 %requires_eq libldb
[[https://bugzilla.redhat.com/show_bug.cgi?id=1597701|Bug 1597701 - samba-4.8.3-1.fc29.2 FTBFS: %requires_eq breaks building in non-English locale]]\\
===== RPMパッケージの再構築 =====
$ rpmbuild -ba rpmbuild/SPECS/samba.spec
===== 野良リポジトリに野良パッケージをコピー =====
野良リポジトリの構築方法は[[linux:yum_repository|yumプライベートリポジトリの構築]]を参照のこと。
==== Webサーバーで公開用ディレクトリを作成 ====
$ sudo mkdir -p /usr/share/nginx/html/pub/fedora/20/x86_64/
$ sudo mkdir -p /usr/share/nginx/html/pub/fedora/20/SRPMS/
==== パッケージの配置 ====
$ scp -P 22 ~/rpmbuild/RPMS/x86_64/* tomoyan@tomoyan.net:/usr/share/nginx/html/pub/fedora/20/x86_64/
$ scp -P 22 ~/rpmbuild/SRPMS/* tomoyan@tomoyan.net:/usr/share/nginx/html/pub/fedora/20/SRPMS/
==== Webサーバーでリポジトリデータの作成 ====
$ sudo createrepo -v /usr/share/nginx/html/pub/fedora/19/x86_64/
$ sudo createrepo -v /usr/share/nginx/html/pub/fedora/19/SRPMS/
===== 野良リポジトリからのインストール =====
==== 野良リポジトリの設定 ====
インストール先のマシンに野良リポジトリの設定を行う。
$ sudo vi /etc/yum.repos.d/mgc.repo
[mgc]
name=Fedora $releasever - $basearch Monster's Garage Repository
failovermethod=priority
baseurl=http://monsters-g.com/pub/fedora/$releasever/$basearch/
enabled=0
gpgcheck=0
priority=1
[mgc-source]
name=Fedora $releasever - $basearch Monster's Garage Source Repository
failovermethod=priority
baseurl=http://monsters-g.com/pub/fedora/$releasever/SRPMS/
enabled=0
gpgcheck=0
priority=1
==== 野良リポジトリからのインストール ====
野良リポジトリを有効にしてyumを実行する。
$ sudo yum install samba samba-dc samba-pidl samba-client \
samba-winbind samba-winbind-clients samba-winbind-krb5-locator \
--enablerepo=mgc
mgc | 2.9 kB 00:00:00
mgc/19/x86_64/primary_db | 52 kB 00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ samba.x86_64 2:4.0.9-1.fc19.mgc を インストール
...
依存性を解決しました
======================================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
======================================================================================================
インストール中:
samba x86_64 2:4.0.9-1.fc19.mgc mgc 529 k
samba-client x86_64 2:4.0.9-1.fc19.mgc mgc 453 k
samba-dc x86_64 2:4.0.9-1.fc19.mgc mgc 754 k
samba-pidl x86_64 2:4.0.9-1.fc19.mgc mgc 150 k
samba-winbind x86_64 2:4.0.9-1.fc19.mgc mgc 434 k
samba-winbind-clients x86_64 2:4.0.9-1.fc19.mgc mgc 140 k
samba-winbind-krb5-locator x86_64 2:4.0.9-1.fc19.mgc mgc 61 k
依存性関連でのインストールをします:
iniparser x86_64 3.1-2.fc19 fedora 13 k
libsmbclient x86_64 2:4.0.9-1.fc19.mgc mgc 109 k
libwbclient x86_64 2:4.0.9-1.fc19.mgc mgc 77 k
perl x86_64 4:5.16.3-265.fc19 updates 8.3 M
perl-Carp noarch 1.26-243.fc19 fedora 19 k
perl-Encode x86_64 2.54-1.fc19 updates 1.5 M
perl-Filter x86_64 1.49-1.fc19 fedora 76 k
perl-Parse-Yapp noarch 1.05-50.fc19 fedora 47 k
perl-PathTools x86_64 3.40-3.fc19 updates 82 k
perl-Pod-Escapes noarch 1:1.04-265.fc19 updates 47 k
perl-Pod-Simple noarch 1:3.20-265.fc19 updates 236 k
perl-Scalar-List-Utils x86_64 1.27-246.fc19 fedora 36 k
perl-Socket x86_64 2.009-2.fc19 fedora 48 k
perl-libs x86_64 4:5.16.3-265.fc19 updates 668 k
perl-macros x86_64 4:5.16.3-265.fc19 updates 40 k
perl-threads x86_64 1.87-1.fc19 fedora 49 k
perl-threads-shared x86_64 1.43-2.fc19 fedora 38 k
samba-common x86_64 2:4.0.9-1.fc19.mgc mgc 694 k
samba-dc-libs x86_64 2:4.0.9-1.fc19.mgc mgc 776 k
samba-libs x86_64 2:4.0.9-1.fc19.mgc mgc 4.8 M
samba-python x86_64 2:4.0.9-1.fc19.mgc mgc 1.9 M
トランザクションの要約
======================================================================================================
インストール 7 パッケージ (+21 個の依存関係のパッケージ)
総ダウンロード容量: 22 M
インストール容量: 83 M
Is this ok [y/d/N]: y <-- 野良と依存パッケージを確認してyを入力。
===== Sambaのインストール確認 =====
$ samba -V
Version 4.0.9
$ samba-tool -V
4.0.9
$ smbclient -V
Version 4.0.9
===== 参考文献 =====
[[https://wiki.samba.org/index.php/Samba_4/OS_Requirements|Samba 4/OS Requirements - SambaWiki]]\\
[[https://lists.fedoraproject.org/pipermail/scm-commits/2012-December/910276.html|[samba] Add support to conditionally enable the testsuite.]]\\
[[https://lists.samba.org/archive/samba-technical/2013-May/092016.html|Fedora 18/19/... AD DC?]]\\