インストールせずにSRPMを構築して実行する効果的な方法は何ですか?

インストールせずにSRPMを構築して実行する効果的な方法は何ですか?

私はFedora 31を使用してソフトウェア開発作業をしています。コードをさまざまな方法で使用する必要があります。源泉RPMパッケージは比較的短命です。だから私は単にパッケージを構築したいのですが、ほとんどの場合、実際には「インストール」ステップを実行しません。

RPM yumまたはDNFを使用してこれを行う方法はありますか?明確にするために、私はバイナリが実行されますが、「インストール」されないように仕様ファイルで指定されているようにプロジェクトをビルドしたいと思います。つまり、ビルドされたファイルを実際にシステムのファイルシステム構造にコピーしたくありません。

答え1

RPMをビルドした後、結果のバイナリをシステムにインストールしないでください(少なくともこれを使用してこの動作を観察したことはありませんrpmbuild)。通常、パッケージのビルドに必要なSRPMとビルドの依存関係をインストールする必要があります。

各プロジェクトに関する情報を取得するためにシステムにSRPMパッケージをインストールしたくない場合は、次のことをお勧めしますSOURCESSPECmockRPMの人々から。デフォルトのFedoraリポジトリで使用できます。dnf install mock

mockrpmbuildchrootを使用してSRPMから直接RPMを構築するためのラッパーです。これの利点は、SRPMやビルドの依存関係がchrootの内部にインストールされるため、メインシステムにインストールする必要がないことです。

ローカルディレクトリまたはソース管理から直接SRPMを構築することもできます。

答え2

%install建物を建てるときのステップは実際でrpmはありません。インストールするシステムにバイナリをインストールすると、rpmビルドステップの1つであるRPM_BUILD_ROOTにバイナリがインストールされます。

ワークフローは次のようになります。

  • rpm -i *.src.rpm:インストールソースrpm。これはsrc.rpmを解凍し、ソースファイル、仕様ファイルなどを.rpmの下に配置します~/rpmbuild
  • では、ファイルをビルドするための仕様ファイルをcd ~/rpmbuild/SPEC/どこで見つけることができますか?rpm
  • [オプション]ソースコード、仕様ファイルなどを一部変更できます。
  • rpmビルドパッケージを使用してくださいrpmbuild -ba the.spec

より詳細な説明は以下の通りである。https://blog.packagecloud.io/eng/2015/04/20/working-with-source-rpms/

ノート:変更なしでソースrpmを書き換えたい場合は、いつでも試してみてください。rpmbuild --rebuild the.src.rpm

関連情報