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