6.5.2. ソース RPM からのバイナリー RPM の再ビルド
rpmbuild ユーティリティーを使用して、サンプルプログラムである bello、pello、cello の バイナリー RPM パッケージを、元の RPM(SRPM) パッケージから再構築します。その後、バイナリーパッケージを複数のシステムにインストールして実行できます。
バイナリー RPM の作成時に生成される出力は詳細なもので、デバッグに役立ちます。出力は例によって異なり、それぞれの spec ファイルに対応したものになります。
生成されたバイナリー RPM は、次のいずれかのディレクトリーにあります。
-
~/rpmbuild/RPMS/YOURARCH(YOURARCHはアーキテクチャーを表します) -
パッケージがアーキテクチャー固有でない場合
、~/rpmbuild/RPMS/noarch/を使用します。
前提条件
システムに
rpmbuildユーティリティーをインストールしました。# dnf install rpm-build
手順
SRPM が含まれる
~/rpmbuild/SRPMS/ディレクティブに移動します。$ cd ~/rpmbuild/SRPMS/SRPM からバイナリー RPM を再ビルドします。
$ rpmbuild --rebuild <srpm>たとえば、
bello、pello、cello をそれぞれの SRPM ファイルから再構築するには、以下の手順を実行します。ベロプログラムを再構築する:$ rpmbuild --rebuild bello-0.1-1.el8.src.rpmペロプログラムを再構築する:$ rpmbuild --rebuild pello-0.1.2-1.el8.src.rpmチェロプログラムを再構築する:$ rpmbuild --rebuild cello-1.0-1.el8.src.rpm
注記rpmbuild --rebuildを呼び出すと、次のプロセスが実行されます。-
SRPM の内容 (
specファイルとソースコード) を~/rpmbuild/ディレクトリーにインストールします。 - インストールされたコンテンツを使用して RPM をビルドします。
-
specファイルとソースコードを削除します。
次のいずれかの方法でビルドすると、
specファイルとソースコードを保持できます。-
RPM をビルドするときに、
--rebuildオプションではなく--recompileオプションを指定したrpmbuildコマンドを使用します。 bello、pello、celloプログラムの SRPM をインストールしてください。bello用の SRPM をインストールしてください。$ rpm -Uvh ~/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpmUpdating / installing... 1:bello-0.1-1.el8 [100%]pello用の SRPM をインストールしてください。$ rpm -Uvh ~/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpmUpdating / installing... ...1:pello-0.1.2-1.el8 [100%]チェロ用の SRPM をインストールしてください:$ rpm -Uvh ~/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpmUpdating / installing... ...1:cello-1.0-1.el8 [100%]