久しぶりに redhat 系に触れているのですが、インストール直後から、パッケージのビルドをするまでを簡単に纏めておきました。
# 現在指定しているレポジトリの一覧を表示
dnf repolist
# 現在指定されていない無効なレポジトリの一覧
dnf repolist --disabled
# レポジトリの有効化1
dnf config-manager --enable appstream-source baseos-source extras-common-source
# レポジトリの有効化1.1 ( almalinux 10.x )
dnf config-manager --enable appstream-source baseos-source extras-source
# レポジトリの有効化2 (centosで rhel の codeready-builderに該当するcrbレポジトリの有効化)
dnf config-manager --enable crb crb-source
# レポジトリの追加
dnf config-manager --add-repo
# rpm-build パッケージのインストール
dnf install rpm-build
# rpmbuild に必要なビルドユーザ(mock/mockbuild)の追加
useradd -s /sbin/nologin mock
useradd -s /sbin/nologin mockbuild
# ソース、スペックファイルなどの展開先の確認
rpm --showrc | grep _topdir
-13: _builddir %{_topdir}/BUILD
-13: _buildrootdir %{_topdir}/BUILDROOT
-13: _rpmdir %{_topdir}/RPMS
-13: _sourcedir %{_topdir}/SOURCES
-13: _specdir %{_topdir}/SPECS
-13: _srcrpmdir %{_topdir}/SRPMS
-13: _topdir %{getenv:HOME}/rpmbuild
# 指定したファイルを含むパッケージ名のサーチ
dnf provides tog-pegasus
# 対象となるrpmパッケージのソース類のダウンロード
dnf download --source tog-pegasus
# 指定したパッケージのビルドに必要なパッケージのインストール(apt-get build-dep に相当)
dnf builddep tog-pegasus
# a. spec ファイルからsrpm/rpmパッケージをビルド
cd ~/rpmbuild/SPECS
rpmbuild -ba tog-pegasus.spec
# b-1. specファイルからsource rpmを作成
cd ~/rpmbuild/SPEC
rpmbuild -bs tog-pegasus.spec
# 確認
ls ~/rpmbuild/SRPMS
tog-pegasus-2.4.1-65.el9.src.rpm
# b-2. src.rpmから パッケージをビルド
cd ~/rpmbuild/SRPMS
rpmbuild --rebuild tog-pegasus-2.4.1-65.el9.src.rpm
# b-3. src.rpm の展開
cd ~/rpmbuild/SRPMS
rpm -ivh tog-pegasus-2.14.1-65.el9.src.rpm
覚えてしまえばソースのあるパッケージの場合、 Debian と同じようにできるかもしてませんね。今回は以上です。それでは。
コメント
コメントを投稿