RPMを構築するプロセスはなぜそんなに孤立しているのですか?

RPMを構築するプロセスはなぜそんなに孤立しているのですか?

私のパッケージのRPMを生成する方法を学んでいます。通常、自分のアカウントにログインしている間はすべての操作を実行できますが、RPMの作成手順には常に別のアカウントを使用するように指示されているようです。

私がフォローしたチュートリアルでは、rpm-buildそしてrpmdevtools。たとえばrpmdev-setuptreerpmbuild/私のホームディレクトリ(私が期待している現在のディレクトリではない)にディレクトリを作成します。手順では、別々のbuildアカウントを作成することを提案しました。これは過度に見え、この特定のアカウントと私が開発しているアカウント間のファイルを管理するのが難しくなります。

公式Fedora ドキュメント使用fedora-packagerしてfedora-reviewパッケージ化してから、自分自身を追加してください。笑いグループ。もう一度、次のように提案します。

別のユーザーを作成してRPM開発に使用することもできます。ユーザーが次のものであることを確認します。笑いグループ化してfedora-packager-setupコマンドを入力します。

どちらのガイドラインも、別々のアカウントでRPMを構築することをお勧めします。

なぜこれですか?私の無駄な反応は、便宜のために何とかこの問題を解決しようとすることです。一般アカウントでRPMを作成するとどのような問題が発生する可能性がありますか?

答え1

パッケージングの一般的な原則は、パッケージング構成で宣言されていないシステムについて何も仮定してはいけません。これには、ビルドに必要なパッケージ、実行に必要なパッケージ、必要なアカウント(ユーザーまたはグループ)、必要な権限など、多くのものが含まれます。そうしないと、作成した仕様ファイルがSnowflakeシステムに構築されていますが、クリーンな環境では構築されない可能性があります。ビルドしてもインストールできない場合があります。インストールしても期待どおりに動作しない場合があります。

このように、ディストリビューションでは、管理者がパッケージング構成のみをアップロードすると、残りの部分はビルドシステムがすべて実行する自動ビルドシステムを使用できます。もちろん、このように構築されたパッケージはより安定しています。必要なものはすべてパッケージに割り当てられているため、インストールしてもシステムが損傷する可能性が低くなります。

答え2

どちらのガイドラインも、別々のアカウントでRPMを構築することをお勧めします。

私はFedora文書をそのように読まないと言います。欲しいなら、別のアカウントを使用してパッケージング操作を実行でき、これを実行するために実行する必要があるタスクについて説明します。必ずしなければならないとは言わず、そうするように勧めることもありません。

私はパッケージングタスクにメインアカウントを使用します。ただし、mockビルドを実行して(もちろん、Kojiまたは内部同等アイテムに基づいてビルド)、ビルド要件が完了したことを確認します。

答え3

ファイルが使用されている場所をrpmbuildに知らせることができ、--define '_builddir <Your_Root>' 他のアカウントで実行する必要はありません。これは良い習慣だと思います。お役に立てば幸いです。エラム。

関連情報