次の項目があるとしますRequires
。
Requires: a
Requires: b
Requires: c
今私が言いたいことは次のとおりです。
BuildRequires: <<Requires>>
これは、ビルドに必要なすべてをインストールする必要があることを意味します。したがって、最初のセクションからアイテムを削除または追加すると、2番目のセクションが「接続」され、編集する必要はありません。
問題は——この依存関係をどのように表現しますか?
これらの計画はパブリックパッケージには提供されていないことがわかりますが、家族向けに要求されます。私と私の家族のためのエクスプレスパッケージだけを準備して配布することはできません。
答え1
簡単な答えは、両方の場所を置き換えるマクロを定義することです。
%define my_common_requires package-1, package-2, package-3
BuildRequires: %{my_common_requires}
Requires: %{my_common_requires}
また、2行のうちの1つに存在するコンテンツを手動で定義することもできますが、両方には存在できません。
答え2
そうだ
BuildRequires: %{requires}
「ただ動作します」 - 少なくともRPMバージョンが4.8.0のRHEL6では動作します。
答え3
許す
P
パッケージ名です。R1
、、R2
...は対応Rn
する要件です。RB1
、、RB2
...はRBm
BuildRequiresの一部であり、、、R1
...R2
はRn
他のRequiresです。
今できる
PA
R1
Requires、、R2
...を含むパッケージを作成します。Rn
それ以外の場合、パッケージは空です。- Requiresが、BuildRequiresが、、、、...になるように
P
編集します。PA
PA
RB1
RB2
RBm
私はこれが良いアイデアだとは思わない。
MyUsefulPackage
Requires: gcc
BuildRequires: gcc
~になる
MyUsefulPackage
Requires: MyUsefulRequires
BuildRequires: MyUsefulRequires
そして
MyUsefulRequires
Requires: gcc
別のパッケージを追加するには、make
次のようになります。 MyUsefulPackage Requires: MyUsefulRequires BuildRequires: MyUsefulRequires
そして
MyUsefulRequires
Requires: gcc
Requires: make
MyUsefulPackage の依存関係要件を変更する必要はありません。 MyUsefulRequiresを一度だけ変更するだけです。