仕様ファイルのサブパッケージとは何ですか? パッケージ+サブパッケージの一覧にマクロが展開されていますか?サブパッケージは、-nを使用して定義することができる、あるいは別のマクロによって定義されるので、私はgrepのを使用したくないRPM:仕様からサブパッケージ名を見つけよう
(それを再evalにつながる)
例:
$ rpmbuild project.spec --eval '%packages_list'
仕様ファイルのサブパッケージとは何ですか? パッケージ+サブパッケージの一覧にマクロが展開されていますか?サブパッケージは、-nを使用して定義することができる、あるいは別のマクロによって定義されるので、私はgrepのを使用したくないRPM:仕様からサブパッケージ名を見つけよう
(それを再evalにつながる)
例:
$ rpmbuild project.spec --eval '%packages_list'
まあ、私は、SEDのビットを使用しますが、私も最初のマクロをアンロールするrpmspec
を使用するので、これはかなりOKでなければなりません:それは動作するようにbasename
コールが必要になること
$ export SPEC_FILE=maven-surefire.spec
$ rpmspec -P $SPEC_FILE | grep '^%package' | sed "s/-n //;t end;s/^/${SPEC_FILE/.spec}-/;:end;s/%package //"
注意そうでなければ、かなりの誤り耐性があるはずです。
私の作業環境はrpmspecがデフォルトでインストールされていないため、うまくできません(rpm-4.8.0-12.el6.x86_64の場合があります)。 – Caruccio
少しのpythonがあなたのために仕事をします。私は(+ Xに設定したファイルと名前specinfo.pyを想定)RPM-4.8はまた、スペックオブジェクトとPythonバインディングを持っていたと確信しています:
#!/usr/bin/python
import sys
import rpm
spec = rpm.spec(sys.argv[1])
for subpackages in spec.packages:
print subpackages.header["name"]
は、すべてのサブパッケージを取得するために使用することができます。私は一般的に、単純なフォームを使用
python specinfo.py <spec file>
:あなたは、同じディレクトリ内のスペックファイルでこのコマンドを実行することができます
rpm -q --specfile FILENAME.SPEC
のrpm -q --queryformat = "%{NAME} \ n" は - -specfile project.spec
rpmコマンドがこの種のクエリをサポートしているとは思えません。 –