2011-08-05 13 views
1

同じファイルを複数回リストしているrpm仕様ファイルにいくつかの問題があります。この仕様では、通常のコンパイルをしてから、すべてをbuildrootにコピーするスクリプトを用意しています。このビルドルートの中には、最終的なシステムにインストールする必要のある汎用スクリプトがたくさんあるので、このディレクトリを一覧表示するだけです。RPM仕様の同じファイルの複数のリスティングに関する問題

しかし、問題はスクリプトの1つが変更され、スクリプト内で設定オプションが変更される可能性があることです。そこで、このスクリプトを別の属性、例えば%configとして挙げます。しかし、これは、スクリプトが複数の属性が重複して定義されていることを意味します。したがって、rpmbuildは、インストールパッケージ内にスクリプトを含まず、スクリプトも含めません。

この問題を処理し、rpmbuildに2番目の定義のみを使用するように指示するか、実際のロジックを含む2つの部分にスクリプトを分けなければなりませんか?

答えて

1

ディレクトリを指定する代わりに、ファイルリストを作成して、それから重複ファイルを削除することができます。

だからここであなたは、あなたはまた、$のRPM_BUILD_ROOTの代わりに%{buildroot}を使用することができます

find $RPM_BUILD_ROOT -type f | sed -e "s|^$RPM_BUILD_ROOT||" > filelist 
sed -i "\|^foo/scriptname$|d" filelist 

%files -f filelist 
%config foo/scriptname 

にそれらの部品を変更

%files 
%dir foo 
%config foo/scriptname 

のようなものを持っています。

関連する問題