====== 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?]]\\